Agent Skills: Architecture Decisions Skill

Make and document architecture decisions using structured frameworks

UncategorizedID: pluginagentmarketplace/custom-plugin-software-architect/architecture-decisions

Skill Files

Browse the full folder contents for architecture-decisions.

Download Skill

Loading file tree…

skills/architecture-decisions/SKILL.md

Skill Metadata

Name
architecture-decisions
Description
Make and document architecture decisions using structured frameworks

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

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

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

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 |