architecture-decisions
Make and document architecture decisions using structured frameworks
Best use case
architecture-decisions is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Make and document architecture decisions using structured frameworks
Teams using architecture-decisions should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/architecture-decisions/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How architecture-decisions Compares
| Feature / Agent | architecture-decisions | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Make and document architecture decisions using structured frameworks
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Architecture Decisions Skill
## Purpose
Enable structured architecture decision-making through quality attribute analysis, trade-off evaluation, and technology selection using industry-standard frameworks.
---
## Parameters
| Parameter | Type | Required | Validation | Default |
|-----------|------|----------|------------|---------|
| `decision_context` | string | ✅ | min: 30 chars | - |
| `decision_type` | enum | ⚪ | technology\|pattern\|tradeoff | `tradeoff` |
| `quality_priorities` | array | ⚪ | max: 5 items | `["performance", "maintainability"]` |
| `constraints` | object | ⚪ | valid JSON | `{}` |
| `options` | array | ⚪ | min: 2 items | - |
---
## Execution Flow
```
┌──────────────────────────────────────────────────────────┐
│ 1. VALIDATE: Check input parameters │
│ 2. CONTEXTUALIZE: Understand problem domain │
│ 3. IDENTIFY: List quality attributes and constraints │
│ 4. ANALYZE: Evaluate options against criteria │
│ 5. SCORE: Create decision matrix │
│ 6. RECOMMEND: Provide primary + alternatives │
│ 7. DOCUMENT: Generate ADR content │
└──────────────────────────────────────────────────────────┘
```
---
## Retry Logic
| Error | Retry | Backoff | Max Attempts |
|-------|-------|---------|--------------|
| `VALIDATION_ERROR` | No | - | 1 |
| `CONTEXT_UNCLEAR` | Yes | 1s, 2s, 4s | 3 |
| `INSUFFICIENT_OPTIONS` | Yes | - | 2 |
---
## Logging & Observability
```yaml
log_points:
- event: skill_invoked
level: info
data: [decision_type, quality_priorities]
- event: analysis_complete
level: info
data: [options_count, top_recommendation]
- event: error_occurred
level: error
data: [error_type, context]
metrics:
- name: decision_time_ms
type: histogram
- name: options_evaluated
type: counter
- name: confidence_score
type: gauge
```
---
## Error Handling
| Error Code | Description | Recovery |
|------------|-------------|----------|
| `E001` | Missing decision context | Request clarification |
| `E002` | Conflicting quality attributes | Prioritization dialog |
| `E003` | Insufficient options to compare | Request more alternatives |
| `E004` | Unknown technology domain | Defer to research |
---
## Unit Test Template
```yaml
test_cases:
- name: "Database selection decision"
input:
decision_context: "E-commerce order management system"
decision_type: "technology"
quality_priorities: ["reliability", "performance"]
options: ["PostgreSQL", "MongoDB"]
expected:
has_recommendation: true
has_rationale: true
confidence_gte: 0.7
- name: "Missing context error"
input:
decision_context: ""
expected:
error_code: "E001"
- name: "Microservices vs Monolith"
input:
decision_context: "Startup MVP with 4 developers"
decision_type: "pattern"
quality_priorities: ["deployability", "maintainability"]
expected:
has_trade_offs: true
alternatives_count_gte: 1
```
---
## Troubleshooting
### Common Issues
| Symptom | Root Cause | Resolution |
|---------|------------|------------|
| Vague recommendation | Context too broad | Narrow scope, add constraints |
| Analysis paralysis | Too many options | Limit to top 3-4 viable options |
| Low confidence score | Missing information | Request specific metrics/requirements |
### Debug Checklist
```
□ Is problem domain clearly defined?
□ Are quality attributes prioritized?
□ Are all options technically viable?
□ Are constraints explicitly stated?
□ Is success criteria measurable?
```
---
## Examples
### Example: Technology Selection
```yaml
Input:
decision_context: "Real-time inventory system for retail"
decision_type: "technology"
quality_priorities: ["performance", "scalability"]
options: ["Redis", "PostgreSQL", "MongoDB"]
Output:
recommendation: "Redis for hot data + PostgreSQL for persistence"
confidence: 0.85
trade_offs:
- "Redis: Fast but requires cache invalidation strategy"
- "PostgreSQL: ACID compliant but higher latency"
adr_content: |
# ADR: Hybrid Redis + PostgreSQL for Inventory
## Decision: Use Redis for real-time inventory counts, PostgreSQL for order data
## Rationale: Balances performance needs with data durability
```
---
## Integration
| Component | Trigger | Data Flow |
|-----------|---------|-----------|
| Agent 01 | Decision request | Receives context, returns recommendation |
| Agent 02 | ADR creation | Provides decision content for documentation |
---
## Quality Standards
- **Atomic:** Single decision per invocation
- **Traceable:** All decisions link to rationale
- **Reversible:** Document rollback strategy when applicable
---
## Version History
| Version | Date | Changes |
|---------|------|---------|
| 2.0.0 | 2025-01 | Production-grade: parameters, retry logic, tests |
| 1.0.0 | 2024-12 | Initial release |Related Skills
architecture
Comprehensive system architecture design and implementation workflow that orchestrates expert analysis, technical decision-making, and architectural pattern selection using the integrated toolset. Handles everything from initial system analysis to implementation-ready technical specifications.
architecture-workshop
Framework for designing new architectural mechanisms when existing patterns don't fit
architecture-validator
Validate hexagonal architecture (Domain, Application, Infrastructure, Presentation). Use when creating new files in src/, reorganizing code, or when the user requests architecture validation.
architecture-validation
Dynamically validate codebase compliance with architectural decisions and constraints
architecture-to-json
Guide for extracting architectural diagrams, flowcharts, and sequence diagrams into a structured JSON format. Use this skill when you need to transform a visual or textual description of a system architecture or workflow into a clear, structured JSON representation.
architecture-tech-lead
This skill should be used when the user asks to 'review my architecture', 'improve testability', 'refactor for testing', 'reduce mocking in tests', 'too many mocks', 'extract pure functions', 'functional core imperative shell', 'design a feature', 'evaluate approaches', 'make code more testable', 'domain modeling', 'DDD design', 'bounded contexts', 'too much coupling', or needs architectural validation for Java/Spring Boot or TypeScript/Next.js codebases. Use for design decisions, not implementation.
architecture-synthesis
Generate a reference architecture specification from analyzed frameworks. Use when (1) designing a new agent framework based on prior art, (2) defining core primitives (Message, State, Tool types), (3) specifying interface protocols, (4) creating execution loop pseudocode, or (5) producing architecture diagrams and implementation roadmaps.
architecture-strategist
Use this agent when analyzing code changes from an architectural perspective, evaluating system design decisions, or ensuring changes align with established architectural patterns. Triggers on requests like "architecture review", "design evaluation", "system architecture analysis".
architecture-status
Reports on the health and state of architecture documentation (counts of ADRs, reviews, activity levels, documentation gaps). Use when the user asks "What's our architecture status?", "Show architecture documentation", "How many ADRs do we have?", "What decisions are documented?", "Architecture health check", or wants an overview/summary of documentation state. Do NOT use for listing team members (use list-members), creating new documents (use create-adr), or conducting reviews (use architecture-review or specialist-review).
architecture-spec
Generates technical architecture specification from PRD. Covers architecture pattern, tech stack, data models, and app structure. Use when creating ARCHITECTURE.md or designing system architecture.
architecture-selection
System architecture patterns including monolith, microservices, event-driven, and serverless, with C4 modeling, scalability strategies, and technology selection criteria. Use when designing system architectures, evaluating patterns, or planning scalability.
architecture-reviewer
Review software architecture for SOLID principles, design patterns, scalability, and maintainability. Use when evaluating system design or planning refactoring.