decomposition-planning-roadmap
This skill generates phased decomposition roadmaps and step-by-step migration plans for extracting services from monolithic applications. Use it when planning the sequence and prioritization of service extraction, creating architecture stories for decomposition work, or establishing a timeline and dependencies for transitioning to distributed architectures based on component analysis and risk assessment.
git clone --depth 1 https://github.com/tech-leads-club/agent-skills /tmp/decomposition-planning-roadmap && cp -r /tmp/decomposition-planning-roadmap/packages/skills-catalog/skills/(architecture)/decomposition-planning-roadmap ~/.claude/skills/decomposition-planning-roadmapSKILL.md
# Decomposition Planning and Roadmap 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. ## How to Use ### Quick Start Request creation of a decomposition plan: - **"Create a decomposition roadmap for this codebase"** - **"Plan the decomposition migration strategy"** - **"Prioritize decomposition work based on component analysis"** - **"Create a step-by-step decomposition plan"** ### Usage Examples **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 ``` ### Step-by-Step Process 1. **Assess Current State**: Analyze codebase and identify what's been done 2. **Identify Patterns**: Determine which decomposition patterns to apply 3. **Prioritize Work**: Rank patterns by risk, value, and dependencies 4. **Create Roadmap**: Build phased plan with milestones 5. **Generate Stories**: Create architecture stories for tracking 6. **Track Progress**: Monitor progress through decomposition phases ## When to Use Apply this skill when: - Starting a decomposition effort - Planning migration from monolith to distributed architecture - Prioritizing decomposition work - Creating architecture stories for decomposition - Tracking progress through decomposition patterns - Need structured approach to decomposition - Want to estimate effort and dependencies ## Core Concepts ### Decomposition Pattern Sequence The six component-based decomposition patterns should be applied in sequence: 1. **Identify and Size Components** - Understand what you have 2. **Gather Common Domain Components** - Find duplicates 3. **Flatten Components** - Remove orphaned classes 4. **Determine Component Dependencies** - Assess coupling 5. **Create Component Domains** - Group into domains 6. **Create Domain Services** - Extract to services ### Phased Approach Decomposition typically follows phases: **Phase 1: Analysis & Preparation** (Patterns 1-4) - Component identification and sizing - Common component detection - Component flattening - Dependency analysis **Phase 2: Domain Organization** (Pattern 5) - Domain identification - Component grouping - Namespace refactoring **Phase 3: Service Extraction** (Pattern 6) - Domain service creation - Service extraction - API boundary definition ### Prioritization Factors When prioritizing decomposition work, consider: - **Risk**: Low risk = easier to extract, fewer dependencies - **Value**: High value = business-critical, high impact - **Dependencies**: Can this be done independently? - **Complexity**: Simple = fewer components, clear boundaries - **Coupling**: Low coupling = easier to extract ## Analysis Process ### Phase 1: Assess Current State Analyze what's already been done: 1. **Check Component Inventory** - Have components been identified and sized? - Is there a component inventory document? - Are oversized components identified? 2. **Check Common Component Analysis** - Have common domain components been identified? - Are consolidation opportunities documented? - Has coupling impact been analyzed? 3. **Check Component Structure** - Have components been flattened? - Are there orphaned classes? - Is component structure clean? 4. **Check Dependency Analysis** - Have component dependencies been mapped? - Is coupling analysis complete? - Is feasibility assessed? 5. **Check Domain Identification** - Have domains been identified? - Are components grouped into domains? - Are namespaces aligned with domains? 6. **Check Service Extraction** - Have any services been extracted? - Are domain services created? - Is service-based architecture in place? **Output**: Current state assessment showing what's done and what's remaining ### Phase 2: Identify Patterns to Apply Determine which decomposition patterns need to be applied: 1. **Review Pattern Prerequisites** - Pattern 1: Always needed (foundation) - Pattern 2: Needed if common components exist - Pattern 3: Needed if components have hierarchy - Pattern 4: Always needed (feasibility check) - Pattern 5: Needed before service extraction - Pattern 6: Final step (service extraction) 2. **Check Pattern Completion** - Which patterns are complete? - Which patterns are in progress? - Which patterns haven't started? 3. **Identify Missing Patterns** - What patterns still need to be applied? - What's blocking pattern application? - What dependencies exist? **Output**: List of patterns to apply with status ### Phase 3: Prioritize Work Prioritize decomposition patterns and work items: 1. **Assess Risk** - Low Risk: Infrastructure components, standalone functionality - Medium Risk: Domain components with some dependencies - High Risk: Core business logic, high coupling 2. **Assess Value** - High Value: Business-critical, high impact, frequent changes - Medium Value: Important but not critical - Low Value: Nice to have, low impact 3. **Assess Dependencies** - Independent: Can be done without other work - Dependent: Requires other patterns/work first - Blocking: Blocks other work
Finds duplicate business logic spread across multiple components and suggests consolidation. Use when asking "where is this logic duplicated?", "find common code between services", "what can be consolidated?", "detect shared domain logic", or analyzing component overlap before refactoring. Do NOT use for code-level duplication detection (use linters) or dependency analysis (use coupling-analysis).
Detects misplaced classes and fixes component hierarchy problems — finds code that should belong inside a component but sits at the root level. Use when asking "clean up component structure", "find orphaned classes", "fix module hierarchy", "flatten nested components", or analyzing why namespaces have misplaced code. Do NOT use for dependency analysis (use coupling-analysis) or domain grouping (use domain-identification-grouping).
Maps architectural components in a codebase and measures their size to identify what should be extracted first. Use when asking "how big is each module?", "what components do I have?", "which service is too large?", "analyze codebase structure", "size my monolith", or planning where to start decomposing. Do NOT use for runtime performance sizing or infrastructure capacity planning.
Analyzes coupling between modules using the three-dimensional model (strength, distance, volatility) from "Balancing Coupling in Software Design". Use when asking "are these modules too coupled?", "show me dependencies", "analyze integration quality", "which modules should I decouple?", "coupling report", or evaluating architectural health. Do NOT use for domain boundary analysis (use domain-analysis) or component sizing (use component-identification-sizing).
Maps business domains and suggests service boundaries in any codebase using DDD Strategic Design. Use when asking "what are the domains in this codebase?", "where should I draw service boundaries?", "identify bounded contexts", "classify subdomains", "DDD analysis", or analyzing domain cohesion. Do NOT use for grouping existing components into domains (use domain-identification-grouping) or dependency analysis (use coupling-analysis).
Groups existing components into logical business domains to plan service-based architecture. Use when asking "which components belong together?", "group these into services", "organize by domain", "component-to-domain mapping", or planning service extraction from an existing codebase. Do NOT use for identifying new domains from scratch (use domain-analysis) or analyzing coupling (use coupling-analysis).
AI frontend specialist and design consultant that guides users through a structured discovery process before generating any code. Collects visual references, design tokens, typography, icons, layout preferences, and brand guidelines to ensure the final output matches the user's vision with high fidelity. Use when the user asks to build, design, create, or improve any frontend interface — websites, landing pages, dashboards, components, apps, emails, forms, modals, or any UI element. Also triggers on "build me a UI", "design a page", "create a component", "improve this layout", "make this look better", "frontend", "interface", "redesign", or when the user provides mockups, screenshots, or design references. Do NOT use for backend logic, API design, database schemas, or non-visual code tasks.
Use when planning legacy system migrations, codebase modernization, monolith decomposition, microservices consolidation, cross-language rewrites, or framework upgrades. Invoke for strangler fig pattern, incremental migration strategy, or refactoring roadmaps. Do NOT use for domain analysis (use domain-analysis), component sizing (use component-identification-sizing), or step-by-step decomposition plans (use decomposition-planning-roadmap).