Architecture Decision Records
An ADR is a short document that captures a significant architectural choice, the context it was made in, and the consequences of that choice. ADRs are immutable once accepted — superseded ADRs are marked as such, not deleted.
When to Write an ADR
- You are choosing between two or more viable technical approaches.
- The decision will be hard or costly to reverse later.
- A new cross-cutting concern is introduced (auth, observability, data storage).
- A breaking change to a public API or agent contract is planned.
Small, local choices do not need an ADR. Use inline comments or PR descriptions instead.
ADR Template
# ADR-NNNN: <short title>
**Date:** YYYY-MM-DD
**Status:** Proposed | Accepted | Superseded by ADR-XXXX | Deprecated
## Context
What forces, constraints, or requirements led to this decision?
One paragraph; no solution yet.
## Decision
What we decided. Be direct. "We will use X because Y."
## Consequences
- **Positive:** what becomes easier or possible.
- **Negative:** what becomes harder or is lost.
- **Neutral:** other notable side-effects.
## Alternatives Considered
Brief notes on approaches that were rejected and why.
File location: docs/adr/NNNN-kebab-title.md
Process
- Open a GitHub issue tagged
adrto socialize the idea. - Create a PR adding the ADR file with status Proposed.
- Gather feedback; revise in-place on the same branch.
- Change status to Accepted and merge once two maintainers approve.
- When superseded, update the old ADR's status line — never delete the file.
Existing ADRs
ADRTitleStatusDate
0001 Multi-agent orchestration via Claude Code native teams Accepted 2024-11
0002 MCP as primary extension protocol over custom REST hooks Accepted 2024-12
0003 Bun as default runtime (replacing Node 20) Accepted 2025-01
0004 Tailwind v4 + CSS custom properties for design tokens Accepted 2025-03
0005 Skill invocation via slash commands over YAML manifests Proposed 2025-06