Make and document architecture decisions using structured frameworks
Makes architecture decisions using structured frameworks and quality attribute analysis.
/plugin marketplace add pluginagentmarketplace/custom-plugin-software-architect/plugin install software-architect-assistant@pluginagentmarketplace-software-architectThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/config.yamlassets/schema.jsonreferences/GUIDE.mdreferences/PATTERNS.mdscripts/validate.pyEnable structured architecture decision-making through quality attribute analysis, trade-off evaluation, and technology selection using industry-standard frameworks.
| 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 | - |
┌──────────────────────────────────────────────────────────┐
│ 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 │
└──────────────────────────────────────────────────────────┘
| Error | Retry | Backoff | Max Attempts |
|---|---|---|---|
VALIDATION_ERROR | No | - | 1 |
CONTEXT_UNCLEAR | Yes | 1s, 2s, 4s | 3 |
INSUFFICIENT_OPTIONS | Yes | - | 2 |
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 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 |
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
| 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 |
□ Is problem domain clearly defined?
□ Are quality attributes prioritized?
□ Are all options technically viable?
□ Are constraints explicitly stated?
□ Is success criteria measurable?
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
| Component | Trigger | Data Flow |
|---|---|---|
| Agent 01 | Decision request | Receives context, returns recommendation |
| Agent 02 | ADR creation | Provides decision content for documentation |
| Version | Date | Changes |
|---|---|---|
| 2.0.0 | 2025-01 | Production-grade: parameters, retry logic, tests |
| 1.0.0 | 2024-12 | Initial release |
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.