AgentSkillsCN

architecture-decisions

使用结构化框架做出并记录架构决策

SKILL.md
--- frontmatter
name: architecture-decisions
description: Make and document architecture decisions using structured frameworks
version: "2.0.0"
sasmp_version: "1.3.0"
bonded_agent: 01-architecture-fundamentals
bond_type: PRIMARY_BOND
last_updated: "2025-01"

Architecture Decisions Skill

Purpose

Enable structured architecture decision-making through quality attribute analysis, trade-off evaluation, and technology selection using industry-standard frameworks.


Parameters

ParameterTypeRequiredValidationDefault
decision_contextstringmin: 30 chars-
decision_typeenumtechnology|pattern|tradeofftradeoff
quality_prioritiesarraymax: 5 items["performance", "maintainability"]
constraintsobjectvalid JSON{}
optionsarraymin: 2 items-

Execution Flow

code
┌──────────────────────────────────────────────────────────┐
│ 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

ErrorRetryBackoffMax Attempts
VALIDATION_ERRORNo-1
CONTEXT_UNCLEARYes1s, 2s, 4s3
INSUFFICIENT_OPTIONSYes-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 CodeDescriptionRecovery
E001Missing decision contextRequest clarification
E002Conflicting quality attributesPrioritization dialog
E003Insufficient options to compareRequest more alternatives
E004Unknown technology domainDefer 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

SymptomRoot CauseResolution
Vague recommendationContext too broadNarrow scope, add constraints
Analysis paralysisToo many optionsLimit to top 3-4 viable options
Low confidence scoreMissing informationRequest specific metrics/requirements

Debug Checklist

code
□ 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

ComponentTriggerData Flow
Agent 01Decision requestReceives context, returns recommendation
Agent 02ADR creationProvides 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

VersionDateChanges
2.0.02025-01Production-grade: parameters, retry logic, tests
1.0.02024-12Initial release