create-adr
Create Architecture Decision Record
Create a new ADR documenting a significant technical decision.
Process
1. Parse Arguments
Extract from user input:
- Title: Decision topic (required) - e.g., "Use PostgreSQL for primary database"
- Status:
proposed,accepted,deprecated,superseded(default:proposed) - Template:
basic(Nygard),madr, orextended(default:madr)
2. Determine ADR Number
-
Find existing ADRs in the project:
Look in: docs/decisions/, docs/adr/ Pattern: ADR-*.md, [0-9][0-9][0-9][0-9]-*.md -
Calculate next number:
- If no ADRs exist, start at 001
- Otherwise, increment highest existing number
3. Gather Context
If context is not provided, prompt for or infer:
- Problem Statement: What issue motivated this decision?
- Constraints: What limitations affect the decision?
- Options Considered: What alternatives exist?
- Decision Drivers: What factors are most important?
4. Load Skill and Generate
- Load the
enterprise-architecture:adr-managementskill for templates and guidance - Select template based on
templateargument - Generate ADR content with:
- Proper frontmatter/header
- All required sections
- Placeholder guidance for sections needing human input
5. Create File
Determine file location based on project conventions:
Priority order:
1. docs/decisions/ADR-{number}-{slug}.md (if docs/decisions/ exists)
2. docs/adr/ADR-{number}-{slug}.md (if docs/adr/ exists)
4. docs/decisions/ADR-{number}-{slug}.md (create directory)
Slug format: lowercase, hyphens, from title
Example: "Use PostgreSQL" → ADR-001-use-postgresql.md
6. Update Index
If an ADR index/registry exists, add entry:
- Add to ADR-INDEX.md or README.md in decisions folder
- Include: number, title, status, date
Output Content
Basic Template (Nygard)
# ADR-{NUMBER}: {TITLE}
## Status
{STATUS}
## Context
[What is the issue that we're seeing that is motivating this decision?]
## Decision
[What is the change that we're proposing and/or doing?]
## Consequences
[What becomes easier or more difficult to do because of this change?]
MADR Template
# ADR-{NUMBER}: {TITLE}
## Status
{STATUS}
Date: {YYYY-MM-DD}
## Context and Problem Statement
[Describe the context and problem statement]
## Decision Drivers
* [Driver 1]
* [Driver 2]
## Considered Options
1. [Option 1]
2. [Option 2]
3. [Option 3]
## Decision Outcome
**Chosen option:** "[Option X]", because [justification].
### Consequences
**Good:**
* [Positive consequence]
**Bad:**
* [Negative consequence]
## Pros and Cons of Options
### [Option 1]
* Good, because [argument]
* Bad, because [argument]
### [Option 2]
* Good, because [argument]
* Bad, because [argument]
Extended Template
Include additional sections:
- Executive Summary
- Constraints and Assumptions
- Trade-offs table
- Implementation action items
- Validation criteria
- Related decisions
- References
Example Invocations
/create-adr "Use PostgreSQL for primary database"
→ Creates ADR-XXX-use-postgresql.md with MADR template, status=proposed
/create-adr "Switch to event sourcing" status=accepted template=extended
→ Creates ADR-XXX-switch-to-event-sourcing.md with extended template
/create-adr "Deprecate REST API v1" status=deprecated
→ Creates ADR-XXX-deprecate-rest-api-v1.md marking v1 as deprecated
Post-Creation Guidance
After creating the ADR, remind user to:
- Fill in placeholders marked with
[brackets] - Add specific options with pros/cons
- Document the actual decision once made
- Link related ADRs if applicable
- Update status when decision is finalized
- Get review from stakeholders
Quality Criteria
Generated ADR must:
- Have unique, sequential number
- Follow project's ADR location conventions
- Include all required sections for template type
- Have clear placeholder guidance
- Be linked from ADR index (if exists)
- Use consistent date format (ISO 8601)
More from melodic-software/claude-code-plugins
design-thinking
Design Thinking methodology for human-centered innovation. Covers the 5-phase IDEO/Stanford d.school approach (Empathize, Define, Ideate, Prototype, Test) with workshop facilitation and exercise templates.
191plantuml-syntax
Authoritative reference for PlantUML diagram syntax. Provides UML and non-UML diagram types, syntax patterns, examples, and setup guidance for generating accurate PlantUML diagrams.
161system-prompt-engineering
Design effective system prompts for custom agents. Use when creating agent system prompts, defining agent identity and rules, or designing high-impact prompts that shape agent behavior.
141architecture-documentation
Generate architecture documents using templates with diagram integration. Use for creating C4 diagrams, viewpoint documents, and technical overviews.
126data-modeling
Data modeling with Entity-Relationship Diagrams (ERDs), data dictionaries, and conceptual/logical/physical models. Documents data structures, relationships, and attributes.
101resume-optimization
Resume structure, achievement bullet formulas, ATS optimization, and job-targeted tailoring for software engineers. Use when reviewing resumes, crafting achievement bullets, extracting keywords from job descriptions, or tailoring content for specific roles.
93