bm-remember · diff
git:20260904.9408035 to git:20261024.3d433fd
12 added, 7 removed. Audit A to A.
---
name: bm-remember
description: Quickly capture a thought, fact, or reminder into Basic Memory as a lightweight note. Use when the user says "remember that…", "note this", "save this to memory", or runs /basic-memory:bm-remember. For quick deliberate capture — not full decision or session records.
argument-hint: <text to remember>
---
# Remember
Capture `$ARGUMENTS` into Basic Memory as a quick note, keeping the user's words.
+ When no project is pinned, discover projects with `bm_project(command="list")`
+ and pass the selected project's external ID as `project` on note/search calls.
+ With several addressable projects, these calls require an explicit scope even
+ when a default is configured.
+
## Steps
1. **Resolve config.** Read the `basicMemory` block with the same precedence the
hooks use. For the user-level base, append `settings.json` to the literal value
of `CLAUDE_CONFIG_DIR` when that environment variable is present; do not trim
it, expand `~`, or treat an empty value as unset. Use `~/.claude/settings.json`
only when the variable is absent. Then the project's `.claude/settings.json`
and `.claude/settings.local.json` override it per key. A user-level block alone
is enough; a project can still pin its own values:
- `rememberFolder` — folder for quick captures (default: `bm-remember`)
- - `primaryProject` — project to write to (default: omit the `project` argument so
- Basic Memory uses its default project)
+ - `primaryProject` — project to write to (when absent, discover projects and explicitly
+ select the listed default or sole project)
Both are optional. Use the defaults if the block or a key is missing. Don't fail
if there's no settings file.
2. **Derive the note.** Apply the `bm-writing` skill before drafting; match its
depth to this lightweight capture — keep the user's wording and do not pad a
small fact into an essay.
- **Content** = the text in `$ARGUMENTS`, verbatim. Don't rewrite or pad it.
- **Title** = the first line of that text, trimmed to ≤ 80 characters (append `…`
if you truncate). If it's one long line, write a short descriptive title instead.
- If `$ARGUMENTS` is empty (e.g. you were invoked because the user said "remember
that…"), capture the specific thing they asked you to remember from the
conversation. If it's genuinely unclear what to save, ask one short question.
- 3. **Write it** with `write_note`:
+ 3. **Write it** with `bm_write`:
- `title` = the derived title
- `directory` = the resolved `rememberFolder`
- `content` = the text
- `tags` = `["manual-capture"]`
- - Route to `primaryProject` if set: pass it as `project`, or as `project_id` if
- it's an `external_id` UUID (a bare UUID in `project` won't route). Omit both if
+ - Route to `primaryProject` if set: pass it as `project`, including when
+ it is an `external_id` UUID. Omit `project` if
`primaryProject` isn't set.
Don't overwrite an existing note unless the user explicitly asks.
4. **Confirm** in one line: what was saved and its permalink —
e.g. `Saved → bm-remember/<slug>`.
## Notes
- This is a *quick* capture. Keep the user's wording; don't add observations,
relations, or structure unless they ask.
- For a decision with rationale and alternatives, use the `bm-decide` skill
instead (the basic-memory output style also captures these inline). Wrapping up
a work session is `bm-checkpoint`'s job, not this skill's.
- - Use whichever Basic Memory MCP server is connected — don't assume a specific tool
- name prefix.
+ - Use whichever Basic Memory MCP server is connected — don't assume a specific host-added
+ server prefix; use the advertised `bm_write` tool.