Agent skill
adr
Create, review, and manage Architecture Decision Records (ADRs) with auto-numbering, template detection, quality review, and index maintenance. Use when user mentions "ADR", "architecture decision", "document this decision", "create ADR", "review ADR", editing ADR files (docs/adr/, doc/adr/, .adr/), or discussing architectural choices and tradeoffs.
Install this agent skill to your Project
npx add-skill https://github.com/joaquimscosta/arkhe-claude-plugins/tree/main/plugins/doc/skills/adr
SKILL.md
ADR Manager
Create and manage Architecture Decision Records following project conventions with automatic numbering and index maintenance.
Argument Parsing
When invoked explicitly with /adr <action>, parse the first word:
| First word | Remaining args | Operation |
|---|---|---|
create |
<title> |
Create a new ADR with the given title |
review |
<path> |
Lightweight quality review of an ADR |
status |
<number> <status> |
Transition ADR status with validation and side effects |
list |
(none) | List all ADRs (same as running adr_index.py --dry-run) |
supersede |
<old-number> <new-number> |
Supersede an old ADR with a new one |
index |
(none) | Regenerate the README.md index |
| (empty) | Auto-detect from conversation context |
If the first word doesn't match an action, treat the entire $ARGUMENTS as a title and default to create.
When auto-invoked (no explicit /adr command), detect the operation from conversation context as before.
Auto-Invoke Triggers
This skill automatically activates when:
- Keywords: "ADR", "architecture decision", "document this decision", "record the decision"
- Editing ADR files: Files in
docs/adr/,doc/adr/,architecture/decisions/,.adr/ - Discussing architectural choices: Framework selection, technology decisions, pattern choices
What This Skill Delivers
1. ADR Creation (Enhanced)
- Gather context from conversation, codebase, and existing ADRs
- Confirm decision topic with user before drafting
- Auto-detect project's ADR directory and template style
- Auto-number ADRs (scan existing, increment)
- Draft populated ADR with real content (not blank template)
- Always append Author's Notes section (2-5 items)
- Offer MADR 4.0 enhancements as optional additions
- Suggest
/adr review <path>after creation
2. Directory Discovery
Search order for ADR directories:
docs/adr/doc/adr/architecture/decisions/.adr/- Create
docs/adr/if none exists
3. Template Detection
Analyze existing ADRs to detect:
- Naming convention:
NNNN-kebab-case-title.mdorNNN-title.md - Section structure: Status, Context, Decision, Consequences
- Optional sections: Decision Drivers, Pros/Cons, Confirmation
4. Index Maintenance
Automatically update README.md with ADR table:
| Number | Title | Status | Date |
|---|
5. Supersession Workflow
When replacing an ADR:
- Mark old ADR status as "Superseded by [ADR-NNNN]"
- Link new ADR with "Supersedes [ADR-NNNN]"
- Update README.md index
6. ADR Review
Lightweight quality check using the adr-critic agent:
- Read ADR at given path (if empty, ask — suggest globbing ADR dirs)
- Spawn adr-critic agent (
subagent_type: "doc:adr-critic")- Pass: full ADR content
- Instruct: "Read Author's Notes first as prioritized review targets"
- Agent evaluates 4 dimensions, returns score + verdict + 3-5 findings
- Present review to user
- Verdicts: Approve | Needs improvement | Needs rethink
- Suggest next steps based on verdict
7. Author's Notes (Confession)
Every ADR gets an ## Author's Notes section after Consequences:
- Shortcuts: What was simplified or hand-waved?
- Assumptions: What was believed but not verified?
- Uncertainties: Which parts had least information?
Target: 2-5 items. Be specific, reference ADR sections.
Lifecycle: Added on create (always) | Read by adr-critic as review targets | Stripped when Status → Accepted (via /adr status) | Preserved on Superseded | Refreshed on major rewrites.
8. Status Transitions
Dedicated command for changing ADR status with validation and side effects:
- Find ADR by number, read current status
- Validate transition — warn on unusual paths (allow but confirm):
- Accepted → Proposed: "Going backwards — re-opening a decided matter"
- → Accepted without prior
/adr review: "Consider reviewing first" - → Superseded directly: "Use
/adr supersedeto link replacement"
- Apply status change, handle side effects:
- → Accepted: Strip
## Author's Notessection entirely
- → Accepted: Strip
- Update README.md index via
adr_index.py
Valid statuses: Proposed | Accepted | Deprecated | Superseded
Core Template Sections
Required (Minimal)
- Status: Proposed | Accepted | Deprecated | Superseded
- Date: ISO 8601 format (YYYY-MM-DD)
- Context and Problem Statement: 2-3 sentences describing the situation
- Decision: What was decided and why
- Consequences: Positive and negative impacts
- Author's Notes: Shortcuts, assumptions, uncertainties (stripped on Accepted)
Optional Enhancements (MADR 4.0)
- Technical Story: Link to issue/spec (e.g.,
#123) - Decision Drivers: Bulleted list of forces/concerns
- Decision Makers: Who made this decision
- Consulted: Stakeholders whose opinions were sought
- Informed: Stakeholders who need to know
- Considered Options: List of alternatives evaluated
- Pros and Cons: Detailed analysis per option
- Confirmation: How to validate the decision was implemented
Quick Start
Create New ADR
# Explicit subcommands:
/adr create Use PostgreSQL over MongoDB
/adr create Authentication approach for mobile apps
# Auto-invoke by saying:
"Document the decision to use PostgreSQL over MongoDB"
"Create an ADR for our authentication approach"
"I need to record why we chose React Query"
Review an ADR
# Explicit subcommand:
/adr review docs/adr/0005-use-postgresql-for-persistence.md
# Auto-invoke:
"Review ADR-0005 for decision quality"
"Check if our caching ADR has solid reasoning"
Supersede Existing ADR
# Explicit subcommand:
/adr supersede 5 12
# Auto-invoke:
"Supersede ADR-0005 with a new caching strategy"
"Replace our database decision ADR with the new approach"
Change Status
# Transition with validation and side effects:
/adr status 14 accepted
/adr status 7 deprecated
# Auto-strips Author's Notes when accepting
# Warns on unusual transitions (e.g., skipping review)
List and Index
/adr list
/adr index
Scripts
Located in ${CLAUDE_SKILL_DIR}/scripts/ directory, using uv for execution:
adr_create.py
uv run ${CLAUDE_SKILL_DIR}/scripts/adr_create.py --title "Use PostgreSQL for persistence"
uv run ${CLAUDE_SKILL_DIR}/scripts/adr_create.py --title "..." --template madr --create-dir
adr_index.py
uv run ${CLAUDE_SKILL_DIR}/scripts/adr_index.py --dir docs/adr
uv run ${CLAUDE_SKILL_DIR}/scripts/adr_index.py --dir docs/adr --dry-run
adr_supersede.py
uv run ${CLAUDE_SKILL_DIR}/scripts/adr_supersede.py --old 5 --new 12 --dir docs/adr
Output Examples
Proposed ADR (with Author's Notes)
# ADR-0012: Use PostgreSQL for Data Persistence
## Status
Proposed
## Date
2026-01-10
## Context and Problem Statement
We need a reliable database solution for our microservices architecture
that supports complex queries and ACID transactions.
## Decision
Chosen option: PostgreSQL, because it provides the best balance of
ACID compliance, query flexibility, and team familiarity.
## Consequences
**Positive:**
- Full ACID transaction support
- Mature ecosystem and tooling
**Negative:**
- Horizontal scaling requires more setup
## Author's Notes
- **Shortcut**: Did not benchmark PostgreSQL vs CockroachDB under our expected write load; relied on team experience instead
- **Assumption**: Assumed read replicas will handle 5x current read traffic based on similar projects, not our actual query patterns
- **Uncertainty**: License compatibility of pgvector extension with our Apache 2.0 project not verified
Accepted ADR (Author's Notes stripped)
# ADR-0012: Use PostgreSQL for Data Persistence
## Status
Accepted
## Date
2026-01-10
(same content, but ## Author's Notes section removed entirely)
Progressive Disclosure
- Level 2: WORKFLOW.md - Step-by-step methodology
- Level 3: EXAMPLES.md - Real-world ADR examples
- Level 4: TROUBLESHOOTING.md - Error handling
Related Resources
- MADR 4.0 Template: https://adr.github.io/madr/
- ADR GitHub Organization: https://github.com/adr
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
Skill Name
What this skill does. Use when user mentions "keyword1", "keyword2", or "keyword3". Keep under 1,024 characters and include specific trigger keywords.
plugin-release-checker
skill-validator
Validate skills against Anthropic best practices for frontmatter, structure, content, file organization, hooks, MCP, and security (62 rules in 8 categories). Use when creating new skills, updating existing skills, before publishing skills, reviewing skill quality, or when user mentions "validate skill", "check skill", "skill best practices", "skill review", or "lint skill".
sync-docs
Sync official Anthropic documentation and analyze impact on project components. Runs docs/reference/update-claude-docs.sh, computes diffs, and reports impacts on the skill validator, plugins, and project documentation. Use when user mentions "sync docs", "update reference docs", "refresh docs", or "check doc changes".
research-frontmatter
Enforce standard YAML frontmatter on research documents in docs/research/. Use when creating, editing, or promoting research files, when user mentions "research metadata", "research frontmatter", or "research staleness".
deep-research
Deep research on technical topics using EXA tools with intelligent two-tier caching. Use when user asks to research a topic, investigate best practices, look up information, find patterns, or explore architectures. Also invoked by /research command. Triggers: "research", "look up", "investigate", "deep dive", "find information about", "what are best practices for", "how do others implement".
Didn't find tool you were looking for?