decision
Skill0 starsChanged 29 days agoApache-2.0View on GitHub
Settle one contested choice on the record: name the alternatives that are really live, put the evidence for each next to it, and land a call with the reasoning attached. Use it when three or more options are viable, when the evidence points both ways, or when the choice is expensive to undo — "Postgres or DynamoDB for this?", "should we roll our own or use library X?", "is it worth migrating off Y?", "the team can't agree on A versus B", "we tried this before and it didn't work, what now?". The one most often missed is "what do you think we should use for the queue?": phrased as an opinion, so the agent just answers, and months later nobody can reconstruct why. There is a floor — a cheaply reversible choice with an obvious answer does not need this. Do NOT use it for a document's worth of connected choices (`/design`), for options nobody has named yet (`/explore`), or for surveying a field of vendors before choosing among them (`/comp`).
17 other projects use a version of this.
Adopted by
Most recently taken up by
- sohaibt/product-modetheir own version, first seen Nov 8, 2026
- lulufoo/lulu-workflowtheir own version, first seen Nov 6, 2026
- qbicus/skillstheir own version, first seen Oct 25, 2026
- emiljuchnikowski/ai-os-templatetheir own version, first seen Oct 20, 2026
- chrisalehman/bionictheir own version, first seen Oct 13, 2026
- mhxie/Ateliertheir own version, first seen Oct 12, 2026
Used with
Projects with it also use audit, review and 1 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
OpenAISkillaudit
Audit or critique a product flow, journey, workflow, funnel, onboarding path, checkout path, settings path, screen, or multi-step product experience by capturing screenshots first, then reporting UX, design, and accessibility findings inline from that evidence. Use Figma only when the user explicitly asks for a board. Use when the user asks to audit, review, critique, inspect, assess, analyze, evaluate, or give feedback on a product experience.
Also in 3 projects that use this
SentrySkillreview
Fixture review skill.
Also in 4 projects that use this
MicrosoftSkillhandoff
Compact the current conversation into a handoff document for another agent to pick up.
Also in 3 projects that use this
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- sohaibt/product-mode★ 176same name
- aleksander-dytko/ai-pm-workspace★ 34same name
- chrisalehman/bionic★ 9same name
- mhxie/Atelier★ 5same name
- lulufoo/lulu-workflow★ 3same name
- madebypx/PXOS★ 3same name
- Jsnnmsc/10000x-engineer★ 2same name
- roethlar/AgentGovernanceBootstrap★ 2same name
- Tamircohen28/tamirs-superpowers★ 2same name
- yacb2/aidex★ 2same name
7 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository23 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- briefSkill
- charterSkill
- compSkill
- coordinateSkill
- deliverSkill
- designSkill
- executeSkill
- exploreSkill
- inflightSkill
- planSkill
- prdSkill
- private-contentSkill
- public-contentSkill
- releaseSkill
- review-planSkill
- roadmapSkill
- scopeSkill
- strategySkill
- visionSkill
- work-onSkill
- writing-styleSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 3 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
Writing style: Read skills/writing-style/SKILL.md for guidance.
- Distinctive: line 46
When invoked as a sub-operation by a parent skill (e.g., /design), the decision skill runs as a decider agent.
- Distinctive: line 117
When invoked by a parent skill, the decider receives a decision context:
- Very specific: line 160
Check for --auto flag. In --auto mode, the skill never blocks on user input.
- Very specific: line 161
Follow references/decision-protocol.md for assumption handling.
- Very specific: line 207
Every key row is tested in <session> (koto context exists <session> <key>.
- Very specific: line 215
After Phase 6 writes the report, remove the intermediate keys, since a parent reads only the report and a restarted decision (/design's …
- Very specific: line 224
Only <report_key> persists.
- Distinctive: line 243
If a validator times out or errors during Phase 4-5, the decider uses the validator's last known position rather than re-spawning.
“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
!${CLAUDE_PLUGIN_ROOT}/scripts/skill-preflight.sh decision 2>&1 || true
@.claude/shirabe-extensions/decision.md @.claude/shirabe-extensions/decision.local.md
Decision Skill
Make well-reasoned, auditable decisions through structured evaluation. The skill produces decision reports that map directly to design doc Considered Options sections and standalone Decision Records (ADRs).
Writing style: Read skills/writing-style/SKILL.md for guidance.
Decision Tiers
This skill handles Tier 3 (standard) and Tier 4 (critical) decisions. For Tier 1-2,
use the lightweight decision protocol (references/decision-protocol.md).
| Tier | Path | Phases | When |
| 3 (standard) | Fast | 0, 1, 2, 6 | 3+ options, needs research, but not adversarial |
| 4 (critical) | Full | 0, 1, 2, 3, 4, 5, 6 | Irreversible, high-stakes, contested |
Agent Hierarchy
When invoked as a sub-operation by a parent skill (e.g., /design), the decision skill runs as a decider agent. The decider spawns sub-agents:
Level 1: Parent skill (design, explore)
└── Level 2: Decider agent (this skill, one per decision question)
├── Level 3: Research agent (Phase 1, disposable)
├── Level 3: Alternative agents (Phase 2, disposable)
└── Level 3: Validator agents (Phases 3-5, persistent via SendMessage)
├── Phase 3: argue FOR their alternative (bakeoff)
├── Phase 4: receive peer findings, revise position
└── Phase 5: cross-examine peers, reach final positionValidator persistence is critical. Validators are spawned in Phase 3 and
re-messaged via SendMessage in Phases 4-5. They retain their full conversation
history to revise and defend their positions. Research and alternative agents are
disposable (single task, then done).
Session and Keys
/decision keeps every intermediate and its report as keys in a koto session,
following ${CLAUDE_PLUGIN_ROOT}/references/skill-session-convention.md. It
writes no file to the staging folder. Three names locate its state, and every
phase file uses them:
| Name | Run by a parent skill (/design) | Run directly |
<session> | the parent's session, from decision_context.session (design-<topic>) | decision-<topic> |
<key_dir> | decision_context.key_dir (work/decision-<N>) | work |
<report_key> | decision_context.report_key (work/decision_<N>_report.md) | work/report.md |
The keys are <key_dir>/context.md, <key_dir>/research.md,
<key_dir>/alternatives.md, <key_dir>/bakeoff_<k>.md (one per validator)
and <key_dir>/examination.md, then <report_key>.
Run by a parent skill. The parent's session is already open, and the
parent owns it: /decision opens, adopts and closes nothing, and writes only
under the key_dir and report_key it was given.
Run directly. Phase 0 derives <topic> from the question (lowercase,
whitespace and underscores to -, every character outside [a-z0-9-]
dropped, at most 60 characters, never starting or ending with -; ask for one
when nothing is left), then opens the session and records that no parent
dispatched it:
"${CLAUDE_PLUGIN_ROOT}/scripts/skill-session.sh" open decision <topic>
"${CLAUDE_PLUGIN_ROOT}/scripts/skill-session.sh" adopt decision <topic>Any non-zero exit from either command stops the run with the script's message:
127 or 69 means koto is missing or too old, and the skill never falls back to
files. At the end of Phase 6 a direct run closes its session:
"${CLAUDE_PLUGIN_ROOT}/scripts/skill-session.sh" close decision-<topic> done
(abandoned when the user abandons the decision). Under a parent /decision
never closes a session.
Keys are read and written with koto: koto context exists <session> <key>
tests one (exit 0 present, 1 absent), koto context get <session> <key> prints
it, koto context add <session> <key> stores the content given on stdin,
koto context list <session> --prefix <key_dir>/ lists them, and koto
context remove <session> <key> removes one. The decider writes keys itself;
the research and validator agents it spawns never do. Each writes one file in a
skill-session.sh scratch directory, which the decider ingests with
skill-session.sh ingest <session> <key_dir> <dir>; a validator revising its
report edits a copy materialized with skill-session.sh get and the decider
writes it back with skill-session.sh put.
Sub-Operation Interface
When invoked by a parent skill, the decider receives a decision context:
decision_context:
question: "Which cache invalidation strategy?"
session: "design-foo"
key_dir: "work/decision-1"
report_key: "work/decision_1_report.md"
options:
- name: "TTL-based"
description: "..."
constraints:
- "Must support < 100ms latency"
background: |
The system currently uses...
complexity: "standard" # standard | criticalAnd produces:
decision_result:
status: "COMPLETE"
chosen: "TTL-based"
confidence: "high"
rationale: "..."
assumptions:
- "Redis cluster remains available"
rejected:
- name: "Event-driven"
reason: "Adds infrastructure dependency for marginal gain"
report_key: "work/decision_1_report.md"See references/decision-report-format.md for the canonical output format
with consumer rendering sections.
Input Detection
From $ARGUMENTS:
- Empty -- ask what needs to be decided (or infer from context in --auto)
- Decision question -- use as the topic, proceed to Phase 0
Check for --auto flag. In --auto mode, the skill never blocks on user input.
Follow references/decision-protocol.md for assumption handling.
Workflow Phases
Phase 0: CONTEXT --> Phase 1: RESEARCH --> Phase 2: ALTERNATIVES --> Phase 3: BAKEOFF --> Phase 4: REVISION --> Phase 5: EXAMINATION --> Phase 6: SYNTHESIS
(fast path skips 3-5) ──────────────────────────────────────────────────────────────┘| Phase | Purpose | Agents | Artifact |
| 0 | Context and framing | None | key <key_dir>/context.md |
| 1 | Research critical unknowns | 1 research agent (disposable) | key <key_dir>/research.md |
| 2 | Identify and present alternatives | N alternative agents (disposable) | key <key_dir>/alternatives.md |
| 3 | Validation bakeoff | N validator agents (persistent) | keys <key_dir>/bakeoff_<k>.md |
| 4 | Informed peer revision | Same validators (SendMessage) | Updated bakeoff keys |
| 5 | Cross-examination | Same validators (SendMessage) | key <key_dir>/examination.md |
| 6 | Synthesis and report | None (decider synthesizes) | key <report_key> |
Fast path (Tier 3): skip Phases 3-5. No validators spawned. The decider goes from alternatives presentation directly to synthesis.
Resume Logic
if key <report_key> exists -> Decision complete
if key <key_dir>/examination.md exists -> Resume at Phase 6
if keys <key_dir>/bakeoff_* exist -> Resume at Phase 4
if key <key_dir>/alternatives.md exists -> Resume at Phase 3 (or Phase 6 for fast path)
if key <key_dir>/research.md exists -> Resume at Phase 2
if key <key_dir>/context.md exists -> Resume at Phase 1
else -> Start at Phase 0Phase Execution
Execute phases sequentially by reading the corresponding phase file:
- Context and Framing:
references/phases/phase-0-context.md - Research:
references/phases/phase-1-research.md - Alternative Presentation:
references/phases/phase-2-alternatives.md - Validation Bakeoff:
references/phases/phase-3-bakeoff.md - Peer Revision:
references/phases/phase-4-revision.md - Cross-Examination:
references/phases/phase-5-examination.md - Synthesis and Report:
references/phases/phase-6-synthesis.md
Every key row is tested in <session> (koto context exists <session>
<key>; the bakeoff row with koto context list <session> --prefix
<key_dir>/bakeoff_). A direct run reads the rows after Phase 0's open, so an
interrupted run's live session is attached and read; a finished one was
replaced and starts at Phase 0.
Cleanup
After Phase 6 writes the report, remove the intermediate keys, since a parent
reads only the report and a restarted decision (/design's Phase 3) must
start fresh:
<key_dir>/context.md<key_dir>/research.md<key_dir>/alternatives.md<key_dir>/bakeoff_<k>.md, each one<key_dir>/examination.md
Only <report_key> persists. Nothing is deleted from the staging folder:
/decision writes nothing there.
Validator Agent Contract
Validators are persistent agents. The contract between phases:
Phase 3 (spawn):
- Input: alternative description, decision question, constraints, background
- Output: validation report (strengths, weaknesses, risks, recommendation)
Phase 4 (SendMessage):
- Input: summaries from all OTHER validators
- Output: revised report (may change recommendation, add caveats)
Phase 5 (SendMessage):
- Input: specific challenges from competing validators
- Output: final position (defend, concede, or qualify)
If a validator times out or errors during Phase 4-5, the decider uses the validator's last known position rather than re-spawning.
Reference Files
| File | When to load |
references/phases/phase-0-context.md | Phase 0 |
references/phases/phase-1-research.md | Phase 1 |
references/phases/phase-2-alternatives.md | Phase 2 |
references/phases/phase-3-bakeoff.md | Phase 3 (full path only) |
references/phases/phase-4-revision.md | Phase 4 (full path only) |
references/phases/phase-5-examination.md | Phase 5 (full path only) |
references/phases/phase-6-synthesis.md | Phase 6 |
references/decision-report-format.md | Phase 6 (output format) |
references/decision-block-format.md | Phase 6 (block delimiters) |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

