decide

decide is a command for Claude Code from toml0006/hive-mind. It costs 10 tokens per session (853 once invoked), scanned A, original, Apache-2.0.

A command for recording an agreed architectural decision in a shared decision graph. An architectural decision is a lasting choice about how a project should be built and why alternatives were rejected.

In plain words
What is it for?
Use it after a decision has been settled to prepare a structured record for confirmation. It records choices about a repository, a client’s projects, or engineering practice.
Why use it?
Important technical choices are often lost in chat or repeated later. This captures the decision, reasoning, scope, rejected options, and the time it was made for future reference.

Command for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/toml0006/hive-mind/decide
Clone the repo
git clone --depth 1 https://github.com/toml0006/hive-mind

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for decide

README.md
[![agentmods](https://agentmods.dev/badge/commands/toml0006/hive-mind/decide.svg)](https://agentmods.dev/commands/toml0006/hive-mind/decide)
Your own site
<a href="https://agentmods.dev/commands/toml0006/hive-mind/decide"><img src="https://agentmods.dev/badge/commands/toml0006/hive-mind/decide.svg" alt="Measured on agentmods" height="20"></a>
Per session 10 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 853 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00010 $0.00853
Opus 5 $0.00005 $0.00426
Sonnet 5 $0.00002 $0.00171
Haiku 4.5 $0.00001 $0.00085

Measured 4d ago against content hash 65513402700e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

decide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/decide.md · 77 lines

What it actually says

Capture a decision from this conversation into the hive-mind decision graph.

Arguments (optional): $ARGUMENTS — the decision, stated plainly. If empty, infer the most recent settled decision from the conversation.

Steps:

  1. Draft the record from the conversation. Do not invent content; if a field has no support in the conversation, leave it empty and say so.
    • statement — the ruling, one sentence, imperative. "Use X, not Y."
    • decision_key — a stable lowercase kebab-case topic that survives wording changes, such as python-package-manager.
    • rationale — why. Cite the actual constraint that forced it.
    • alternatives_rejected — every approach considered and dropped, each with its reason. This field is the point of the exercise: it is what stops the same approach being proposed again next month.
    • scoperepo (this repo), client (all of this client's repos), or practice (every project, engineering-craft rulings).
    • decided_at — when the ruling was settled. Use the conversation timestamp; never substitute the current time when recording an older ruling.
  2. Show the draft and ask for confirmation or edits. Do not call the tool yet.
  3. On confirmation, call record_decision with the confirmed fields, including decision_key and decided_at.
  4. If this decision replaces an existing one, first call recall_decisions to find the old uuid, then use supersede_decision instead — never record a contradicting decision alongside the one it replaces.

Review mode

If $ARGUMENTS starts with review, switch to reviewing the candidate queue — decisions extracted automatically from earlier sessions, none of which are in the graph yet.

  1. List pending candidates:

    uv run --project "${HIVE_MIND_HOME:?Set HIVE_MIND_HOME to the Hive Mind checkout}" python -c "
    from hive_mind.candidates import pending
    for c in pending():
        print(f'{c.id}  [{c.scope}/{c.repo or c.client}]  '
              f'key={c.decision_key} decided={c.decided_at or \"unknown\"}  '
              f'{c.statement}')
    "
    
  2. Walk them ONE AT A TIME. For each, show decision_key, statement, rationale, alternatives_rejected, and decided_at, then ask: accept / edit / discard. If a legacy candidate has no decided_at, inspect its source session timestamp or ask the user; never use extracted_at as a silent substitute.

    • accept — call record_decision with the candidate's fields, then mark it resolved (below). Pass source='harvested', the candidate's session_id, decision_key, and decided_at. Never call record_decision before the user has said accept.
    • edit — apply their changes, confirm the revision, then accept.
    • discard — mark it discarded. Say nothing further; a rejected candidate is a normal outcome, not a failure.
  3. Mark resolved after each:

    uv run --project "${HIVE_MIND_HOME:?Set HIVE_MIND_HOME to the Hive Mind checkout}" python -c "
    from hive_mind.candidates import resolve
    resolve('<candidate-id>', '<accepted|discarded>')
    "
    
  4. Stop after five in one sitting and offer to continue. A long review turns into rubber-stamping, which defeats the confirmation gate.

Extraction is deliberately noisy and the queue is where that noise is absorbed. If most candidates are task summaries rather than decisions, say so — the fix is the extraction prompt in hive_mind/extract.py, not more careful reviewing.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 77 lines · 10 tokens per session scan A 65513402700e

Subscribe to this mod's changes

decide is a command published in the GitHub repository toml0006/hive-mind (1 stars, last pushed 16d ago), licensed Apache-2.0. It adds 10 tokens to every session and 853 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.