bm-decide · git:20260904.9408035 · 2026-09-04 · sha256 d0f5c7ed807e1503
bm-decide git:20260904.9408035A
Immutable. This exact content is served forever at /api/v1/blob/d0f5c7ed807e1503.
---
name: bm-decide
description: Capture a durable engineering decision in Basic Memory with rationale, alternatives, consequences, and affected work. Use when the user makes or asks to record a real choice — "let's go with X", "record this decision", or runs /basic-memory:bm-decide.
argument-hint: (optional short statement of the decision)
---
# Capture A Decision
Use this when the user makes or asks to record a durable choice. A decision is a
choice with rationale and consequences, not a casual preference. This is the
deliberate version of the basic-memory output style's decision-capture reflex —
it works whether or not that style is enabled.
## 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:
- write to `primaryProject` when set (pass it as `project`, or as
`project_id` if it's an `external_id` UUID)
- follow `placementConventions` for the directory when they are specific
- otherwise use `decisions`
Apply the `bm-writing` skill before drafting the note.
2. Clarify only if the choice itself is ambiguous. Do not ask for every field if
the conversation already contains the rationale.
3. Write a `type: decision` note (`note_type: decision`):
- `status: open` unless the user says it is accepted, superseded, or rejected
- `decided: <ISO timestamp when known>`
- `project: <primaryProject if known>`
4. Include:
- the decision
- context
- rationale
- alternatives considered
- consequences
- affected files, specs, issues, PRs, or notes
5. Confirm with the permalink. If this supersedes an older decision, update the old
note or link it as `supersedes`.