/architecture-decision
Architecture decisions in ADR/RFC/RFD format: context, constraints, options, recommendation. Triggers: ADR, RFC, RFD, trade-offs, design choice, pick between, evaluate approach.
$ npx -y skills add softspark/ai-toolkit --skill architecture-decision --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/architecture-decision
Context preview
The summary Claude sees to decide when to auto-load this skill.
Architecture decisions in ADR/RFC/RFD format: context, constraints, options, recommendation. Triggers: ADR, RFC, RFD, trade-offs, design choice, pick between, evaluate approach.
SKILL.md
architecture-decision.SKILL.mdname: architecture-decision
description: "Architecture decisions in ADR/RFC/RFD format: context, constraints, options, recommendation. Triggers: ADR, RFC, RFD, trade-offs, design choice, pick between, evaluate approach."
effort: medium
user-invocable: false
allowed-tools: Read, Write
Architecture Decision Skill
Core Philosophy: "Everything is a Trade-off"
There are no "best solutions", only solutions with the right set of trade-offs for the specific context.
Decision Making Process (RFD / RFC)
1. **Context**: What is the problem? Why now? 2. **Constraints**: Budget, Time, Skillset, Legacy. 3. **Options**: Propose at least 3 viable options. 4. **Trade-off Analysis**: Compare constraints vs options. 5. **Recommendation**: Choose one and justify.
Trade-off Analysis Matrix (Template)
| Feature | Option A (e.g. SQL) | Option B (e.g. NoSQL) | Option C (e.g. File) | |---------|---------------------|-----------------------|----------------------| | **Scalability** | Medium (Vertical) | High (Horizontal) | Low | | **Consistency** | Strong (ACID) | Eventual (BASE) | N/A | | **Complexity** | Low (Known) | Medium (New tech) | Low | | **Cost** | $$ | $$$ | $ |
Architecture Note
When a decision is made, document it.
# Architecture Note: Use PostgreSQL for Main Database
## Status
Accepted
## Context
We need a reliable, relational database for user data...
## Decision
We will use PostgreSQL 16.
## Consequences
- Positive: ACID compliance, rich ecosystem.
- Negative: Scaling writes requires sharding later.
Critical Factors to Evaluate
- **Reliability** (Availability, Fault tolerance)
- **Scalability** (Throughput, Latency)
- **Maintainability** (Simple vs Easy, Ecosystem)
- **Security** (AuthN/Z, Encryption)
- **Cost** (Infrastructure, License, Cognitive load)
Rules
- **MUST** present at least 3 viable options, including "status quo / do nothing" when relevant
- **MUST** state constraints (budget, time, team skillset, legacy) **before** enumerating options — options without constraints are arbitrary
- **NEVER** recommend an option without explicitly naming its failure mode and what would trigger revisiting the decision
- **CRITICAL**: the output is a document (ADR / RFC / RFD), not code changes. Code work belongs in `/plan` or `/refactor-plan`.
- **MANDATORY**: `Consequences` section names both Positive and Negative effects. A decision with only upside is not honestly analysed.
Gotchas
- "Status quo" is a genuine option and often the right one for constrained teams. Omitting it biases the analysis toward change for change's sake.
- ADRs are **append-only**. A reversed decision gets a new ADR with `Status: Supersedes ADR-N`, not an in-place edit of the original — the history of thinking matters more than the current state.
- Qualitative scales (High / Medium / Low) without anchors are hand-waving. When scoring, pin each level to a measurable threshold (e.g., "High scalability = 10k req/s at p95 < 100ms on 2 nodes").
- "We might use X" and "We will try X" are not decisions — they are deferrals. A valid ADR states the chosen option unconditionally; if you cannot, the decision is not ready.
- Political constraints (team expertise, vendor relationships, executive preferences) are first-class constraints. Hiding them behind technical language produces ADRs that get silently ignored — name them explicitly in the Constraints section.
When NOT to Load
- To find **what** architectural problems exist — use `/architecture-audit` (discovery) before this skill (decision)
- To plan implementation of an already-decided option — use `/plan` or `/refactor-plan`
- To design a single module's interface — use `/design-an-interface`
- When fewer than 2 options exist — there is no decision to make; document the constraint instead
- For runtime configuration choices (flag values, timeouts) — those are operational, not architectural
Read more
name: architecture-decision description: "Architecture decisions in ADR/RFC/RFD format: context, constraints, options, recommendation. Triggers: ADR, RFC, RFD, trade-offs, design choice, pick between, evaluate approach." effort: medium user-invocable: false allowed-tools: Read, Write
Architecture Decision Skill
Core Philosophy: "Everything is a Trade-off"
There are no "best solutions", only solutions with the right set of trade-offs for the specific context.
Decision Making Process (RFD / RFC)
1. **Context**: What is the problem? Why now? 2. **Constraints**: Budget, Time, Skillset, Legacy. 3. **Options**: Propose at least 3 viable options. 4. **Trade-off Analysis**: Compare constraints vs options. 5. **Recommendation**: Choose one and justify.
Trade-off Analysis Matrix (Template)
| Feature | Option A (e.g. SQL) | Option B (e.g. NoSQL) | Option C (e.g. File) | |---------|---------------------|-----------------------|----------------------| | **Scalability** | Medium (Vertical) | High (Horizontal) | Low | | **Consistency** | Strong (ACID) | Eventual (BASE) | N/A | | **Complexity** | Low (Known) | Medium (New tech) | Low | | **Cost** | $$ | $$$ | $ |
Architecture Note
When a decision is made, document it.
# Architecture Note: Use PostgreSQL for Main Database ## Status Accepted ## Context We need a reliable, relational database for user data... ## Decision We will use PostgreSQL 16. ## Consequences - Positive: ACID compliance, rich ecosystem. - Negative: Scaling writes requires sharding later.
Critical Factors to Evaluate
- **Reliability** (Availability, Fault tolerance)
- **Scalability** (Throughput, Latency)
- **Maintainability** (Simple vs Easy, Ecosystem)
- **Security** (AuthN/Z, Encryption)
- **Cost** (Infrastructure, License, Cognitive load)
Rules
- **MUST** present at least 3 viable options, including "status quo / do nothing" when relevant
- **MUST** state constraints (budget, time, team skillset, legacy) **before** enumerating options — options without constraints are arbitrary
- **NEVER** recommend an option without explicitly naming its failure mode and what would trigger revisiting the decision
- **CRITICAL**: the output is a document (ADR / RFC / RFD), not code changes. Code work belongs in `/plan` or `/refactor-plan`.
- **MANDATORY**: `Consequences` section names both Positive and Negative effects. A decision with only upside is not honestly analysed.
Gotchas
- "Status quo" is a genuine option and often the right one for constrained teams. Omitting it biases the analysis toward change for change's sake.
- ADRs are **append-only**. A reversed decision gets a new ADR with `Status: Supersedes ADR-N`, not an in-place edit of the original — the history of thinking matters more than the current state.
- Qualitative scales (High / Medium / Low) without anchors are hand-waving. When scoring, pin each level to a measurable threshold (e.g., "High scalability = 10k req/s at p95 < 100ms on 2 nodes").
- "We might use X" and "We will try X" are not decisions — they are deferrals. A valid ADR states the chosen option unconditionally; if you cannot, the decision is not ready.
- Political constraints (team expertise, vendor relationships, executive preferences) are first-class constraints. Hiding them behind technical language produces ADRs that get silently ignored — name them explicitly in the Constraints section.
When NOT to Load
- To find **what** architectural problems exist — use `/architecture-audit` (discovery) before this skill (decision)
- To plan implementation of an already-decided option — use `/plan` or `/refactor-plan`
- To design a single module's interface — use `/design-an-interface`
- When fewer than 2 options exist — there is no decision to make; document the constraint instead
- For runtime configuration choices (flag values, timeouts) — those are operational, not architectural
Professional-grade AI coding toolkit with multi-platform support. Machine-enforced safety, 109 skills, 44 agents, expanded lifecycle hooks, persona presets, experimental opt-in plugin packs, and benchmark tooling — works with Claude Code, Claude Chat/Cowork,
Repo: softspark/ai-toolkit
Other skills on ai-toolkit.
- /ai-toolkit-rules
Mandatory engineering, security, testing, git, performance, quality, and response rules. Claude MUST load this skill for every technical, coding, debugging, review, architecture, DevOps, data, or file-editing task in Chat or Cowork.
Open skill - /mem-search
Search past coding sessions using natural language. Finds relevant observations, decisions, and context from previous work.
Open skill - /a11y-validate
Accessibility validator: WCAG 2.1 AA, EN 301 549, EAA. Triggers: a11y, accessibility, WCAG, EAA, ARIA, contrast, keyboard, screen reader.
Open skill - /agent-creator
Creates new specialized agents with frontmatter, tools, delegation. Triggers: new agent, create agent, agent scaffold, specialized agent.
Open skill - /analyze
Analyzes code quality, complexity, patterns across codebase. Triggers: quality report, hotspot scan, code analysis, architecture signal.
Open skill - /api-patterns
REST/GraphQL API design: naming, versioning, pagination, idempotency, OpenAPI. Triggers: API design, REST, GraphQL, OpenAPI, Swagger, idempotency, rate limit.
Open skill

