ADR Template
Purpose
Create Architecture Decision Records that capture the context, options considered, decision rationale, and consequences of significant technical choices. Produces structured ADR documents that serve as the institutional memory of the project.
Scope Constraints
Reads existing ADRs, system context, and stakeholder input to produce a structured decision record. Does not implement the chosen option or modify system architecture.
Inputs
- The architectural question or decision being made
- Current system context and constraints
- Stakeholder concerns and priorities
- Related previous decisions (existing ADRs)
Input Sanitization
No user-provided values are used in commands or file paths. All inputs are treated as read-only analysis targets.
Procedure
Progress Checklist
Step 1: Identify the Decision to Record
Clearly frame the architectural question:
- What specific question was (or needs to be) resolved?
- Why is this decision significant enough to record? (Costly to change, cross-cutting impact, team disagreement)
- What is the scope of this decision? (Single service, full system, team process)
- Assign a sequential ADR number and descriptive title
Step 2: Describe Context
Document the forces at play:
- What is the current state of the system relevant to this decision?
- What constraints exist? (Technical: language, framework, infrastructure. Business: timeline, budget, team size)
- What requirements drive this decision? (Functional, non-functional, compliance)
- What assumptions are being made?
- Reference related ADRs that provide context or are affected by this decision
Step 3: Enumerate Options Considered
List at least 2-3 alternatives, including "do nothing":
- Option A: [Name] — Brief description of the approach
- Option B: [Name] — Brief description of the approach
- Option C: Do nothing / Status quo — What happens if no change is made
- For each option, provide enough detail for a reader to understand the approach without external context
Step 4: Evaluate Each Option
Analyze tradeoffs systematically:
- Pros: What does this option do well? Alignment with principles, simplicity, performance
- Cons: What are the downsides? Complexity, risk, learning curve, migration effort
- Risks: What could go wrong? Scaling issues, vendor lock-in, maintenance burden
- Effort: Rough implementation effort (T-shirt size: S/M/L/XL)
- Alignment: How well does this option align with architectural principles and team capabilities?
Step 5: Document the Decision
State the chosen option and core rationale:
- Which option was selected?
- What was the primary reason for choosing it? (Not "it's the best" — the specific tradeoff that tipped the balance)
- Was this decision unanimous or contentious? Note dissenting opinions if applicable
- What conditions would make this the wrong decision? (Helps future readers know when to revisit)
Step 6: Specify Consequences
Detail what follows from this decision:
- What becomes easier: Capabilities enabled, patterns simplified, workflows improved
- What becomes harder: Constraints introduced, options foreclosed, complexity added
- New constraints: What must all future development respect because of this decision?
- Technical debt accepted: What shortcuts or imperfections are knowingly accepted?
- Follow-up work: What tasks, migrations, or changes are needed to implement this decision?
Step 7: Define Review Triggers
Specify when this decision should be revisited:
- Scale thresholds: "Revisit if traffic exceeds X or data grows beyond Y"
- Technology changes: "Revisit if [framework/service] releases [capability]"
- Team changes: "Revisit if team grows beyond N engineers or splits into multiple teams"
- Time-based: "Review after 12 months regardless of other triggers"
- Pain indicators: "Revisit if [specific friction point] becomes a recurring issue"
Compaction resilience: If context was lost during a long session, re-read the Inputs section to reconstruct what system is being analyzed, check the Progress Checklist for completed steps, then resume from the earliest incomplete step.
Output Format
# ADR-[NNN]: [Descriptive Title]
**Status**: [Proposed | Accepted | Deprecated | Superseded by ADR-NNN]
**Date**: [YYYY-MM-DD]
**Deciders**: [Who was involved in the decision]
## Context
[What is the situation? What forces are at play? What constraints exist?]
[Reference related ADRs: ADR-NNN, ADR-NNN]
## Decision
We will [chosen approach].
[Core rationale — the specific tradeoff that decided it.]
## Consequences
### What becomes easier
- [Consequence 1]
- [Consequence 2]
### What becomes harder
- [Consequence 1]
- [Consequence 2]
### Technical debt accepted
- [Debt item and why it's acceptable for now]
## Alternatives Considered
### Option A: [Name]
[Description]
- **Pros**: [list]
- **Cons**: [list]
- **Why not**: [specific reason this was rejected]
### Option B: [Name]
[Description]
- **Pros**: [list]
- **Cons**: [list]
- **Why not**: [specific reason this was rejected]
### Option C: Do Nothing
[What happens if we don't act]
- **Pros**: No effort, no risk of change
- **Cons**: [specific problems that persist or worsen]
- **Why not**: [why inaction is unacceptable]
## Review Triggers
- [ ] [Scale threshold]: Revisit if [condition]
- [ ] [Technology change]: Revisit if [condition]
- [ ] [Team change]: Revisit if [condition]
- [ ] [Time-based]: Review by [date]
Handoff
- Hand off to documentation-plan if the ADR reveals gaps in project documentation strategy or onboarding materials.
- Hand off to changelog-design if the decision introduces breaking changes that require consumer communication and migration guides.
Quality Checks
Evolution Notes
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: adr-template3description: Use when recording significant architectural or design decisions that affect the system. Covers decision framing, context documentation, options analysis with tradeoff evaluation, consequence mapping, and review trigger definition. Do not use for documentation strategy planning (use documentation-plan) or release changelog creation (use changelog-design).4---56# ADR Template78## Purpose910Create Architecture Decision Records that capture the context, options considered, decision rationale, and consequences of significant technical choices. Produces structured ADR documents that serve as the institutional memory of the project.1112## Scope Constraints1314Reads existing ADRs, system context, and stakeholder input to produce a structured decision record. Does not implement the chosen option or modify system architecture.1516## Inputs1718- The architectural question or decision being made19- Current system context and constraints20- Stakeholder concerns and priorities21- Related previous decisions (existing ADRs)2223## Input Sanitization2425No user-provided values are used in commands or file paths. All inputs are treated as read-only analysis targets.2627## Procedure2829### Progress Checklist30- [ ] Step 1: Identify the decision to record31- [ ] Step 2: Describe context32- [ ] Step 3: Enumerate options considered33- [ ] Step 4: Evaluate each option34- [ ] Step 5: Document the decision35- [ ] Step 6: Specify consequences36- [ ] Step 7: Define review triggers3738### Step 1: Identify the Decision to Record3940Clearly frame the architectural question:41- What specific question was (or needs to be) resolved?42- Why is this decision significant enough to record? (Costly to change, cross-cutting impact, team disagreement)43- What is the scope of this decision? (Single service, full system, team process)44- Assign a sequential ADR number and descriptive title4546### Step 2: Describe Context4748Document the forces at play:49- What is the current state of the system relevant to this decision?50- What constraints exist? (Technical: language, framework, infrastructure. Business: timeline, budget, team size)51- What requirements drive this decision? (Functional, non-functional, compliance)52- What assumptions are being made?53- Reference related ADRs that provide context or are affected by this decision5455### Step 3: Enumerate Options Considered5657List at least 2-3 alternatives, including "do nothing":58- **Option A: [Name]** — Brief description of the approach59- **Option B: [Name]** — Brief description of the approach60- **Option C: Do nothing / Status quo** — What happens if no change is made61- For each option, provide enough detail for a reader to understand the approach without external context6263### Step 4: Evaluate Each Option6465Analyze tradeoffs systematically:66- **Pros**: What does this option do well? Alignment with principles, simplicity, performance67- **Cons**: What are the downsides? Complexity, risk, learning curve, migration effort68- **Risks**: What could go wrong? Scaling issues, vendor lock-in, maintenance burden69- **Effort**: Rough implementation effort (T-shirt size: S/M/L/XL)70- **Alignment**: How well does this option align with architectural principles and team capabilities?7172### Step 5: Document the Decision7374State the chosen option and core rationale:75- Which option was selected?76- What was the primary reason for choosing it? (Not "it's the best" — the specific tradeoff that tipped the balance)77- Was this decision unanimous or contentious? Note dissenting opinions if applicable78- What conditions would make this the wrong decision? (Helps future readers know when to revisit)7980### Step 6: Specify Consequences8182Detail what follows from this decision:83- **What becomes easier**: Capabilities enabled, patterns simplified, workflows improved84- **What becomes harder**: Constraints introduced, options foreclosed, complexity added85- **New constraints**: What must all future development respect because of this decision?86- **Technical debt accepted**: What shortcuts or imperfections are knowingly accepted?87- **Follow-up work**: What tasks, migrations, or changes are needed to implement this decision?8889### Step 7: Define Review Triggers9091Specify when this decision should be revisited:92- **Scale thresholds**: "Revisit if traffic exceeds X or data grows beyond Y"93- **Technology changes**: "Revisit if [framework/service] releases [capability]"94- **Team changes**: "Revisit if team grows beyond N engineers or splits into multiple teams"95- **Time-based**: "Review after 12 months regardless of other triggers"96- **Pain indicators**: "Revisit if [specific friction point] becomes a recurring issue"9798> **Compaction resilience**: If context was lost during a long session, re-read the Inputs section to reconstruct what system is being analyzed, check the Progress Checklist for completed steps, then resume from the earliest incomplete step.99100## Output Format101102```markdown103# ADR-[NNN]: [Descriptive Title]104105**Status**: [Proposed | Accepted | Deprecated | Superseded by ADR-NNN]106**Date**: [YYYY-MM-DD]107**Deciders**: [Who was involved in the decision]108109## Context110111[What is the situation? What forces are at play? What constraints exist?]112113[Reference related ADRs: ADR-NNN, ADR-NNN]114115## Decision116117We will [chosen approach].118119[Core rationale — the specific tradeoff that decided it.]120121## Consequences122123### What becomes easier124- [Consequence 1]125- [Consequence 2]126127### What becomes harder128- [Consequence 1]129- [Consequence 2]130131### Technical debt accepted132- [Debt item and why it's acceptable for now]133134## Alternatives Considered135136### Option A: [Name]137[Description]138- **Pros**: [list]139- **Cons**: [list]140- **Why not**: [specific reason this was rejected]141142### Option B: [Name]143[Description]144- **Pros**: [list]145- **Cons**: [list]146- **Why not**: [specific reason this was rejected]147148### Option C: Do Nothing149[What happens if we don't act]150- **Pros**: No effort, no risk of change151- **Cons**: [specific problems that persist or worsen]152- **Why not**: [why inaction is unacceptable]153154## Review Triggers155156- [ ] [Scale threshold]: Revisit if [condition]157- [ ] [Technology change]: Revisit if [condition]158- [ ] [Team change]: Revisit if [condition]159- [ ] [Time-based]: Review by [date]160```161162## Handoff163164- Hand off to documentation-plan if the ADR reveals gaps in project documentation strategy or onboarding materials.165- Hand off to changelog-design if the decision introduces breaking changes that require consumer communication and migration guides.166167## Quality Checks168169- [ ] Decision is framed as a clear architectural question with defined scope170- [ ] Context captures constraints, assumptions, and related decisions171- [ ] At least 3 options are evaluated including "do nothing"172- [ ] Each option has pros, cons, risks, and effort assessed173- [ ] Decision rationale explains the specific tradeoff, not just "it's better"174- [ ] Consequences cover both what becomes easier and harder175- [ ] Review triggers define concrete conditions for revisiting the decision176- [ ] ADR is self-contained — a reader can understand it without external context177178## Evolution Notes179<!-- Observations appended after each use -->180181---182> Converted and distributed by [TomeVault](https://tomevault.io/claim/dtsong) — claim your Tome and manage your conversions.183<!-- tomevault:4.0:skill_md:2026-04-13 -->