docs(specs): make "a spec becomes an architecture doc" the written rule
The sixteen specs folded in last commit were folded because someone noticed they had gone stale, not because anything said they should be. Without the rule written down the directory drifts straight back to a mix of promises and descriptions, and neither can be trusted: you cannot tell from a file whether it describes the build or proposes a change to it. So: docs/specs/ holds only unshipped work, there is no "Implemented" resting state, and the fold-in and the deletion happen in the same commit. The template now asks for the destination architecture doc **up front**, which is a design check rather than bookkeeping — a feature that fits no existing doc usually has an unclear layer assignment, and it is cheaper to find that out at spec time. It also tells the author which half of what they are writing is durable (invariants, rejected alternatives, the defect a decision prevents) and which half dies with the file (phases, migration steps, acceptance criteria). The review checklist gains a Lifecycle section, including the case that gets lost otherwise: out-of-scope work worth doing has to be written where it will still be found after the spec is gone.
This commit is contained in:
@@ -53,6 +53,18 @@ Copy the boxes into the review comment (or the PR) and tick them.
|
||||
- [ ] Traceability coverage stays ≥ 88% (the CI gate — a ratchet, so check
|
||||
`bun run traces:coverage` rather than trusting this number).
|
||||
|
||||
## Lifecycle
|
||||
|
||||
- [ ] **"Destination on completion" names a real architecture doc and section.**
|
||||
This spec file is deleted when it ships; something has to absorb the
|
||||
design. If nothing fits, the layer assignment is probably unclear — go back
|
||||
to that table.
|
||||
- [ ] The spec separates the **durable half** (invariants, rejected alternatives,
|
||||
the defect a decision exists to prevent) from the **disposable half**
|
||||
(phases, migration steps, acceptance criteria). Only the first is folded in.
|
||||
- [ ] Anything listed as out of scope but still worth doing is written where it
|
||||
will be found after this file is gone — beside the code it concerns.
|
||||
|
||||
## Conflicts & hygiene
|
||||
|
||||
- [ ] If this spec revises/supersedes another, the older spec gets a banner
|
||||
|
||||
Reference in New Issue
Block a user