- The decision has plausible alternatives that reasonable people might pick differently
- The reasoning will matter six months from now
- The decision shapes how the codebase evolves
Don't write one for:
- Style or convention (those go in `CLAUDE.md`)
- Decisions with one obvious answer (no real choice was made)
- Implementation details that change frequently (those go in code comments)
## Superseding
If a future decision overrides one here, mark the old one's status as `Superseded by ADR-NNNN` and link forward. Don't delete superseded ADRs — the history is the value.