Skip to main content
skill CX Codex

architecture-decision · jwynia — Claude Code skill: what it does

Evaluates architectural trade-offs, guides pattern selection, and structures decisions as ADRs. Useful when choosing tech stacks or tackling debt.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add jwynia/agent-skills --skill architecture-decision -a claude-code
Open on GitHub

What architecture-decision does

The skill guides technical decision-making using clear diagnostic criteria. It frames choices around a trade-off triangle between simplicity, flexibility, and performance. Context dictates the pattern. Small teams stick to vertical slices and shared databases, while multi-team setups shift toward service boundaries and explicit API contracts.

The skill provides structured templates for Architecture Decision Records (ADRs) with explicit sections for constraints, consequences, and rejected alternatives. It details three refactoring pathways: Branch by Abstraction, Strangler Fig, and Parallel Run. Technical debt is categorized into design, code, test, and documentation, recommending a debt ceiling where debt work stays under 20% of total work.

Writing implementation code is outside this skill's scope. Full end-to-end system design belongs in system-design, while constraint gathering requires requirements-analysis.

What it helps with

  • document decisions using the structured ADR template
  • build weighted decision matrices for technology choices
  • plan legacy migrations using the Strangler Fig pattern
  • categorize technical debt and set a target debt ratio

Example prompts for the agent

  • Compare PostgreSQL and Apache Kafka for our event stream and create an ADR.
  • Build a decision matrix to evaluate our switch to a modular architecture.
  • Categorize our current technical debt and suggest a refactoring strategy.

How to install architecture-decision

1Skills CLI (Vercel)

npx skills add jwynia/agent-skills --skill architecture-decision -a claude-code

2Manually: put the files in place

~/.claude/skills/architecture-decision/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/architecture-decision/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about architecture-decision

How do I install architecture-decision in Claude Code?

Run npx skills add jwynia/agent-skills --skill architecture-decision -a claude-code. The file will be placed into ~/.claude/skills/architecture-decision/SKILL.md.

What does the architecture-decision skill do?

It evaluates architectural trade-offs, builds weighted decision matrices, formats Architecture Decision Records (ADRs), and maps out refactoring patterns like Strangler Fig.

When should you avoid using this skill?

Do not use it for writing implementation code, gathering initial requirements, or building full end-to-end architectures. Those tasks belong in requirements-analysis and system-design.

Source text

SKILL.md · MIT
---
name: architecture-decision
description: "Systematically evaluate architecture decisions, document trade-offs, and select appropriate patterns. This skill should be used when the user asks about 'architecture decision', 'ADR', 'design pattern selection', 'technology choice', or needs to evaluate architectural trade-offs. Keywords: architecture, ADR, patterns, trade-offs, technical debt, quality attributes, decision record."
license: MIT
compatibility: Works with any project. Integrates with system-design for ADR templates.
metadata:
  author: jwynia
  version: "1.0"
  type: diagnostic
  mode: diagnostic+evaluative
  domain: agile-software
---

# Architecture Decision

Systematically evaluate architecture decisions, document trade-offs, and select appropriate patterns for context. Provides frameworks for pattern selection, ADR creation, and technical debt management.

## When to Use This Skill

Use this skill when:
- Making technology choices
- Evaluating architectural patterns
- Creating Architecture Decision Records
- Assessing technical debt
- Comparing design alternatives

Do NOT use this skill when:
- Writing implementation code
- Working on requirements (use requirements-analysis)
- Doing full system design (use system-design)

## Core Principle

**Context drives decisions.** No pattern is universally good or bad. The best architecture is not the most elegant—it's the one that best serves its purpose while remaining maintainable and evolvable.

## The Trade-off Triangle

Every architectural decision involves trade-offs:

| Vertex | Maximized By | Cost |
|--------|--------------|------|
| **Simplicity** | Monolith, sync communication, single DB | Scalability limits |
| **Flexibility** | Microservices, event-driven, plugins | Complexity overhead |
| **Performance** | Caching, denormalization, optimized code | Maintainability |

**Balance Strategies:**
- Start simple, add complexity as needed
- Measure before optimizing
- Use abstractions to defer decisions
- Evolve incrementally

## Quality Attributes

### Performance
- Metrics: Response time (p50, p95, p99), throughput, resource utilization
- Tactics: Caching, load balancing, async processing

### Scalability
- Dimensions: Horizontal, vertical, elastic
- Patterns: Stateless services, sharding, event streaming

### Reliability
- Metrics: Uptime, MTBF, MTTR
- Patterns: Circuit breakers, retries, redundancy

### Maintainability
- Factors: Readability, modularity, testability
- Patterns: Clean architecture, DDD, SOLID

## Context-Pattern Mapping

### Team Context

| Context | Preferred Patterns | Avoid |
|---------|-------------------|-------|
| **Small team** | Monolith, vertical slices, shared DB | Microservices, complex abstractions |
| **Multiple teams** | Service boundaries, API contracts | Shared state, tight coupling |

### Scale Context

| Context | Preferred Patterns | Reasoning |
|---------|-------------------|-----------|
| **Startup** | Monolith first, vertical scaling | Optimize for development speed |
| **Enterprise** | Service mesh, horizontal scaling | Optimize for operational scale |

## Decision Matrix Template

| Option | Consistency | Flexibility | Scalability | Complexity | Cost | Total |
|--------|-------------|-------------|-------------|------------|------|-------|
| Option A | 5 | 2 | 3 | 2 | 3 | 15 |
| Option B | 3 | 5 | 4 | 3 | 3 | 18 |
| Option C | 2 | 3 | 5 | 1 | 2 | 13 |

Weight factors based on context priorities.

## Architecture Decision Record (ADR) Template

```markdown
# ADR-[NUMBER]: [TITLE]

## Status
[Proposed | Accepted | Deprecated | Superseded]

## Context
[What is the situation requiring a decision?]

### Requirements
- [Requirement 1]
- [Requirement 2]

### Constraints
- [Constraint 1]
- [Constraint 2]

## Decision
[What is the decision?]

### Justification
- [Reason 1]
- [Reason 2]

## Consequences

### Positive
- [Benefit 1]
- [Benefit 2]

### Negative
- [Drawback 1]
- [Drawback 2]

## Alternatives Considered

### [Alternative 1]
Reason rejected: [Why]

### [Alternative 2]
Reason rejected: [Why]
```

## Architectural Refactoring Patterns

### Branch by Abstraction
1. Create abstraction over current implementation
2. Implement new solution behind abstraction
3. Switch to new implementation
4. Remove old implementation

### Strangler Fig
1. Identify boundary
2. Implement new solution for new features
3. Gradually migrate old features
4. Retire old system

### Parallel Run
1. Implement new solution
2. Run both old and new
3. Compare results
4. Switch when confident

## Technical Debt Management

### Debt Categories

| Type | Examples | Payment Strategy |
|------|----------|------------------|
| **Design** | Missing abstractions, tight coupling | Refactoring sprints |
| **Code** | Duplication, complexity, poor naming | Continuous cleanup |
| **Test** | Missing tests, flaky tests | Test improvement |
| **Documentation** | Missing docs, outdated diagrams | Documentation sprints |

### Metrics
- **Debt ratio:** Debt work / Total work (target < 20%)
- **Interest rate:** Extra effort due to debt
- **Debt ceiling:** Maximum acceptable debt

## Anti-Patterns

### Big Ball of Mud
**Symptoms:** No clear structure, everything depends on everything
**Remedy:** Identify boundaries, extract modules, establish interfaces

### Distributed Monolith
**Symptoms:** Services must deploy together, sync chains, shared DBs
**Remedy:** Merge related services, async communication, separate DBs

### Golden Hammer
**Symptoms:** One solution for all problems, force-fitting patterns
**Remedy:** Learn alternatives, evaluate objectively, prototype options

## Related Skills

- **system-design** - Full system design with ADRs
- **code-review** - Implementation validation
- **task-decomposition** - Breaking down architectural work
- **requirements-analysis** - Understanding constraints

© jwynia · MIT · jwynia/agent-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

architecture-decision by other authors comes first.

From the same set113

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor