Skip to content
Agent Memory
Skill

/bm-decide

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.

BOOST
From plugin
basic-memory
4.1k26 skills5 commands1 MCP
Install
$ npx -y skills add basicmachines-co/basic-memory --skill bm-decide --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/bm-decide

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

bm-decide.SKILL.md
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`.

Read more
Ships withbasic-memory

AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord: https://discord.gg/tyvKNccgqN

Get the whole plugin

Other skills on basic-memory.