When this skill is invoked:
Determine the next ADR number by scanning docs/architecture/ for existing ADRs.
Gather context by reading related code and existing ADRs.
Guide the user through the decision by asking clarifying questions if the title alone is not sufficient.
Generate the ADR following this format:
ADR-[NNNN]: [Title]
Status
[Proposed | Accepted | Deprecated | Superseded by ADR-XXXX]
Date
[Date of decision]
Context
Problem Statement
[What problem are we solving? Why does this decision need to be made now?]
Constraints
- [Technical constraints]
- [Timeline constraints]
- [Resource constraints]
- [Compatibility requirements]
Requirements
- [Must support X]
- [Must perform within Y budget]
- [Must integrate with Z]
Decision
[The specific technical decision made, described in enough detail for someone to implement it.]
Architecture Diagram
[ASCII diagram or description of the system architecture this creates]
Key Interfaces
[API contracts or interface definitions this decision creates]
Alternatives Considered
Alternative 1: [Name]
- Description: [How this would work]
- Pros: [Advantages]
- Cons: [Disadvantages]
- Rejection Reason: [Why this was not chosen]
Alternative 2: [Name]
- Description: [How this would work]
- Pros: [Advantages]
- Cons: [Disadvantages]
- Rejection Reason: [Why this was not chosen]
Consequences
Positive
- [Good outcomes of this decision]
Negative
- [Trade-offs and costs accepted]
Risks
- [Things that could go wrong]
- [Mitigation for each risk]
Performance Implications
- CPU: [Expected impact]
- Memory: [Expected impact]
- Load Time: [Expected impact]
- Network: [Expected impact, if applicable]
Migration Plan
[If this changes existing code, how do we get from here to there?]
Validation Criteria
[How will we know this decision was correct? What metrics or tests?]
Related Decisions
-
[Links to related ADRs]
-
[Links to related design documents]
-
Save the ADR to docs/architecture/adr-[NNNN]-[slug].md .