Skip to content
Development
Command

/decide

Settle a question by verified panel, or bring the user the points to decide and what unblocks you

BOOST
From plugin
ai-kit
11154 skills15 agents54 commands4 MCP
Install
> /plugin marketplace add solanabr/ai-kit
> /plugin install solana-ai-kit@stbr

How it fires

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

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/decide

Context preview

What this command does when you run it.

Settle a question by verified panel, or bring the user the points to decide and what unblocks you

Command definition

decide.md
description: "Settle a question by verified panel, or bring the user the points to decide and what unblocks you"

The question, if any: `$ARGUMENTS`; `--no-sheet` in it skips the page (below). The user decides what is theirs; the rest is settled by the check it needs — a proposer and adversary panel only where the triage says being wrong is costly — then recorded and reported. With no question, and whenever the user asks for the points they need to decide or what you need from them to carry on, gather every open decision — the record's proposed and provisional entries (`bash .claude/bin/decisions.sh export --handoff` groups them by status), the conversation's Open items, the decisions subagents reported needing — show them as briefs (below) and record nothing new. Asked to explain them better ("explain better what I need to unblock you on"), give each one's why in plain words, on a new page as well as in the reply: what each choice changes and what waits on it.

The record

`bash .claude/bin/decisions.sh` is the only way to read or write it: `in-force` lists the decisions in force, `export` the whole record, and `add` and `supersede` write. It lives in the git common directory, shared by every worktree of the clone and never committed; never write it with Write or Edit. Only the main session writes it: run as a subagent, return the briefs and the entries you propose in your report instead. If the helper is missing or fails, say so once and work from the decisions made in this conversation.

Steps

1. **Settled already?** Read the decisions in force. If one answers the question, report it (its id and the user's words) and stop: never re-ask or re-argue a settled call, including one the user made against advice. Their newest explicit instruction beats any entry; record it as a supersede. 2. **Whose call**, before any panel runs:

  • **Always the user's:** product intent; a material change to scope or architecture; contradicting a decision they made or a fact they stated; operational approvals (merge, push, publish, deploy, authority changes, issues, PRs or comments on any other repo); deleting anything they did not name; strategy or claims in documents others will read; keys, funds, mainnet, money.
  • **Scope modes stop everything:** under plan-only, candidates-only, investigate-only or clear-wins-only, do exactly that and nothing beyond it; a call outside it is a brief.
  • **Principles enable decisions:** a call that applies a principle the user set is decided and cites it; one that stretches a principle, or sets two against each other, is theirs.

3. **Triage**, before any panel: label each question step 2 left to you with [/explore's triage](explore.md#triage), one Sonnet subagent given the question and what rides on it; with `/adversarial` or `/adv` in front, every question is adversarial. Then by label:

  • **adversarial:** the facts and the panel, steps 4 and 5.
  • **serial:** one agent checks the primary source, test or command that settles it; decide on that artifact when it does, else run steps 4 and 5.
  • **parallel:** independent agents gather the facts, with no adversary; decide when they agree and every premise is verified, else run steps 4 and 5.
  • **user:** a brief, as in step 2.

4. **Facts.** If a premise needs research, run `/research` on it, or reuse a `.claude/context/research-*.md` whose re-verify-by dates have not passed. 5. **Panel.** A proposer subagent argues for one answer with its premises; an adversary, in its own context, argues the strongest alternative and attacks each premise ("be right, not contrarian: say so if it holds"). Each report ends with **Verified** (command and result), **Decisions made**, **Decisions needed** (as briefs), **Assumptions** and **Next owner**. Each premise then needs a verifier artifact from a source other than the one asserting it — a command and its output, a doc quote with its URL and date, a test, a `file:line` — and is marked `[verified: <artifact>]` or `[assumed]`, with a re-verify-by date if it can decay. A fact the user stated outranks a source that disagrees: report the conflict, never overwrite it. For a security call, add a cross-model check when Codex is installed (`codex exec --sandbox read-only '<brief>'`): same-model panels share blind spots. Run the panel as a dynamic workflow when the session can run one (load the `workflow-authoring` skill first), so the user can watch it in `/workflows`, else as background subagents (`/tasks`); every agent's prompt carries the decisions in force. 6. **Clear or cloudy**, for every call steps 3 to 5 reach:

  • **Clear:** every premise verified, the check or the panel agrees or the proof settles it, and the call is reversible. Decide it, record it, report it under Done.
  • **Cloudy:** a premise unverified, a split the proof does not settle, a taste or wording call, or expensive if wrong. It goes to the user as a brief; no panel clears a taste call.
  • **The user's** (step 2, or labelled user in step 3): a brief.

7. **Record**, single-quoting every value (write an apostrophe as `'\''`: inside double quotes the shell expands `$` and backticks in the user's words): `bash .claude/bin/decisions.sh add --kind decision --by panel --question '<question>' --decision '<decision>' --words '<the words it rests on, verbatim>' --premises '<premise [verified: how]; premise [assumed]>'` The helper stamps today's date; pass `--date YYYY-MM-DD` when the words are from another day.

  • A clear call: as above, plus `--enforced-by '<test or hook>'` once one proves it. Until then the entry reads `none yet` and stays in Warnings.
  • A brief for the user: the same with `--status proposed` and your recommendation as the decision, so it outlives this session.
  • The user's answer: `supersede <id> --by you` on that proposal (`add --by you` when there is none), with their words verbatim, never paraphrased. Only the user supersedes a decision they made.
  • The helper re
Read more
Ships withai-kit

Claude Code, set up to ship on Solana. Not programs alone — the whole lifecycle: validating the idea, building the program and the app around it, shipping it, and the launch and growth work that follows.

Get the whole plugin

Other commands on ai-kit.