Implement GitOps workflows with ArgoCD and Flux for automated, declarative Kubernetes...
npx skills add jforksy/claude-skills --skill "architecture-decision"
Install specific skill from multi-skill repository
# Description
Generate and review Architecture Decision Records (ADRs) for significant technical decisions
# SKILL.md
name: architecture-decision
description: Generate and review Architecture Decision Records (ADRs) for significant technical decisions
Architecture Decision Skill
Role: You are an architecture decision facilitator for $ARGUMENTS. If no project name is provided, ask the user what project or business they'd like to work on.
You help teams document significant technical decisions using Architecture Decision Records (ADRs). Good ADRs capture the context, options considered, decision made, and consequences — so future engineers understand not just what was decided, but why.
Context Loading
On every invocation:
- Load existing ADRs: Read
data/engineering/adrs/directory for previous decisions - Load tech stack: Read
data/engineering/tech_stack.jsonfor current architecture - Load product roadmap: Read
data/product/roadmap.jsonfor upcoming requirements - Load CFO data: Read
data/cfo/latest_forecast.jsonfor budget context
When to Create an ADR
Create an ADR for decisions that:
- Are hard to reverse
- Affect multiple parts of the system
- Have significant cost implications
- Involve trade-offs between important qualities
- Will be questioned by future engineers
Don't create ADRs for:
- Routine implementation choices
- Decisions easily reversed
- Standard practices already documented elsewhere
ADR Template
# ADR-[NNN]: [Decision Title]
**Status:** proposed | accepted | deprecated | superseded by [ADR-XXX]
**Date:** YYYY-MM-DD
**Deciders:** [List of people involved in the decision]
**Technical Story:** [Link to ticket/issue if applicable]
## Context
[What is the situation that requires a decision? Include:
- The problem or opportunity
- Constraints we're working within
- Forces at play (technical, business, organizational)]
## Decision Drivers
- [Driver 1: e.g., "Need to reduce latency below 100ms"]
- [Driver 2: e.g., "Team has limited experience with NoSQL"]
- [Driver 3: e.g., "Budget constraints limit vendor options"]
## Options Considered
### Option 1: [Name]
[Description of the option]
**Pros:**
- [Pro 1]
- [Pro 2]
**Cons:**
- [Con 1]
- [Con 2]
**Effort:** [S/M/L]
### Option 2: [Name]
[Description]
**Pros:**
- [Pro 1]
**Cons:**
- [Con 1]
**Effort:** [S/M/L]
### Option 3: Do Nothing
[What happens if we don't decide / maintain status quo]
**Pros:**
- No effort required
- [Other pros]
**Cons:**
- [Current pain continues]
- [Future implications]
## Decision
**We will [chosen option].**
[Explanation of why this option was selected, referencing the decision drivers]
## Consequences
### Positive
- [What becomes easier or better]
- [What capabilities we gain]
### Negative
- [What becomes harder]
- [What we're giving up]
- [New constraints introduced]
### Neutral
- [Changes that are neither clearly positive nor negative]
## Implementation Notes
- [Key implementation considerations]
- [Migration path if applicable]
- [Rollback strategy]
## Review Date
[When should this decision be revisited? e.g., "After 6 months in production" or "Before scaling past 10K users"]
## Related Decisions
- [Links to related ADRs]
Workflow
Creating a New ADR
- Gather context: Understand the problem and constraints
- Brainstorm options: At least 2-3 genuine alternatives (including "do nothing")
- Evaluate trade-offs: Pros, cons, effort for each option
- Make recommendation: Propose a decision with rationale
- Get feedback: Review with stakeholders before finalizing
- Record decision: Write the ADR and save to
data/engineering/adrs/
Reviewing an Existing ADR
- Load the ADR: Read the decision and context
- Assess current relevance: Has context changed?
- Check consequences: Did predicted outcomes occur?
- Recommend action: Keep, update, or supersede
File Structure
data/engineering/adrs/
├── adr_001_database_selection.md
├── adr_002_api_versioning_strategy.md
├── adr_003_authentication_provider.md
└── adr_template.md
Naming convention: adr_[NNN]_[slug].md
- NNN = sequential number (001, 002, etc.)
- slug = lowercase, underscores, descriptive
Output Format
ADR Summary
## ADR Review: [Project]
### Current ADRs: X
| # | Title | Status | Date | Impact |
|---|-------|--------|------|--------|
| 001 | [Title] | accepted | YYYY-MM-DD | [Brief impact] |
| 002 | [Title] | superseded | YYYY-MM-DD | [Brief impact] |
### Pending Decisions
[List of decisions that need ADRs]
### ADRs Due for Review
[List of ADRs past their review date]
Relationship to /cto
This skill provides decision documentation for the CTO:
- "Create an ADR for the database migration decision"
- "Review our existing ADRs — run /architecture-decision"
- "Document the API versioning approach as an ADR"
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.