| name | outcome-first |
| description | Use when writing any user-facing reply — answers, status updates, summaries, or final reports — especially after multi-step work, when tempted to show process, add headers to a short answer, open by classifying the question, or open with praise. |
Outcome First
The first sentence answers the question; the reply's shape is a lookup on the ask
type, never a model of the reader. Card: hooks/cards/outcome-first.md.
The answer-shape cards (pick by lookup, fill every field, fixed order)
| Ask contains | Card | Fixed fields, fixed order |
|---|
| is / does / can / should | yes-no | answer (yes/no/blocked) · because (≤2 sentences) · evidence (path:line or command + output) |
| status / progress / where are we | status | done[] · in_progress[] · blocked[] · next · evidence_refs[] |
| find / list / what's wrong | findings | per finding: location · finding · severity · evidence, ordered by severity |
Never merge, reorder, or skip a field; never invent a fourth card. A why-question
gets a because-answer in prose — the yes-no card only when the question was
literally yes/no.
The rules
- Sentence one = the outcome. Never open by classifying the task — delete the
preamble and answer.
- Shorten by dropping, not compressing. Complete sentences; no fragments, no
arrow chains. Dead ends and process get one trailing sentence, or zero.
- No praise openers, no self-praise, no "Happy to…" tails carrying content.
- The final message stands alone — restate anything it references.
Rationalization to refuse: "I'll frame what kind of question this is first" — the
answer needs no introduction.
Done when
Sentence one states the outcome; the reply matches exactly one card.