/decision — Project Decision Records
You capture decisions the way software teams capture ADRs (Architecture Decision Records) — except these are for actual architecture. One file per decision, numbered, in decisions/ at the project root. The record survives the email thread, the meeting, and the personnel change that would otherwise lose it.
Usage
/decision → interview for a decision in the air, then record it
/decision we're going with X → record it, asking only for what's missing
/decision supersede 0003 → mark 0003 superseded, record its replacement
/decision list → show the index with statuses
Hard rules
- One decision per record. "Schemes B and code edition 2022" is two records.
- Never renumber, never delete. Numbers are permanent references. Wrong decisions get
superseded, not removed — the reasoning trail is the point.
- Capture options honestly. A record with one option isn't a decision, it's an announcement. Ask what else was considered, even briefly.
- Keep the dossier index in sync. Every create/supersede updates the Decisions table in
PROJECT.md (create the dossier via /project-dossier init first if it doesn't exist).
- Brevity. Context in 2–4 sentences, options as one line each, consequences as bullets. A record nobody reads records nothing.
Recording flow
- Find the next number:
Glob decisions/*.md, take max + 1, zero-padded to 4 digits.
- Gather the pieces — from the conversation first, ask only for gaps (one grouped question): what was decided, what options were on the table, why, who made the call.
- Write
decisions/NNNN-{kebab-slug}.md from the template.
- Update the Decisions index in
PROJECT.md.
- Confirm with the path and a one-line restatement of the decision.
Template
# NNNN — {Decision title, stated as the choice made}
- **Status:** decided
- **Date:** {YYYY-MM-DD}
- **Deciders:** {who made the call}
## Context
{2–4 sentences: the situation that forced a choice. Link the analysis that surfaced it if one exists.}
## Options considered
1. **{Option A}** — {one line: what it would mean}
2. **{Option B}** — {one line}
## Decision
{The choice, and the load-bearing reason in 1–3 sentences.}
## Consequences
- {What this enables, costs, or constrains downstream}
- {What must now happen as a result}
Statuses: proposed (on the table, not yet made — record it so the options aren't lost), decided, superseded by NNNN.
On supersede
- Read the old record. Set its status to
superseded by NNNN (naming the new record) — touch nothing else in it.
- Record the new decision normally; its Context section names what it replaces and why the reversal.
- Update both rows in the dossier index.
When analysis skills propose a decision
Skills in this marketplace surface choice points (zoning paths, code editions, GWP thresholds) and suggest running /decision. When that happens, the analysis is your Context — quote its numbers with their source rather than re-deriving them.
Collaboration
Records are plain files in the project folder — share them the way the project is already shared (git, Drive, Dropbox). Review happens in version control or in conversation; this skill imposes no workflow beyond the files.
1---2name: decision3description: Capture a project decision as an ADR-style record in decisions/NNNN-slug.md — context, options considered, the call, consequences, status. Use when the user makes or reports a design, code, zoning, or procurement choice ("we're going with...", "the client decided..."), when an analysis surfaces options that force a choice, or to supersede an earlier decision. Records reasoning — current facts live in PROJECT.md via /project-dossier.4---5
6# /decision — Project Decision Records
7
8You capture decisions the way software teams capture ADRs (Architecture Decision Records) — except these are for actual architecture. One file per decision, numbered, in `decisions/` at the project root. The record survives the email thread, the meeting, and the personnel change that would otherwise lose it.
9
10## Usage
11
12```
13/decision → interview for a decision in the air, then record it
14/decision we're going with X → record it, asking only for what's missing
15/decision supersede 0003 → mark 0003 superseded, record its replacement
16/decision list → show the index with statuses
17```
18
19## Hard rules
20
211. **One decision per record.** "Schemes B and code edition 2022" is two records.
222. **Never renumber, never delete.** Numbers are permanent references. Wrong decisions get `superseded`, not removed — the reasoning trail is the point.
233. **Capture options honestly.** A record with one option isn't a decision, it's an announcement. Ask what else was considered, even briefly.
244. **Keep the dossier index in sync.** Every create/supersede updates the Decisions table in `PROJECT.md` (create the dossier via `/project-dossier init` first if it doesn't exist).
255. **Brevity.** Context in 2–4 sentences, options as one line each, consequences as bullets. A record nobody reads records nothing.
26
27## Recording flow
28
291. Find the next number: `Glob decisions/*.md`, take max + 1, zero-padded to 4 digits.
302. Gather the pieces — from the conversation first, ask only for gaps (one grouped question): what was decided, what options were on the table, why, who made the call.
313. Write `decisions/NNNN-{kebab-slug}.md` from the template.
324. Update the Decisions index in `PROJECT.md`.
335. Confirm with the path and a one-line restatement of the decision.
34
35## Template
36
37```markdown
38# NNNN — {Decision title, stated as the choice made}
39
40- **Status:** decided
41- **Date:** {YYYY-MM-DD}
42- **Deciders:** {who made the call}
43
44## Context
45
46{2–4 sentences: the situation that forced a choice. Link the analysis that surfaced it if one exists.}
47
48## Options considered
49
501. **{Option A}** — {one line: what it would mean}
512. **{Option B}** — {one line}
52
53## Decision
54
55{The choice, and the load-bearing reason in 1–3 sentences.}
56
57## Consequences
58
59- {What this enables, costs, or constrains downstream}
60- {What must now happen as a result}
61```
62
63Statuses: `proposed` (on the table, not yet made — record it so the options aren't lost), `decided`, `superseded by NNNN`.
64
65## On `supersede`
66
671. Read the old record. Set its status to `superseded by NNNN` (naming the new record) — touch nothing else in it.
682. Record the new decision normally; its Context section names what it replaces and why the reversal.
693. Update both rows in the dossier index.
70
71## When analysis skills propose a decision
72
73Skills in this marketplace surface choice points (zoning paths, code editions, GWP thresholds) and suggest running `/decision`. When that happens, the analysis is your Context — quote its numbers with their source rather than re-deriving them.
74
75## Collaboration
76
77Records are plain files in the project folder — share them the way the project is already shared (git, Drive, Dropbox). Review happens in version control or in conversation; this skill imposes no workflow beyond the files.