From fc8ac86fa15511898830fbd56451ba10762ea86b Mon Sep 17 00:00:00 2001 From: phernandez Date: Thu, 28 May 2026 22:16:31 -0500 Subject: [PATCH] feat(plugins): setup installs the shared memory-* skills (no repo dup) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses the consolidation direction from issue #866: the Claude Code plugin should consume the canonical skills/ set, not reinvent a parallel one. Rather than vendoring copies into the plugin, /basic-memory:setup now offers to install the shared memory-* skills via `npx skills add basicmachines-co/basic-memory --path skills` (the existing SPEC-58 distribution path, same source OpenClaw bundles). The plugin stays "hooks + Claude-Code-specific skills" and pulls the shared toolkit on demand — skills/ remains the single source of truth, no duplication in the repo. Updated the setup interview + apply steps, README, getting-started, and CHANGELOG. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: phernandez --- plugins/claude-code/CHANGELOG.md | 7 +++++-- plugins/claude-code/README.md | 2 +- plugins/claude-code/docs/getting-started.md | 2 ++ plugins/claude-code/skills/setup/SKILL.md | 21 ++++++++++++++++++++- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/plugins/claude-code/CHANGELOG.md b/plugins/claude-code/CHANGELOG.md index e5a2462f..792f1656 100644 --- a/plugins/claude-code/CHANGELOG.md +++ b/plugins/claude-code/CHANGELOG.md @@ -23,8 +23,11 @@ Memory's durable graph**, rather than a memory layer of its own. See - **`/basic-memory:setup`** (`skills/setup/`) — a short guided interview that configures the project for the plugin: maps it to a Basic Memory project (picking an existing one or creating a new one), seeds the `session`/`decision`/`task` - schemas into the project, optionally learns the project's placement conventions, - and enables the capture reflexes. Writes the `basicMemory` block to + schemas into the project, installs the shared `memory-*` skills via + `npx skills add basicmachines-co/basic-memory --path skills` (the plugin doesn't + vendor its own copies — `skills/` is the single source of truth, shared with + OpenClaw), optionally learns the project's placement conventions, and enables the + capture reflexes. Writes the `basicMemory` block to `.claude/settings.json` (or `settings.local.json`). The SessionStart hook nudges toward this on first run; running it (writing the config) stops the nudge. (Phase 3) - **`/basic-memory:remember `** (`skills/remember/`) — quick deliberate diff --git a/plugins/claude-code/README.md b/plugins/claude-code/README.md index 18edce56..74c7378f 100644 --- a/plugins/claude-code/README.md +++ b/plugins/claude-code/README.md @@ -38,7 +38,7 @@ Plugin skills are namespaced under the plugin name: | Command | What it does | |---------|--------------| -| `/basic-memory:setup` | One-time guided setup — maps the project to a Basic Memory project, seeds the note schemas, optionally learns your conventions, and turns on the capture reflexes. Run this first. | +| `/basic-memory:setup` | One-time guided setup — maps the project to a Basic Memory project, seeds the note schemas, installs the shared `memory-*` skills, optionally learns your conventions, and turns on the capture reflexes. Run this first. | | `/basic-memory:remember ` | Quick capture — saves the text to the `bm-remember` folder with a `manual-capture` tag. Also fires when you say "remember that…". | | `/basic-memory:share ` | Promote a personal note to a configured team project, with attribution and confirmation. The deliberate way to write to a shared workspace. | | `/basic-memory:status` | Diagnostic — shows the active project, team read-sources and share targets, capture folders, output-style state, recent session checkpoints, and active-task count. | diff --git a/plugins/claude-code/docs/getting-started.md b/plugins/claude-code/docs/getting-started.md index 959f8b24..5815eeaa 100644 --- a/plugins/claude-code/docs/getting-started.md +++ b/plugins/claude-code/docs/getting-started.md @@ -44,6 +44,8 @@ It's a short interview. It will: - map this project to a Basic Memory project (pick an existing one or create a new one), - seed the `session` / `decision` / `task` schemas so notes are findable by structured search, +- install the shared `memory-*` skills (`npx skills add …`) — the plugin ships only the + Claude-Code-specific glue and pulls the canonical skills on demand, - optionally learn your existing folder/naming conventions, - enable the capture reflexes (output style), - write a `basicMemory` block to `.claude/settings.json`. diff --git a/plugins/claude-code/skills/setup/SKILL.md b/plugins/claude-code/skills/setup/SKILL.md index 9d8c469e..ee75e12d 100644 --- a/plugins/claude-code/skills/setup/SKILL.md +++ b/plugins/claude-code/skills/setup/SKILL.md @@ -75,6 +75,13 @@ Ask only what you can't infer. Cover: capture decisions as typed notes, cite permalinks)" → sets `outputStyle: "basic-memory"`. Default yes for standard/heavy, ask for light. +8. **Shared skills** (optional, default yes). "Want the full Basic Memory toolkit — + the shared `memory-*` skills (`memory-notes`, `memory-tasks`, `memory-research`, + `memory-schema`, `memory-defrag`, …)? I can install them alongside this plugin." + These are the canonical, framework-agnostic skills (the same set OpenClaw bundles). + This plugin ships only the Claude-Code-specific glue and pulls the shared set on + demand — it doesn't vendor its own copies. (See "Install the shared skills" below.) + ## Apply (after confirming the plan) ### 1. Seed the schemas @@ -93,7 +100,19 @@ For each one: note's frontmatter, so the `type: schema` + `entity` + `schema` definition land intact and become resolvable by `schema_validate`), `project` = `primaryProject`. -### 2. Write settings +### 2. Install the shared skills (if the user opted in) +Run, from the project root: + +``` +npx skills add basicmachines-co/basic-memory --path skills +``` + +This installs the canonical `memory-*` skills into the user's skills directory — the +single source of truth, shared with OpenClaw. The plugin does **not** vendor copies; +it relies on this shared set. If `npx` / the `skills` CLI isn't available, point the +user at the manual install in the top-level [`skills/README.md`](../../../../skills/README.md). + +### 3. Write settings Build the `basicMemory` block from the interview: ```json