Arc42 to Epic Decomposition
Transforms Arc42 architecture documentation into Speckit-ready Epics with proper sizing, dependency management, and traceability.
Project Structure Conventions
This skill expects the following folder structure:
docs/
├── architecture/
│ ├── arc42/ # Arc42 documentation (input)
│ └── adr/ # Architecture Decision Records (input)
├── requirements/ # Personas, use-cases, requirements (input)
├── vision/ # Vision statements, north stars (input)
└── planning/ # Epic catalogue and roadmap (output)
└── epics/ # Individual epic files
.specify/
└── memory/
└── constitution.md # Speckit constitution (reference)
Quick Start
- •Read
docs/architecture/arc42/for architecture documentation - •Check
.specify/memory/constitution.mdfor project principles - •Run the analysis workflow
- •Generate epic catalogue in
docs/planning/epics/
Analysis Workflow
Copy this checklist and track progress:
Arc42 Epic Decomposition Progress: - [ ] Phase 1: Read all input documentation - [ ] Phase 2: Extract context and constraints - [ ] Phase 3: Map building blocks to epic candidates - [ ] Phase 4: Apply sizing rules and form epics - [ ] Phase 5: Analyse dependencies and sequence - [ ] Phase 6: Generate output files in docs/planning/
Phase 1: Read Documentation
Read in this order:
- •Vision (if exists):
docs/vision/— North star, strategic direction - •Constitution:
.specify/memory/constitution.md— Project principles - •Arc42:
docs/architecture/arc42/— Architecture documentation - •ADRs:
docs/architecture/adr/— Key decisions and rationale - •Requirements (if exists):
docs/requirements/— Personas, use-cases
Minimum required: Arc42 sections 1, 3, and 5.
Phase 2: Extract Context
Summarise these elements:
| Extract | Source | Purpose |
|---|---|---|
| Strategic direction | docs/vision/ | Epic prioritisation |
| Project principles | .specify/memory/constitution.md | Constraints on approach |
| Business drivers | Arc42 §1 | Epic acceptance criteria |
| System boundaries | Arc42 §3 | Integration epic identification |
| Technical constraints | Arc42 §2 + ADRs | Epic technical requirements |
| Quality attributes | Arc42 §10 | Non-functional requirements |
Phase 3: Map Building Blocks
From Arc42 §5 Building Block View:
- •List each Level 1 component's name and responsibility
- •Note dependencies between components
- •Flag shared/foundational components
Cross-reference with:
- •Arc42 §6 Runtime View for workflow boundaries
- •Arc42 §7 Deployment View for infrastructure needs
- •Arc42 §8 Crosscutting Concepts for enabler epics
See references/arc42-mapping.md for detailed mapping guidance.
Phase 4: Form Epics
Apply sizing rules to each candidate:
| Dimension | Target | If Violated |
|---|---|---|
| Duration | 4-8 weeks | Split if >8 weeks, merge if <2 weeks |
| User stories | 5-12 expected | Decompose if >15, expand if <3 |
| MVP | Defined | Must identify minimum viable slice |
| Independence | Testable alone | Extract shared work to foundation |
Classify each epic:
| Type | Description | Examples |
|---|---|---|
| Foundation | Enables other work | CI/CD, dev environment, auth, shared libs |
| Business | Delivers user value | Features, domain modules, bounded contexts |
| Enabler | Technical excellence | Logging, monitoring, security, tech debt |
| Integration | Connects systems | External APIs, data sync, migrations |
Use template: templates/epic-template.md
Phase 5: Dependency Analysis
Ensure dependency graph has:
- •Foundation epics with no blockers
- •No circular dependencies
- •Soft dependencies use interface contracts
- •Clear critical path identified
Apply WSJF prioritisation:
Score = (Business Value + Time Criticality + Risk Reduction) / Size
See references/dependency-patterns.md for examples.
Phase 6: Generate Outputs
Create files in docs/planning/:
docs/planning/
├── epic-catalogue.md # Summary table and roadmap
├── dependency-graph.mermaid
├── speckit-guide.md # Workflow for Speckit handoff
└── epics/
├── EP01-*.md
├── EP02-*.md
└── ...
Epic Template (Summary)
# EP[XX]: [Epic Name] ## Classification | Attribute | Value | |-----------|-------| | Type | Foundation / Business / Enabler / Integration | | Priority | P0 / P1 / P2 / P3 | | Size | S / M / L / XL | | Duration | X weeks | ## Business Outcome Hypothesis **If** we deliver [this epic], **Then** [stakeholder] will be able to [outcome], **Measured by** [metric]. ## Scope - **In Scope**: [capabilities] - **Out of Scope**: [exclusions] - **MVP**: [minimum viable slice] ## Traceability - **Arc42 Building Blocks**: [from §5] - **ADRs**: [relevant decision numbers] - **Quality Requirements**: [from §10] ## Dependencies | Blocked By | Type | What's Needed | |------------|------|---------------| | EPxx | Hard/Soft | Description | ## Acceptance Criteria - [ ] [testable criterion] ## Speckit Handoff Notes - Primary persona: [from requirements] - Key workflow: [main user journey] - Constraints: [from constitution + ADRs]
Full template: templates/epic-template.md
Speckit Integration
After generating epics, for each epic (in dependency order):
git checkout -b epXX-epic-name
/speckit.specify [Paste epic scope and business outcome from EPxx.md] /speckit.clarify /speckit.plan [Include constraints from constitution and ADRs] /speckit.tasks /speckit.implement
The constitution at .specify/memory/constitution.md will automatically inform Speckit's decisions.
Validation Checklist
Before finalising:
Epic Quality Check: - [ ] Every Arc42 building block maps to at least one epic - [ ] Every external interface (§3) has an integration epic - [ ] Crosscutting concerns (§8) have enabler epics - [ ] No epic exceeds 8 weeks duration - [ ] No circular dependencies exist - [ ] Each epic has defined MVP - [ ] Acceptance criteria are testable - [ ] ADR constraints reflected in relevant epics - [ ] Constitution principles respected
References
- •Arc42 Section Mapping — Which sections inform which epic types
- •Dependency Patterns — Good and bad dependency examples
- •Sizing Guidelines — When to split or merge epics
- •Epic Template — Full template with all fields
- •Catalogue Template — Epic catalogue structure
- •Speckit Guide Template — Per-epic Speckit workflow