-
Decide if an ADR is needed — write one when the decision is:
- Hard to reverse (framework, database, auth strategy, API architecture)
- Surprising — the chosen option is not the obvious first choice
- A genuine trade-off where alternatives were seriously considered
-
Fill the ADR template — save to docs/adrs/ADR-NNN-<slug>.md:
# ADR-NNN: <Title>
## Status
Accepted | Superseded by ADR-XXX | Deprecated
## Date
YYYY-MM-DD
## Context
What situation or constraint forced this decision?
## Decision
What we chose and why.
## Alternatives Considered
What was rejected and why — be specific.
## Consequences
What becomes easier, what becomes harder, what we're betting on.
-
Comment the why, not the what — inline comments explain non-obvious intent, constraints, or known gotchas. Never restate what the code already says.
-
README covers quick start — every project needs: one-paragraph description, quick start steps, command table (dev / test / build / lint), architecture overview, contributing guide.
-
Changelog for shipped features — follow Keep a Changelog format: Added / Fixed / Changed / Removed sections per version.
-
Agent context files stay current — keep AGENTS.md, CONTEXT.md, and spec files updated. Agents use them to avoid re-deciding what's already been decided.