packages/skills-catalog/skills/(architecture)/decomposition-planning-roadmap/SKILL.md
Creates step-by-step decomposition plans and migration roadmaps for breaking apart monolithic applications. Use when asking "what order should I extract services?", "plan my migration", "create a decomposition roadmap", "prioritize what to split", "monolith to microservices strategy", or tracking decomposition progress. Do NOT use for domain analysis (use domain-analysis) or component sizing (use component-identification-sizing).
npx skillsauth add tech-leads-club/agent-skills decomposition-planning-roadmapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill creates structured decomposition plans and roadmaps to guide the migration from monolithic to distributed architectures, prioritizing work and tracking progress through decomposition patterns.
Request creation of a decomposition plan:
Example 1: Complete Roadmap
User: "Create a decomposition roadmap for this codebase"
The skill will:
1. Analyze current codebase state
2. Identify decomposition patterns to apply
3. Prioritize work based on risk and value
4. Create phased roadmap
5. Generate architecture stories
6. Estimate effort and dependencies
Example 2: Prioritized Plan
User: "Prioritize decomposition work based on component analysis"
The skill will:
1. Review component inventory and dependencies
2. Assess risk and value for each pattern
3. Prioritize patterns by impact
4. Create prioritized work plan
Example 3: Phase Planning
User: "Create a phased decomposition plan"
The skill will:
1. Group decomposition patterns into phases
2. Identify dependencies between phases
3. Create phase timeline
4. Define phase success criteria
Apply this skill when:
The six component-based decomposition patterns should be applied in sequence:
Decomposition typically follows phases:
Phase 1: Analysis & Preparation (Patterns 1-4)
Phase 2: Domain Organization (Pattern 5)
Phase 3: Service Extraction (Pattern 6)
When prioritizing decomposition work, consider:
Analyze what's already been done:
Check Component Inventory
Check Common Component Analysis
Check Component Structure
Check Dependency Analysis
Check Domain Identification
Check Service Extraction
Output: Current state assessment showing what's done and what's remaining
Determine which decomposition patterns need to be applied:
Review Pattern Prerequisites
Check Pattern Completion
Identify Missing Patterns
Output: List of patterns to apply with status
Prioritize decomposition patterns and work items:
Assess Risk
Assess Value
Assess Dependencies
Calculate Priority Score
Priority = (Value × 3) - (Risk × 2) - (Dependencies × 1)
Higher score = Higher priority
Output: Prioritized list of patterns and work items
Build a phased roadmap with milestones:
Define Phases
Assign Patterns to Phases
Set Milestones
Estimate Timeline
Output: Phased roadmap with timeline and milestones
Create architecture stories for tracking work:
Create Story Template
As an architect, I need to [apply pattern/refactor component]
to support [architectural characteristic/business need]
so that [benefit/outcome]
Break Down Work
Add Acceptance Criteria
Estimate Effort
Output: List of architecture stories with estimates
Monitor progress through decomposition:
Track Pattern Completion
Track Story Completion
Track Metrics
Identify Blockers
Output: Progress dashboard and status report
# Decomposition Roadmap
## Current State Assessment
**Completed Patterns**:
- ✅ Pattern 1: Identify and Size Components
- ✅ Pattern 2: Gather Common Domain Components
- ⚠️ Pattern 3: Flatten Components (in progress)
- ❌ Pattern 4: Determine Component Dependencies (not started)
- ❌ Pattern 5: Create Component Domains (not started)
- ❌ Pattern 6: Create Domain Services (not started)
**Key Findings**:
- 75 components identified
- 3 common domain components found
- 2 oversized components need splitting
- High database coupling detected
## Phased Roadmap
### Phase 1: Analysis & Preparation (Weeks 1-4)
**Goal**: Complete component analysis and refactoring
**Patterns**:
1. Complete Pattern 3: Flatten Components
2. Apply Pattern 4: Determine Component Dependencies
3. Refactor oversized components
**Milestones**:
- Week 2: Component flattening complete
- Week 4: Dependency analysis complete
**Deliverables**:
- Flattened component structure
- Dependency diagram
- Feasibility assessment
### Phase 2: Domain Organization (Weeks 5-8)
**Goal**: Organize components into domains
**Patterns**:
1. Apply Pattern 5: Create Component Domains
2. Refactor namespaces for domain alignment
**Milestones**:
- Week 6: Domains identified
- Week 8: Namespace refactoring complete
**Deliverables**:
- Domain map
- Refactored component namespaces
- Domain documentation
### Phase 3: Service Extraction (Weeks 9-16)
**Goal**: Extract domains to domain services
**Patterns**:
1. Apply Pattern 6: Create Domain Services
2. Extract services incrementally
**Milestones**:
- Week 12: First domain service extracted
- Week 16: All domain services extracted
**Deliverables**:
- Domain services deployed
- API boundaries defined
- Service documentation
## Prioritized Work Plan
### High Priority (Do First)
1. **Complete Component Flattening** (Priority: 9/10)
- Risk: Low
- Value: High (enables domain grouping)
- Dependencies: None
- Effort: 2 weeks
2. **Dependency Analysis** (Priority: 8/10)
- Risk: Low
- Value: High (validates feasibility)
- Dependencies: Component flattening
- Effort: 1 week
### Medium Priority (Do Next)
3. **Domain Identification** (Priority: 7/10)
- Risk: Medium
- Value: High (enables service extraction)
- Dependencies: Dependency analysis
- Effort: 2 weeks
### Low Priority (Do Later)
4. **Service Extraction** (Priority: 5/10)
- Risk: High
- Value: High (final goal)
- Dependencies: Domain identification
- Effort: 8 weeks
## Architecture Stories
### Story 1: Flatten Ticket Components
**As an architect**, I need to flatten the Ticket component hierarchy
to support better component organization
so that components exist only as leaf nodes.
**Acceptance Criteria**:
- [ ] No orphaned classes in root namespaces
- [ ] All components are leaf nodes
- [ ] Component structure validated
**Estimate**: 5 story points
**Priority**: High
**Dependencies**: None
### Story 2: Identify Component Domains
**As an architect**, I need to group components into logical domains
to support service-based architecture
so that components can be extracted to domain services.
**Acceptance Criteria**:
- [ ] All components assigned to domains
- [ ] Domain boundaries validated with stakeholders
- [ ] Domain map created
**Estimate**: 8 story points
**Priority**: High
**Dependencies**: Component flattening complete
## Decomposition Progress Dashboard
### Pattern Completion Status
| Pattern | Status | Progress | Blocker |
| -------------------------- | -------------- | -------- | ----------------------- |
| Identify & Size Components | ✅ Complete | 100% | None |
| Gather Common Components | ✅ Complete | 100% | None |
| Flatten Components | ⚠️ In Progress | 60% | None |
| Determine Dependencies | ❌ Not Started | 0% | Waiting on flattening |
| Create Domains | ❌ Not Started | 0% | Waiting on dependencies |
| Create Domain Services | ❌ Not Started | 0% | Waiting on domains |
### Story Completion Status
**Completed**: 5 stories (25%)
**In Progress**: 3 stories (15%)
**Not Started**: 12 stories (60%)
### Key Metrics
- Components Identified: 75
- Components Refactored: 45 (60%)
- Domains Created: 0
- Services Extracted: 0
Current State Assessment:
Pattern Identification:
Prioritization:
Roadmap Creation:
Story Generation:
Progress Tracking:
Simple Roadmap (for small projects):
Detailed Roadmap (for large projects):
Use a 2x2 matrix for prioritization:
High Value, Low Risk | High Value, High Risk
(Do First) | (Do Carefully)
────────────────────────┼──────────────────────
Low Value, Low Risk | Low Value, High Risk
(Do Later) | (Avoid/Defer)
Use story points or time estimates:
Story Points (Fibonacci):
Time Estimates:
This skill coordinates the use of other decomposition skills:
After creating the roadmap:
development
Apply modern web development best practices for security, compatibility, and code quality. Use when asked to "apply best practices", "security audit", "modernize code", "code quality review", or "check for vulnerabilities". Do NOT use for accessibility (use web-accessibility), SEO (use seo), performance (use core-web-vitals), or comprehensive multi-area audits (use web-quality-audit).
tools
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing. Do NOT use for quick page debugging or network inspection (use chrome-devtools instead).
development
Configure, explore, and optimize Nx monorepo workspaces. Use when setting up Nx, exploring workspace structure, configuring project boundaries, analyzing affected projects, optimizing build caching, or implementing CI/CD with affected commands. Keywords — nx, monorepo, workspace, projects, targets, affected. Do NOT use for running tasks (use nx-run-tasks) or code generation with generators (use nx-generate).
development
Execute build, test, lint, serve, and other tasks in an Nx workspace using single runs, run-many, and affected commands. Use when user says "run tests", "build my app", "lint affected", "serve the project", "run all tasks", or "nx affected". Do NOT use for code generation (use nx-generate) or workspace configuration (use nx-workspace).