Architecture Documentation Skill
Purpose
Generate architecture documentation in standard formats including ADRs, C4 diagrams, and technical specifications with consistent structure and quality.
Parameters
| Parameter | Type | Required | Validation | Default |
|-----------|------|----------|------------|---------|
| doc_type | enum | ✅ | adr|c4|sequence|overview | - |
| context | string | ✅ | min: 20 chars | - |
| format | enum | ⚪ | markdown|mermaid|plantuml | markdown |
| audience | enum | ⚪ | technical|executive|mixed | technical |
| detail_level | enum | ⚪ | overview|detailed | detailed |
Execution Flow
┌──────────────────────────────────────────────────────────┐
│ 1. VALIDATE: Check doc_type and context │
│ 2. SELECT: Choose appropriate template │
│ 3. GATHER: Extract relevant information │
│ 4. GENERATE: Create documentation content │
│ 5. FORMAT: Apply output format (Mermaid, etc.) │
│ 6. VALIDATE: Check completeness and consistency │
│ 7. RETURN: Deliver formatted document │
└──────────────────────────────────────────────────────────┘
Retry Logic
| Error | Retry | Backoff | Max Attempts |
|-------|-------|---------|--------------|
| TEMPLATE_ERROR | Yes | 1s | 2 |
| VALIDATION_FAILED | No | - | 1 |
| FORMAT_ERROR | Yes | 500ms | 3 |
Logging & Observability
log_points:
- event: doc_generation_started
level: info
data: [doc_type, format]
- event: doc_generation_complete
level: info
data: [doc_type, size_bytes, completeness_score]
- event: validation_warning
level: warn
data: [missing_sections]
metrics:
- name: docs_generated
type: counter
labels: [doc_type]
- name: generation_time_ms
type: histogram
- name: completeness_score
type: gauge
Error Handling
| Error Code | Description | Recovery |
|------------|-------------|----------|
| E101 | Missing context | Request system/decision context |
| E102 | Invalid doc_type | Show available doc types |
| E103 | Inconsistent content | Flag for review |
| E104 | Diagram syntax error | Validate and fix Mermaid/PlantUML |
Unit Test Template
test_cases:
- name: "Generate ADR"
input:
doc_type: "adr"
context: "Choosing PostgreSQL for user data"
format: "markdown"
expected:
contains: ["## Status", "## Decision", "## Consequences"]
valid_markdown: true
- name: "Generate C4 Container Diagram"
input:
doc_type: "c4"
context: "E-commerce platform with React, Node.js, PostgreSQL"
format: "mermaid"
expected:
contains: ["C4Container", "Container(", "Rel("]
valid_mermaid: true
- name: "Invalid doc_type"
input:
doc_type: "invalid"
expected:
error_code: "E102"
Troubleshooting
Common Issues
| Symptom | Root Cause | Resolution | |---------|------------|------------| | Incomplete ADR | Missing decision context | Add context, alternatives | | Diagram won't render | Syntax error | Validate Mermaid syntax | | Wrong audience level | Mismatched detail | Adjust detail_level param |
Debug Checklist
□ Is doc_type supported?
□ Is context sufficient for doc type?
□ Is format appropriate for target?
□ Are all required sections present?
□ Is Mermaid/PlantUML syntax valid?
Templates
ADR Template
# ADR-{NUMBER}: {TITLE}
## Status
{Proposed | Accepted | Deprecated | Superseded}
## Context
{Problem description}
## Decision
{What was decided}
## Consequences
### Positive
- {Benefit}
### Negative
- {Trade-off}
C4 Container Template
C4Container
title {System Name}
Person(user, "User")
Container(app, "Application", "Technology")
ContainerDb(db, "Database", "Technology")
Rel(user, app, "Uses")
Rel(app, db, "Reads/Writes")
Integration
| Component | Trigger | Data Flow | |-----------|---------|-----------| | Agent 02 | Doc request | Receives context, returns formatted doc | | Agent 01 | ADR trigger | Receives decision for documentation |
Quality Standards
- Complete: All required sections populated
- Consistent: Follows standard templates
- Current: Reflects actual system state
Version History
| Version | Date | Changes | |---------|------|---------| | 2.0.0 | 2025-01 | Production-grade: templates, tests, validation | | 1.0.0 | 2024-12 | Initial release |