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
Resolve config: read the
basicMemoryblock with the same precedence the hooks use — user-level~/.claude/settings.jsonas the base, then the project's.claude/settings.jsonand.claude/settings.local.jsonoverride it per key:- write to
primaryProjectwhen set (pass it asproject, or asproject_idif it's anexternal_idUUID) - follow
placementConventionsfor the directory when they are specific - otherwise use
decisions
Apply the
bm-writingskill before drafting the note.- write to
Clarify only if the choice itself is ambiguous. Do not ask for every field if the conversation already contains the rationale.
Write a
type: decisionnote (note_type: decision):status: openunless the user says it is accepted, superseded, or rejecteddecided: <ISO timestamp when known>project: <primaryProject if known>
Include:
- the decision
- context
- rationale
- alternatives considered
- consequences
- affected files, specs, issues, PRs, or notes
Confirm with the permalink. If this supersedes an older decision, update the old note or link it as
supersedes.