arc42 Architecture Documentation
Purpose
Generate complete, structured architecture documentation following the proven arc42 template (https://arc42.org/). The template provides 12 standardized sections covering all aspects of software architecture, from stakeholder requirements to technical implementation details.
When to Use This Skill
- •Starting a new project that needs comprehensive architecture documentation
- •Documenting existing systems that lack structured architecture descriptions
- •Creating architecture overviews for stakeholders with different technical levels
- •Preparing architecture documentation for certification (e.g., iSAQB)
- •Establishing a consistent documentation standard across multiple projects
arc42 Template Overview
The arc42 template consists of 12 sections:
- •Introduction and Goals - Requirements overview, quality goals, stakeholders
- •Constraints - Technical and organizational limitations
- •Context and Scope - System boundaries, external interfaces
- •Solution Strategy - Fundamental architectural decisions
- •Building Block View - Static decomposition (components, modules)
- •Runtime View - Dynamic behavior (scenarios, workflows)
- •Deployment View - Infrastructure and technical environment
- •Crosscutting Concepts - Recurring patterns and principles
- •Architecture Decisions - Important ADRs with rationale
- •Quality Requirements - Quality tree and scenarios
- •Risks and Technical Debt - Known issues and limitations
- •Glossary - Domain and technical terminology
Hard Rules
Must
- •Use the
todotool to track progress through the arc42 documentation workflow - •Prefer
search/*,read/*, andedit/*tools over terminal commands for file operations - •Create documentation in
docs/architecture/arc42/directory - •Use the template structure provided in
templates/arc42-template.md - •Fill in all 12 sections (mark sections as "TBD" if information is not yet available)
- •Include references to existing ADRs in Section 9 (Architecture Decisions)
- •Update
docs/architecture.mdto reference the new arc42 documentation - •Tailor content to the specific project context (remove boilerplate explanations)
- •Use Mermaid diagrams for visual representations (context, building blocks, deployment)
- •Keep stakeholder-focused sections (1, 3, 10) accessible to non-technical readers
- •Minimize terminal approvals by using editor tools instead of shell commands
- •Ensure arc42 documentation stays synchronized with existing ADRs and feature specifications
- •Ask the user for clarification when information is missing or unclear (one question at a time)
- •Base all documented requirements, constraints, and quality goals on actual specifications or user input
Must Not
- •Use terminal commands for file editing when
edit/*tools are available - •Skip using the
todotool for multi-step workflows - •Copy arc42 help text verbatim into the final document
- •Create documentation that duplicates existing ADRs without adding value
- •Skip sections without marking them as "TBD" or "Not Applicable"
- •Use arc42 as a substitute for code-level documentation
- •Create arc42 docs for trivial features (use standard ADRs instead)
- •Invent or fabricate requirements, constraints, quality goals, or technical details
- •Proceed with incomplete information when user clarification is available
Actions
1. Initialize Todo Tracking
Create a todo list with the todo tool to track your progress through the arc42 workflow:
- • Assess documentation scope
- • Create directory structure
- • Generate arc42 document from template
- • Fill core sections (1, 3, 4, 5)
- • Add visual diagrams
- • Link existing ADRs
- • Validate completeness
- • Update documentation index
- • Commit documentation
2. Assess Documentation Scope
Ask the maintainer one question at a time:
- •Is this for the entire system or a specific subsystem/feature?
- •Are there existing ADRs that should be referenced in Section 9?
- •What level of detail is needed (high-level overview vs. detailed technical spec)?
- •Who are the primary stakeholders (developers, architects, management)?
3. Create Directory Structure
Use edit/createFile tool (not terminal commands) to create the directory and initial file.
4. Generate arc42 Document
- •Use
read/*tool to readtemplates/arc42-template.md - •Use
edit/createFileto create the customized version atdocs/architecture/arc42/architecture.md - •Do NOT use terminal commands like
cporcat- prefer editor tools
5. Fill Core Sections (Iteratively)
Update your todo list as you complete each section.
Work through sections in recommended order:
- •Use
search/*tools to find relevant content indocs/spec.mdand feature specifications - •Start with Section 1 (Introduction and Goals) - easiest to fill from spec.md
- •Add Section 3 (Context and Scope) - define system boundaries
- •Document Section 4 (Solution Strategy) - key architectural decisions
- •Complete Section 5 (Building Block View) - component structure
- •Fill remaining sections based on available information
Progressive approach: It's acceptable to mark sections as "TBD" and fill them over time. The document is a living artifact.
Use edit/editFiles to make changes, NOT terminal text editors or sed/awk commands.
6. Add Visual Diagrams
Update your todo as you add diagrams.
For key sections, create Mermaid diagrams using edit/editFiles:
- •Section 3: Context diagram (C4 Level 1)
- •Section 5: Component diagram (C4 Level 2/3)
- •Section 6: Sequence diagrams for critical scenarios
- •Section 7: Deployment diagram
Use the mcp-mermaid tool to preview diagrams before committing.
7. Link Existing ADRs
Update your todo when complete.
Use search/codebase to find all ADR files matching adr-*.md, then in Section 9 (Architecture Decisions):
- •List all existing ADRs
- •Provide a brief summary of each decision
- •Link to the full ADR file
Use edit/editFiles to update the section.
8. Validate Completeness
Review and check your todo list:
- • All 12 sections exist (even if marked TBD)
- • At least sections 1, 3, 4, 5 are filled with meaningful content
- • Diagrams are included for context and building blocks
- • Glossary includes domain-specific terms
- • No arc42 help text remains in the document
9. Update Documentation Index
Use edit/editFiles to add reference to the arc42 document in docs/architecture.md:
## Comprehensive Architecture Documentation For a complete architecture overview following the arc42 standard, see: - [arc42 Architecture Documentation](architecture/arc42/architecture.md)
10. Commit the Documentation
Mark your todo complete, then use terminal for git operations only:
git add docs/architecture/arc42/ docs/architecture.md git commit -m "docs: add arc42 architecture documentation"
Maintenance Guidelines
The arc42 document should be:
- •Updated when: Major architectural changes occur, new quality requirements emerge, significant risks are identified
- •Reviewed: During sprint planning or architecture review meetings
- •Versioned: Commit changes with clear messages linking to features/ADRs
- •Evolved: It's better to have incomplete sections marked "TBD" than to skip documentation entirely
References
| Resource | Description |
|---|---|
| arc42.org | Official arc42 website with downloads and examples |
| arc42 Docs | Detailed explanations of each section with practical tips |
| arc42 by Example | Real-world architecture documentation examples |
| arc42 on GitHub | Template source repository |
| iSAQB Curriculum | Certification program that uses arc42 |
Tips for Success
- •Start small: Fill sections 1, 3, 4 first, then expand
- •Use diagrams: A good context diagram is worth 1000 words
- •Link, don't duplicate: Reference existing ADRs, don't copy them
- •Tailor to audience: Adjust detail level per section based on stakeholders
- •Keep it current: Update when architecture changes, not on a schedule
- •Version control: Commit documentation with related code changes