Decision
$fw:decision is Flywheel's helper for durable decision quality. Use it
directly for ADR-style decisions, spec grilling, terminology conflicts, or
reviewing whether a plan needs a decision record before work starts.
This is a helper surface, not a visible backbone stage. It supports shape,
plan, deepen, architecture helpers, and document review when a material
choice needs sharper grounding.
When directly invoked, always do decision work. Inspect repo context,
challenge ambiguity, ask only the next material question, and decide whether a
durable record or context update is warranted.
Interaction Method
Follow ../references/host-interaction-contract.md.
Call the exact host question tool named in the host interaction contract when
that tool is available. Ask one question at a time. When the answer space is
predictable, provide 2-3 portable options with the recommended option first
and rely on the host's native freeform path when it exists.
Input
#$ARGUMENTS
If blank, inspect the current shaping artifact, plan, or active conversation
for the most likely unresolved decision. If no material decision is visible,
say that no durable decision record is needed.
Reference Loading Map
Do not load every reference by default:
- Read
references/decision-record-format.md only when creating, updating, or
reviewing a durable decision record.
- Read
references/context-format.md only when reading, creating, or updating
project context, glossary, terminology, or bounded-context artifacts.
- Read
../references/architecture-code-quality/activation-heuristics.md only
when deciding whether the issue is architecture-bearing enough to need a
focused architecture helper as input.
Core Principles
- Repo truth before user questions - inspect existing code, tests, docs,
configs, specs, plans, context docs, and prior decisions before asking for
information that can be discovered.
- Decision records are conditional - write a durable record only when the
choice is hard to reverse, surprising without context, and the result of a
real tradeoff. Architecture, workflow-contract, and product-scope choices
often qualify, but still test all three conditions.
- Context is separate from decisions - context/glossary artifacts define
project language and relationships. Decision records explain why a choice
was made and what alternatives were rejected.
- Terminology conflicts are first-class - surface conflicts between user
language, existing docs, code behavior, and tests before preserving a spec,
plan, or decision.
- Walk dependencies in order - resolve upstream framing and language
choices before asking downstream implementation or rollout questions.
- Stress-test concrete scenarios - when relationships, scope boundaries,
or workflow states are unclear, use a specific scenario or edge case to
force precise language before recording the choice.
- Prefer recommended questions - ask one material question at a time with
a recommended answer when possible.
- Keep records small - capture enough context for future work without
turning an ADR or glossary into a long design essay.
Workflow
Phase 1: Ground The Decision
Inspect the smallest relevant repo surface:
- active spec, requirements doc, plan, or review artifact
AGENTS.md and nearby project guidance
- existing context or glossary files such as
CONTEXT.md, CONTEXT-MAP.md,
docs/context/, or area-local docs
- existing decision records under
docs/decisions/, docs/adr/, or the
active repo's established convention
- source, tests, configs, migrations, API docs, workflow docs, or generated
artifacts that define the behavior under discussion
Use existing project conventions first. If no convention exists, prefer
docs/decisions/ for decision records and docs/context/ for reusable
project context.
Phase 2: Classify The Need
Choose the smallest useful output:
- No durable record - the choice is obvious, reversible, local, or already
captured by the spec/plan.
- Context update - the main value is resolved project language, aliases,
relationships, or bounded-context terminology.
- Decision record - the choice has meaningful alternatives, consequences,
or future surprise risk.
- Decision review - an existing ADR, context doc, spec, or plan conflicts
with repo truth or needs a reopen decision.
If a decision is really an architecture or pattern question, use the relevant
helper first, then capture the decision only if the outcome should persist.
Phase 3: Grill The Gaps
Compare:
- user wording
- existing project terms
- code and test behavior
- relevant docs and prior decisions
- the proposed spec or plan
Call out conflicts immediately. If the code, tests, context docs, or prior
decisions contradict the proposed wording, resolve that contradiction before
writing or accepting the decision.
Ask one material question only when repo truth cannot answer it. Put upstream
questions first:
- term meaning or bounded context
- user outcome or workflow contract
- boundary or ownership choice
- rejected alternative and consequence
- validation or review question
Use a concrete scenario when the ambiguity is about actors, states, boundaries,
cardinality, ownership, or failure behavior.
Phase 4: Capture Or Decline
If no record is needed, say why in one or two sentences and hand back to the
calling stage.
If context needs capture, read references/context-format.md, update or create
the smallest useful context artifact, and keep implementation mechanics out of
the glossary.
If a decision record is needed, read references/decision-record-format.md,
write or update the record, and keep the fields small enough for future
planning, review, and commit context.
Phase 5: Handoff
Return:
- Decision result - no record, context updated, decision recorded, or
reopen needed
- Artifacts - repo-relative paths changed or reviewed
- Key choice - chosen direction and why
- Rejected alternatives - only material alternatives
- Open questions - only blockers for the next stage
- Next move - the Flywheel stage or helper that should continue
When called from shape, return control to the original shaping mode unless a
blocking decision remains unresolved.
1---2name: decision3description: Grill and capture durable decisions. Use for ADRs, terminology conflicts, tradeoffs, or spec decision review.4---56# Decision78`$fw:decision` is Flywheel's helper for durable decision quality. Use it9directly for ADR-style decisions, spec grilling, terminology conflicts, or10reviewing whether a plan needs a decision record before work starts.1112This is a helper surface, not a visible backbone stage. It supports `shape`,13`plan`, `deepen`, architecture helpers, and document review when a material14choice needs sharper grounding.1516**When directly invoked, always do decision work.** Inspect repo context,17challenge ambiguity, ask only the next material question, and decide whether a18durable record or context update is warranted.1920## Interaction Method2122Follow `../references/host-interaction-contract.md`.2324Call the exact host question tool named in the host interaction contract when25that tool is available. Ask one question at a time. When the answer space is26predictable, provide 2-3 portable options with the recommended option first27and rely on the host's native freeform path when it exists.2829## Input3031<decision_input> #$ARGUMENTS </decision_input>3233If blank, inspect the current shaping artifact, plan, or active conversation34for the most likely unresolved decision. If no material decision is visible,35say that no durable decision record is needed.3637## Reference Loading Map3839Do not load every reference by default:4041- Read `references/decision-record-format.md` only when creating, updating, or42 reviewing a durable decision record.43- Read `references/context-format.md` only when reading, creating, or updating44 project context, glossary, terminology, or bounded-context artifacts.45- Read `../references/architecture-code-quality/activation-heuristics.md` only46 when deciding whether the issue is architecture-bearing enough to need a47 focused architecture helper as input.4849## Core Principles50511. **Repo truth before user questions** - inspect existing code, tests, docs,52 configs, specs, plans, context docs, and prior decisions before asking for53 information that can be discovered.542. **Decision records are conditional** - write a durable record only when the55 choice is hard to reverse, surprising without context, and the result of a56 real tradeoff. Architecture, workflow-contract, and product-scope choices57 often qualify, but still test all three conditions.583. **Context is separate from decisions** - context/glossary artifacts define59 project language and relationships. Decision records explain why a choice60 was made and what alternatives were rejected.614. **Terminology conflicts are first-class** - surface conflicts between user62 language, existing docs, code behavior, and tests before preserving a spec,63 plan, or decision.645. **Walk dependencies in order** - resolve upstream framing and language65 choices before asking downstream implementation or rollout questions.666. **Stress-test concrete scenarios** - when relationships, scope boundaries,67 or workflow states are unclear, use a specific scenario or edge case to68 force precise language before recording the choice.697. **Prefer recommended questions** - ask one material question at a time with70 a recommended answer when possible.718. **Keep records small** - capture enough context for future work without72 turning an ADR or glossary into a long design essay.7374## Workflow7576### Phase 1: Ground The Decision7778Inspect the smallest relevant repo surface:7980- active spec, requirements doc, plan, or review artifact81- `AGENTS.md` and nearby project guidance82- existing context or glossary files such as `CONTEXT.md`, `CONTEXT-MAP.md`,83 `docs/context/`, or area-local docs84- existing decision records under `docs/decisions/`, `docs/adr/`, or the85 active repo's established convention86- source, tests, configs, migrations, API docs, workflow docs, or generated87 artifacts that define the behavior under discussion8889Use existing project conventions first. If no convention exists, prefer90`docs/decisions/` for decision records and `docs/context/` for reusable91project context.9293### Phase 2: Classify The Need9495Choose the smallest useful output:9697- **No durable record** - the choice is obvious, reversible, local, or already98 captured by the spec/plan.99- **Context update** - the main value is resolved project language, aliases,100 relationships, or bounded-context terminology.101- **Decision record** - the choice has meaningful alternatives, consequences,102 or future surprise risk.103- **Decision review** - an existing ADR, context doc, spec, or plan conflicts104 with repo truth or needs a reopen decision.105106If a decision is really an architecture or pattern question, use the relevant107helper first, then capture the decision only if the outcome should persist.108109### Phase 3: Grill The Gaps110111Compare:112113- user wording114- existing project terms115- code and test behavior116- relevant docs and prior decisions117- the proposed spec or plan118119Call out conflicts immediately. If the code, tests, context docs, or prior120decisions contradict the proposed wording, resolve that contradiction before121writing or accepting the decision.122123Ask one material question only when repo truth cannot answer it. Put upstream124questions first:1251261. term meaning or bounded context1272. user outcome or workflow contract1283. boundary or ownership choice1294. rejected alternative and consequence1305. validation or review question131132Use a concrete scenario when the ambiguity is about actors, states, boundaries,133cardinality, ownership, or failure behavior.134135### Phase 4: Capture Or Decline136137If no record is needed, say why in one or two sentences and hand back to the138calling stage.139140If context needs capture, read `references/context-format.md`, update or create141the smallest useful context artifact, and keep implementation mechanics out of142the glossary.143144If a decision record is needed, read `references/decision-record-format.md`,145write or update the record, and keep the fields small enough for future146planning, review, and commit context.147148### Phase 5: Handoff149150Return:1511521. **Decision result** - no record, context updated, decision recorded, or153 reopen needed1542. **Artifacts** - repo-relative paths changed or reviewed1553. **Key choice** - chosen direction and why1564. **Rejected alternatives** - only material alternatives1575. **Open questions** - only blockers for the next stage1586. **Next move** - the Flywheel stage or helper that should continue159160When called from `shape`, return control to the original shaping mode unless a161blocking decision remains unresolved.