MADR Template Engine — ADR Standard Format Tool
A specialized skill that enhances the ADR documentation capabilities of the adr-author and impact-tracker agents.
Target Agents
- adr-author — MADR format ADR document writing
- impact-tracker — Inter-ADR dependency tracking, status management
MADR Standard Template
# ADR-{NNN}: {Decision Title}
## Status
{Proposed | Accepted | Deprecated | Superseded by ADR-XXX}
## Date
{YYYY-MM-DD}
## Context
{Background, problem situation, and constraints that led to this decision}
## Decision Drivers
* {Driver 1: e.g., Response time must be under 200ms}
* {Driver 2: e.g., Learning curve for a team of 5}
* {Driver 3: e.g., Monthly budget constraint of $X}
## Considered Alternatives
### Alternative 1: {Name}
{Description}
* Pro: {Benefit, because ...}
* Pro: {Benefit, because ...}
* Con: {Drawback, because ...}
### Alternative 2: {Name}
{Description}
* Pro: {Benefit, because ...}
* Con: {Drawback, because ...}
* Con: {Drawback, because ...}
### Alternative 3: {Name}
{Description — compare at least 3 alternatives}
## Decision
We choose Alternative {N}: {Name}.
### Selection Rationale
{Specific reasons for choosing this alternative}
### Rejection Rationale
* Alternative {X} was rejected because: {Reason}
* Alternative {Y} was rejected because: {Reason}
## Consequences
### Positive Impact
* {Expected positive outcome}
### Negative Impact
* {Tradeoff that must be accepted}
### Follow-up Actions
* [ ] {Required follow-up task 1}
* [ ] {Required follow-up task 2}
## Related ADRs
* ADR-{XXX}: {Related decision}
* ADR-{YYY}: {Decision affected by this one}
ADR Status Management
Status Transition Diagram
[Proposed] -> [Accepted] -> [Deprecated]
|
[Superseded by ADR-XXX]
| Status |
Meaning |
Condition |
| Proposed |
Under review |
Immediately after writing |
| Accepted |
Adopted |
Stakeholder consensus |
| Deprecated |
No longer valid |
Premises changed |
| Superseded |
Replaced by new ADR |
Alternative re-evaluation |
ADR Numbering System
Numbering Rules
ADR-{Sequence}: {Category Code}-{Decision Title}
Category Codes:
ARCH - Architecture patterns
DATA - Data storage/processing
INFRA - Infrastructure/deployment
SEC - Security
API - API design
UI - Frontend
PROC - Process/methodology
ADR Directory Structure
docs/adr/
├── 0001-arch-monolith-vs-microservice.md
├── 0002-data-postgresql-selection.md
├── 0003-infra-kubernetes-adoption.md
├── 0004-api-rest-vs-graphql.md
├── index.md <- ADR list and status dashboard
└── template.md
ADR Writing Quality Checklist
Required Elements
Common Mistakes
| Mistake |
Improvement |
| Decision stated without context |
Write "why was this decision needed" first |
| Only one alternative described |
Always document rejected alternatives too |
| Only pros listed |
Honestly record cons and tradeoffs |
| Too long or too short |
1-3 pages recommended |
| Never updated |
Always update when status transitions occur |
ADR Dependency Graph (for impact-tracker)
### ADR Dependency Map
ADR-001 (Microservices)
├── ADR-002 (Inter-service communication: gRPC)
├── ADR-003 (Service discovery: Consul)
├── ADR-004 (Distributed tracing: Jaeger)
└── ADR-005 (API Gateway: Kong)
└── ADR-006 (Authentication: OAuth2 + JWT)
Impact Analysis:
If ADR-001 is Deprecated -> ADR-002 through ADR-006 all require re-review