Manage Architecture Decision Records (ADRs). ADRs are immutable historical records documenting WHY architectural decisions were made.
Create and manage Architecture Decision Records (ADRs) to document WHY architectural choices were made. Use this when you need to record decisions, accept/reject proposals, or synthesize a current ARCHITECTURE.md from accepted ADRs.
/plugin marketplace add jwilger/claude-code-setup/plugin install sdlc@jwilger-claude-pluginsManage Architecture Decision Records (ADRs). ADRs are immutable historical records documenting WHY architectural decisions were made.
ADRs focus on WHY decisions were made. ARCHITECTURE.md shows WHAT the current architecture is.
$ARGUMENTS may contain:
decide <topic> - Create new ADR for a decisionaccept <number> - Accept a proposed ADRreject <number> - Reject a proposed ADRsupersede <number> - Supersede an ADR with a new decisionsynthesize - Update ARCHITECTURE.md from accepted ADRslist - List all ADRsmkdir -p docs/adr
mcp__memento__semantic_search: "architecture decisions [project-name]"
Load any existing architectural context.
decide <topic> - Create New ADRGet the next ADR number:
ls docs/adr/*.md 2>/dev/null | wc -l
Use the sdlc-adr agent:
Task tool with subagent_type="sdlc-adr":
Create an Architecture Decision Record for: <topic>
Guide the user through:
1. What is the context/problem?
2. What options were considered?
3. What decision was made and WHY?
4. What are the consequences (positive and negative)?
Create docs/adr/<number>-<slug>.md with:
- Status: proposed
- Date: today
- Context
- Decision
- Consequences
Focus on WHY, not HOW. The implementation details go elsewhere.
ADR Template:
# ADR-<number>: <Title>
**Status**: proposed | accepted | rejected | superseded by ADR-X
**Date**: YYYY-MM-DD
## Context
What is the issue that we're seeing that motivates this decision?
## Decision
What is the change that we're proposing and/or doing?
## Consequences
What becomes easier or more difficult because of this decision?
### Positive
- ...
### Negative
- ...
### Neutral
- ...
accept <number> - Accept ADRUpdate the ADR status:
Status: proposed → accepted
Then trigger architecture synthesis:
After accepting, run synthesize to update ARCHITECTURE.md.
reject <number> - Reject ADRUpdate the ADR status:
Status: proposed → rejected
Add rejection reason if provided.
supersede <number> - Supersede ADRStatus: superseded by ADR-<new-number>Supersedes: ADR-<old-number>synthesize - Update ARCHITECTURE.mdRead all accepted ADRs and synthesize into a standalone architecture document:
Task tool with subagent_type="sdlc-adr":
Synthesize ARCHITECTURE.md from accepted ADRs in docs/adr/
The ARCHITECTURE.md must:
1. Be STANDALONE - never reference ADRs by number
2. Describe the CURRENT architecture
3. Focus on WHAT, not historical WHY
4. Be readable without knowing ADR history
Structure:
- Overview
- Key Components
- Design Principles
- Patterns Used
- Constraints and Trade-offs
Write to docs/ARCHITECTURE.md
list - List All ADRsls -1 docs/adr/*.md 2>/dev/null
Display:
Architecture Decision Records:
ADR-001: Use PostgreSQL for persistence [accepted]
ADR-002: Event sourcing for core domain [accepted]
ADR-003: GraphQL API [proposed]
ADR-004: Microservices vs monolith [rejected]
Total: 4 ADRs (2 accepted, 1 proposed, 1 rejected)
After creating/updating ADRs:
mcp__memento__create_entities:
name: "ADR-<number>: <title> [date]"
entityType: "architecture_decision"
observations:
- "Project: <name> | Scope: PROJECT_SPECIFIC"
- "Status: <status>"
- "Decision: <brief summary>"
- "Key consequence: <main tradeoff>"
After ADR creation:
ADR created: docs/adr/003-graphql-api.md
Status: proposed
To accept this ADR:
/sdlc:adr accept 3
To update architecture docs after accepting:
/sdlc:adr synthesize
proposed → accepted → implemented
↓ ↓
rejected superseded
ADRs are immutable once accepted. To change a decision, create a new ADR that supersedes the old one.
/adrGénère un Architecture Decision Record (ADR) formaté et structuré
/adrManage Architecture Decision Records (ADRs). ADRs are immutable historical records documenting WHY architectural decisions were made.