ADR-NNNN — <short imperative title>
Replace this with one or two plain sentences, about 160 characters at most, saying what the page is for.
- Status: Proposed
- Date: YYYY-MM-DD
- Deciders: @puncoz
- Approved by: —
- Approved on: —
- Supersedes: —
- Superseded by: —
- Design documents:
content/docs/maintain/app-flow/<slug>.mdx(when the UI changes, ADR-0008),content/docs/maintain/prd/<slug>.mdx,content/docs/maintain/architecture/system.mdx, … (the living docs this decision creates or changes — see ADR-0002)
Context
What problem are we solving? What forces, constraints and facts about the current codebase make this decision necessary now? State only what is true and verifiable.
Decision
The decision, stated plainly and in the present tense ("We use X", "Y lives in Z"). Include the concrete shape of the change: directories, file names, contracts, commands.
Options considered
| Option | Pros | Cons | Verdict |
|---|---|---|---|
A — <name> | Chosen / Rejected | ||
B — <name> | Chosen / Rejected |
Consequences
Positive
- …
Negative / accepted trade-offs
- …
Content invariants
Which invariants in AGENTS.md §6 this touches, and how it keeps them. If it departs from
one, say so explicitly. That departure is part of what the owner approves.
Security considerations
Mandatory — never omit this section (ADR-0005). For a change with no security surface, "None — this change touches no data, no endpoint and no secret" is a valid answer; an omitted section is indistinguishable from not having thought about it.
Where there is a surface, state: what content or data it handles and its classification,
whether anything private can reach a public surface, what authorization applies and where it is
enforced, what leaves the system (search provider, host, analytics), and what residual risk is
accepted. Link content/docs/maintain/security/<slug>.mdx when the feature warrants its own analysis.
Implementation notes
What actually changes in the repo once this is approved. Keep this list checkable — it is the scope of the implementation that follows the approval.
- …
- Tests — the happy path and the obvious failure paths (ADR-0007). If some part cannot be unit-tested, say which, and say what was verified instead.
-
bun run lint,bun run types:checkandbunx next buildpass.
Docs to update on implementation
Living design documents are snapshots of the system as it stands — edit them in place, never as a log of what changed (ADR-0002). Delete anything in them that is no longer true.
-
content/docs/maintain/app-flow/<slug>.mdx— if the UI changed -
content/docs/maintain/prd/<slug>.mdx— requirements + user stories -
content/docs/maintain/erd/system.mdx— if persisted data changed -
content/docs/maintain/architecture/system.mdx·content/docs/maintain/dfd/·content/docs/maintain/state/·content/docs/maintain/sequence/·content/docs/maintain/api/·content/docs/maintain/rbac/— whichever the change requires (ADR-0002) -
content/docs/maintain/security/—secrets.mdxif a secret is introduced;threat-model.mdxif the attack surface changed;<slug>.mdxif the feature warrants its own analysis -
AGENTS.md— <what changes, if the way we work changed> -
README.md— <what changes, if the project overview changed> -
content/docs/maintain/adr/index.mdx— index row + status