Files
gh-lyndonkl-claude/skills/decomposition-reconstruction/resources/template.md
2025-11-30 08:38:26 +08:00

395 lines
13 KiB
Markdown

# Decomposition & Reconstruction Template
## Workflow
Copy this checklist and track your progress:
```
Decomposition & Reconstruction Progress:
- [ ] Step 1: System definition and scoping
- [ ] Step 2: Component decomposition
- [ ] Step 3: Relationship mapping
- [ ] Step 4: Property analysis
- [ ] Step 5: Reconstruction and recommendations
```
**Step 1: System definition and scoping** - Define system, goal, boundaries, constraints. See [System Definition](#system-definition).
**Step 2: Component decomposition** - Break into atomic parts using appropriate strategy. See [Component Decomposition](#component-decomposition).
**Step 3: Relationship mapping** - Map dependencies, data flow, control flow. See [Relationship Mapping](#relationship-mapping).
**Step 4: Property analysis** - Measure/estimate component properties, identify critical elements. See [Property Analysis](#property-analysis).
**Step 5: Reconstruction and recommendations** - Apply reconstruction pattern, deliver recommendations. See [Reconstruction & Recommendations](#reconstruction--recommendations).
---
## System Definition
### Input Questions
Ask user to clarify:
**1. System description:**
- What system are we analyzing? (Specific name, not vague category)
- What does it do? (Purpose, inputs, outputs)
- Current state vs desired state?
**2. Goal:**
- What problem needs solving? (Performance, cost, complexity, reliability, redesign)
- What would success look like? (Specific, measurable outcome)
- Primary objective: Optimize, simplify, understand, or redesign?
**3. Boundaries:**
- What's included in this system? (Components definitely in scope)
- What's excluded? (Adjacent systems, dependencies we won't decompose further)
- Why these boundaries? (Prevent scope creep)
**4. Constraints:**
- What can't change? (Legacy integrations, regulatory requirements, budget limits)
- Time horizon? (Quick analysis vs comprehensive redesign)
- Stakeholder priorities? (Speed vs cost vs reliability)
### System Definition Template
```markdown
## System Definition
**Name:** [Specific system name]
**Purpose:** [What it does]
**Problem:** [Current issue]
**Goal:** [Target improvement with success criteria]
**Scope:** In: [Components to decompose] | Out: [Excluded systems]
**Constraints:** [What can't change, timeline]
```
---
## Component Decomposition
### Choose Decomposition Strategy
Match strategy to system type:
**Functional Decomposition** (processes, workflows):
- Question: "What tasks does this system perform?"
- Break down by function or activity
- Example: User onboarding → Signup | Email verification | Profile setup | Tutorial
**Structural Decomposition** (architectures, organizations):
- Question: "What are the physical or logical parts?"
- Break down by component or module
- Example: Microservices app → Auth service | User service | Payment service | Notification service
**Data Flow Decomposition** (pipelines, ETL):
- Question: "How does data transform as it flows?"
- Break down by transformation or processing stage
- Example: Log processing → Collect | Parse | Filter | Aggregate | Store | Alert
**Temporal Decomposition** (sequences, journeys):
- Question: "What are the stages over time?"
- Break down by phase or time period
- Example: Sales funnel → Awareness | Consideration | Decision | Purchase | Retention
**Cost/Resource Decomposition** (budgets, capacity):
- Question: "How are resources allocated?"
- Break down by cost center or resource type
- Example: Team capacity → Development (60%) | Meetings (20%) | Support (15%) | Admin (5%)
### Decomposition Process
**Step 1: First-level decomposition**
Break system into 3-8 major components. If <3, system may be too simple for this analysis. If >8, group related items.
**Step 2: Determine decomposition depth**
For each component, ask: "Is further breakdown useful?"
- **Yes, decompose further if:**
- Component is complex and opaque
- Further breakdown reveals optimization opportunities
- Component is the bottleneck or high-cost area
- **No, stop if:**
- Component is atomic (can't meaningfully subdivide)
- Further detail doesn't help achieve goal
- Component is out of scope
**Step 3: Document decomposition hierarchy**
Use indentation or numbering to show levels.
### Component Decomposition Template
```markdown
## Component Breakdown
**Strategy:** [Functional / Structural / Data Flow / Temporal / Cost-Resource]
**Hierarchy:**
- **[Component A]:** [Description]
- A.1: [Sub-component description]
- A.2: [Sub-component description]
- **[Component B]:** [Description]
- B.1: [Sub-component description]
- **[Component C]:** [Description - atomic]
**Depth Rationale:** [Why decomposed to this level]
```
---
## Relationship Mapping
### Relationship Types
Identify all applicable relationships:
**1. Dependency:** A requires B to function
- Example: Frontend depends on API, API depends on database
- Notation: A → B (A depends on B)
**2. Data flow:** A sends data to B
- Example: User input → Validation → Database
- Notation: A ⇒ B (data flows from A to B)
**3. Control flow:** A triggers or controls B
- Example: Payment success triggers fulfillment
- Notation: A ⊳ B (A triggers B)
**4. Temporal ordering:** A must happen before B
- Example: Authentication before authorization
- Notation: A < B (A before B in time)
**5. Resource sharing:** A and B both use C
- Example: Services share database connection pool
- Notation: A ← C → B (both use C)
### Mapping Process
**Step 1: Pairwise relationship check**
For each pair of components, ask:
- Does A depend on B?
- Does data flow from A to B?
- Does A trigger B?
- Must A happen before B?
- Do A and B share a resource?
**Step 2: Document relationships**
List all relationships with type and direction.
**Step 3: Identify critical paths**
Trace sequences of dependencies from input to output. Longest path = critical path.
### Relationship Mapping Template
```markdown
## Relationships
**Dependencies:** [A] → [B] → [C] (A requires B, B requires C)
**Data Flows:** [Input] ⇒ [Process] ⇒ [Output]
**Control Flows:** [Trigger] ⊳ [Action] ⊳ [Notification]
**Temporal:** [Step 1] < [Step 2] < [Step 3]
**Resource Sharing:** [A, B] share [Resource C]
**Critical Path:** [Start] → [A] → [B] → [C] → [End] (Total: [time/cost])
```
---
## Property Analysis
### Component Properties
For each component, measure or estimate:
**Performance properties:**
- Latency: Time to complete
- Throughput: Capacity (requests/sec, items/hour)
- Reliability: Uptime, failure rate
- Scalability: Can it handle growth?
**Cost properties:**
- Direct cost: $/month, $/transaction
- Indirect cost: Maintenance burden, technical debt
- Opportunity cost: What else could we build with these resources?
**Complexity properties:**
- Lines of code, number of dependencies, cyclomatic complexity
- Cognitive load: How hard to understand/change?
- Coupling: How tightly connected to other components?
**Other properties (domain-specific):**
- Security: Vulnerability surface
- Compliance: Regulatory requirements
- User experience: Friction points, satisfaction
### Analysis Techniques
**Measurement (objective):**
- Use profiling tools, logs, metrics dashboards
- Benchmark performance, measure latency, count resources
- Example: Database query takes 1.2s (measured via APM tool)
**Estimation (subjective):**
- When measurement isn't available, estimate with rationale
- Use comparative judgment (high/medium/low or 1-10 scale)
- Example: "Component A complexity: 8/10 because 500 LOC, 12 dependencies, no docs"
**Sensitivity analysis:**
- Identify which properties matter most for goal
- Focus measurement/estimation on critical properties
### Property Analysis Template
```markdown
## Component Properties
| Component | Latency | Cost | Complexity | Reliability | Notes |
|-----------|---------|------|------------|-------------|-------|
| [A] | 500ms | $200/mo | 5/10 | 99.9% | [Notes] |
| [B] | 1.2s | $50/mo | 8/10 | 95% | [Notes] |
**Data sources:** [Where metrics came from]
**Critical Components:** [List with impact on goal]
```
---
## Reconstruction & Recommendations
### Choose Reconstruction Pattern
Based on goal and analysis, select approach:
**Bottleneck Identification:**
- Goal: Find limiting factor
- Approach: Identify component with highest impact on goal metric
- Recommendation: Optimize the bottleneck first
**Simplification:**
- Goal: Reduce complexity
- Approach: Question necessity of each component, eliminate low-value parts
- Recommendation: Remove or consolidate components
**Reordering:**
- Goal: Improve efficiency through sequencing
- Approach: Identify independent components, move earlier or parallelize
- Recommendation: Change execution order
**Parallelization:**
- Goal: Increase throughput
- Approach: Find independent components, execute concurrently
- Recommendation: Run in parallel instead of serial
**Substitution:**
- Goal: Replace underperforming component
- Approach: Identify weak component, find better alternative
- Recommendation: Swap component
**Consolidation:**
- Goal: Reduce overhead
- Approach: Find redundant/overlapping components, merge
- Recommendation: Combine similar components
**Modularization:**
- Goal: Improve maintainability
- Approach: Identify tight coupling, separate concerns
- Recommendation: Extract into independent modules
### Recommendation Structure
Each recommendation should include:
1. **What:** Specific change to make
2. **Why:** Rationale based on analysis
3. **Expected impact:** Quantified or estimated benefit
4. **Implementation:** High-level approach or next steps
5. **Risks:** Potential downsides or considerations
### Reconstruction Template
```markdown
## Reconstruction
**Pattern:** [Bottleneck ID / Simplification / Reordering / Parallelization / Substitution / Consolidation / Modularization]
**Key Findings:**
- [Finding 1 with evidence]
- [Finding 2 with evidence]
## Recommendations
### Priority 1: [Title]
**What:** [Specific change]
**Why:** [Rationale from analysis]
**Impact:** [Quantified improvement, confidence level]
**Implementation:** [High-level approach, effort estimate]
**Risks:** [Key risks and mitigations]
### Priority 2: [Title]
[Same structure]
## Summary
**Current:** [System as analyzed]
**Proposed:** [After recommendations]
**Total Impact:** [Goal metric improvement]
**Next Steps:** [1. Immediate action, 2. Planning, 3. Execution]
```
---
## Quality Checklist
Before delivering, verify:
**Decomposition quality:**
- [ ] System boundary is clear and justified
- [ ] Components are at appropriate granularity (not too coarse, not too fine)
- [ ] Decomposition strategy matches system type
- [ ] All major components identified
- [ ] Decomposition depth is justified (why stopped where we did)
**Relationship mapping:**
- [ ] All critical relationships documented
- [ ] Relationship types are clear (dependency vs data flow vs control flow)
- [ ] Critical path identified
- [ ] Dependencies are accurate (verified with stakeholders if uncertain)
**Property analysis:**
- [ ] Key properties measured or estimated for each component
- [ ] Data sources documented (measurement vs estimation)
- [ ] Critical components identified (highest impact on goal)
- [ ] Analysis focuses on properties relevant to goal
**Reconstruction & recommendations:**
- [ ] Reconstruction pattern matches goal
- [ ] Recommendations are specific and actionable
- [ ] Expected impact is quantified or estimated
- [ ] Rationale ties back to component analysis
- [ ] Risks and considerations noted
- [ ] Prioritization is clear (Priority 1, 2, 3)
**Communication:**
- [ ] Decomposition is visualizable (hierarchy or diagram could be drawn)
- [ ] Analysis findings are clear and evidence-based
- [ ] Recommendations have clear expected impact
- [ ] Technical level appropriate for audience
- [ ] Assumptions and limitations stated
---
## Common Pitfalls
| Pitfall | Fix |
|---------|-----|
| **Decomposition too shallow** (2-3 complex components) | Ask "can this be broken down further?" |
| **Decomposition too deep** (50+ atomic parts) | Group related components, focus on goal-relevant areas |
| **Inconsistent strategy** (mixing functional/structural) | Choose one primary strategy, stick to it |
| **Missing critical relationships** (hidden dependencies) | Trace data/control flow systematically, validate with stakeholders |
| **Unmeasured properties** (all guesses) | Prioritize measurement for critical components |
| **Vague recommendations** ("optimize X") | Specify WHAT, HOW, WHY with evidence from analysis |
| **Ignoring constraints** (impossible suggestions) | Check all recommendations against stated constraints |
| **No impact quantification** ("can't estimate improvement") | Estimate expected impact from component properties |