ADR Guide in CBF
This project stores Architecture Decision Records (ADRs) under docs/decisions/ at the repository.
The goal of an ADR is to preserve why a decision was made so future maintainers, AI agents, and contributors can trace it.
An ADR is not an implementation design document.
1. Naming Convention
- Filename:
NNNN-kebab-case-title.mdNNNNis a 4-digit sequential number (for example,0001-...)- As a rule, numbering order should match decision order
- Title line:
# ADR NNNN: ...
2. Required Sections (in this order)
Every ADR must include the following sections:
StatusDateContextDecisionConsequencesAlternatives ConsideredNotesFollow-ups
2.1 Status
Recommended values (you may add more if needed):
Proposed: under proposal (not yet decided)Accepted: adopted (decision made)Rejected: rejectedDeprecated: previously valid but now deprecatedSuperseded: replaced by another ADR (explicitly include the replacing ADR number)
2.2 Date
- Format:
YYYY-MM-DD - Use the date when the ADR became an actual decision (typically when set to
Accepted)
3. Writing Guidelines
Context
- Describe the problem to solve, constraints, assumptions, current state, and why a decision is needed now
- If references exist, include links or repository paths
Decision
- State in definitive form what will be done, at which boundary, and in which dependency direction
- When possible, make responsibilities and dependencies explicit (avoid cycles)
Consequences
- Separate
Positive(expected benefits) andNegative / Trade-offs(costs, drawbacks) - Consider impact areas such as developer experience, changeability, performance, operations, and testing
Alternatives Considered
- List alternatives and briefly explain why each was not chosen
Notes
- Add important supplemental information that does not fit naturally in Context/Decision/Consequences
- You may explicitly mark what is out of scope for this ADR
Follow-ups
- List concrete next actions as bullets (entry points to implementation tasks)
- If possible, include ordering or the first step
4. Template
Create new ADRs by copying the template below.
# ADR NNNN: <Short Title>
- Status: <Proposed | Accepted | ...>
- Date: YYYY-MM-DD
## Context
<Background, problem, constraints, reference links>
## Decision
<Definitive statement of this decision>
## Consequences
### Positive
- <Benefit>
### Negative / Trade-offs
- <Cost or drawback>
## Alternatives Considered
### A. <Alternative>
- <Reason it was not selected>
## Notes
- <Supplemental notes>
## Follow-ups
- <Next action>