create-adr
SKILL.md
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)
Weekly Installs
1
Repository
melodic-softwar…-pluginsGitHub Stars
38
First Seen
10 days ago
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1