1 · Summary
[Three sentences: the change, the boundary, the outcome. This is the whole plan for a busy reader.]
2 · Accepted decisions
Decisions already made — recorded so they do not silently re-open during implementation.
3 · Open questions
Deliberately kept out of section 2: these are NOT yet decisions and the plan does not pretend otherwise.
4 · Milestones
| # | Milestone | Exit criteria | Verification |
|---|---|---|---|
| M1 | [first vertical slice] | [definition of done] | [how CI/human checks it] |
| M2 | [midpoint milestone] | [definition of done] | [how CI/human checks it] |
| M3 | [shipping milestone] | [definition of done] | [how CI/human checks it] |
5 · Mockups
In production, drop Tier-1 wireframe/prototype renders here (inlined, never hot-linked). At template time these are explicit placeholders.
6 · Risk table
| Risk | Likelihood | Impact | Mitigation / trigger to escalate |
|---|---|---|---|
| [concrete risk, not a generic worry] | med | high | [mitigation or the signal that should escalate it] |
| [second concrete risk] | low | med | [mitigation or the signal that should escalate it] |
7 · Data-flow diagrams
Text-shape diagrams at template time; replace each placeholder with a Tier-2 `html-diagram` render or an inline diagram for the real plan.
/* data-flow diagram placeholder */
[component] --> [store/API] --> [view]
\--> [side effect / event] --> [observer]
/* second data-flow diagram placeholder (failure path) */
[input] --> [validator] --X bad --> [user-facing error]
\-- ok --> [write path]
8 · Canonical source
The markdown source of record for this implementation plan lives at
docs/plans/...[slug]-spec.md (see the
<meta name="source"> header of this file). Edit the
.md; regenerate this render. Any edit to this page without
a matching change to the source is drift.