task-decomposer · v1.1.1 · 2026-04-11 · sha256 5f12e35b7f8745ea

task-decomposer v1.1.1A

Immutable. This exact content never changes and is served at /api/v1/blob/5f12e35b7f8745ea.

---
name: task-decomposer
description: 'Produces phased task boards from feature requests: dependency-mapped work items, parallelization flags, risk flags, edge cases, test matrices. Triggers on: "decompose this feature", "task breakdown with dependencies", "phased implementation plan", "work breakdown structure". NOT for effort estimates, use estimate-calibrator.'
metadata:
  version: 1.1.1
  category: development
  tags: [task-breakdown, dependencies, planning, phased]
  difficulty: intermediate
  phase: plan
---

# Task Decomposer

Transforms ambiguous feature requests into concrete, implementable task sequences:
identifies acceptance criteria, decomposes into phased work items with effort sizing,
maps dependencies and parallelization, enumerates edge cases, plans testing, and flags
risks — producing a ready-to-execute task board.

> **When to use this skill vs native decomposition:** The base model decomposes features
> well in an ad-hoc format. Use this skill specifically when you need the structured output:
> phased task tables with dependency mapping, parallelization flags, risk flags, and
> integrated test strategy. If you just need a quick list of steps, ask directly without
> invoking this skill.

## Reference Files

| File                                   | Contents                                                        | Load When                       |
| -------------------------------------- | --------------------------------------------------------------- | ------------------------------- |
| `references/decomposition-patterns.md` | Feature → task decomposition strategies, granularity guidelines | Always                          |
| `references/edge-case-checklist.md`    | Common edge case categories by domain (web, API, data, CLI)     | Edge case identification needed |
| `references/dependency-mapping.md`     | Dependency graph construction, critical path identification     | Multi-task breakdown            |
| `references/sizing-guide.md`           | Effort estimation guidance (S/M/L), complexity indicators       | Effort sizing needed            |

## Prerequisites

- Feature description or requirements (can be vague — the skill handles ambiguity)
- Project context (tech stack, existing architecture, team size)

## Workflow

### Phase 1: Understand the Feature

1. **Extract the user-facing goal** — What does this feature enable the user to do?
   If unclear, state assumptions explicitly.
2. **Define acceptance criteria** — What must be true for this feature to be "done"?
   Express as testable statements: "User can X", "System does Y when Z."
3. **Identify non-functional requirements** — Performance, security, accessibility,
   backwards compatibility constraints.
4. **Clarify scope boundaries** — What is explicitly out of scope? State this to
   prevent scope creep during implementation.

### Phase 2: Decompose into Tasks

Break the feature into tasks at the right granularity:

| Granularity | Size                                           | Example                      |
| ----------- | ---------------------------------------------- | ---------------------------- |
| Too coarse  | "Build the search feature"                     | Not actionable               |
| Right level | "Add full-text search index to products table" | Single PR, testable          |
| Too fine    | "Import the search library"                    | Not independently meaningful |

**Right granularity test:** Each task should be completable in a single PR, testable
in isolation, and deliverable independently (even if not user-visible alone).

Group tasks into phases:

| Phase       | Purpose                              | Contains                                   |
| ----------- | ------------------------------------ | ------------------------------------------ |
| Foundation  | Data models, schemas, interfaces     | Types, database tables, API contracts      |
| Core logic  | Business logic, algorithms           | The actual feature implementation          |
| Integration | Connecting components, API endpoints | Routes, controllers, wire-up               |
| Polish      | Edge cases, error handling, UX       | Validation, error messages, loading states |

### Phase 3: Identify Edge Cases

For each task, enumerate edge cases:

1. **Input boundaries** — Empty, null, maximum size, special characters
2. **State transitions** — Concurrent modification, interrupted operations
3. **Error conditions** — Network failures, invalid data, permission denied
4. **Backwards compatibility** — Existing data, existing API consumers

### Phase 4: Plan Testing

For each task, identify what to test:

| Test Level  | What to Test                          | Who Writes              |
| ----------- | ------------------------------------- | ----------------------- |
| Unit        | Individual functions, pure logic      | During implementation   |
| Integration | Component interactions, API endpoints | After integration phase |
| Manual      | User flows, visual correctness        | After polish phase      |

### Phase 5: Map Dependencies

Identify which tasks depend on others:

1. **Hard dependencies** — Task B requires Task A's output (database table must exist
   before writing queries)
2. **Soft dependencies** — Task B benefits from Task A but could use a stub
3. **No dependency** — Tasks can be done in parallel

### Phase 6: Flag Risks

For each risk, identify mitigation:

| Risk Type           | Example                             | Mitigation                                      |
| ------------------- | ----------------------------------- | ----------------------------------------------- |
| Technical unknown   | "Never used WebSockets before"      | Spike/prototype first                           |
| External dependency | "Requires API access we don't have" | Request early, use mocks                        |
| Scope uncertainty   | "Requirements may change"           | Implement core first, defer edge cases          |
| Performance risk    | "May be slow with 1M rows"          | Add benchmark task, define acceptable threshold |

## Output Format

```text
## Task Decomposition: {Feature Name}

### Feature Summary
{One paragraph describing what this feature does and why}

### Acceptance Criteria
- [ ] {Testable statement 1}
- [ ] {Testable statement 2}
- [ ] {Testable statement 3}

### Scope
- **In scope:** {what's included}
- **Out of scope:** {what's excluded}

### Task Breakdown

#### Phase 1: Foundation
| # | Task | Effort | Dependencies | Parallel |
|---|------|--------|--------------|----------|
| 1.1 | {task description} | {S/M/L} | None | Yes |
| 1.2 | {task description} | {S/M/L} | 1.1 | No |

#### Phase 2: Core Logic
| # | Task | Effort | Dependencies | Parallel |
|---|------|--------|--------------|----------|
| 2.1 | {task description} | {S/M/L} | 1.x | Yes |
| 2.2 | {task description} | {S/M/L} | 1.x | Yes |

#### Phase 3: Integration
| # | Task | Effort | Dependencies | Parallel |
|---|------|--------|--------------|----------|
| 3.1 | {task description} | {S/M/L} | 2.x | No |

#### Phase 4: Polish
| # | Task | Effort | Dependencies | Parallel |
|---|------|--------|--------------|----------|
| 4.1 | {task description} | {S/M/L} | 3.x | Yes |

### Edge Cases

| # | Edge Case | Handling | Phase |
|---|-----------|----------|-------|
| 1 | {edge case} | {how to handle} | {which phase} |

### Test Strategy

#### Unit Tests
- {Component}: {what to test}

#### Integration Tests
- {Flow}: {what to test}

#### Manual Verification
- {Scenario}: {what to check}

### Risk Flags
- {Risk}: {mitigation strategy}
```

## Calibration Rules

1. **Right granularity.** Each task should be 1-3 days of work. Larger → decompose further.
   Smaller → merge into a parent task.
2. **Testable acceptance criteria.** "Make search work" is not testable. "Search returns
   relevant results within 200ms for queries up to 100 characters" is testable.
3. **Dependencies are sacred.** If Task B truly depends on Task A, mark it. False
   dependencies slow teams down; missing dependencies cause integration failures.
4. **Edge cases are not optional.** Every feature has edge cases. If the edge case list
   is empty, the analysis is incomplete.
5. **Parallel = velocity.** Maximize parallel tasks. If 4 tasks can be done simultaneously,
   the phase takes the duration of the longest, not the sum.

## Error Handling

| Problem                          | Resolution                                                                                             |
| -------------------------------- | ------------------------------------------------------------------------------------------------------ |
| Feature description is vague     | State assumptions, decompose what's known, mark uncertain tasks with "pending clarification."          |
| Feature is too large (20+ tasks) | Split into multiple features. A feature that takes months is a project, not a feature.                 |
| No clear acceptance criteria     | Help the user define them: "What does done look like? What would you demo?"                            |
| Technical stack unknown          | Decompose at the logical level (data model, business logic, API, UI) without implementation specifics. |

## When NOT to Decompose

Push back if:

- The task is already atomic (single function, single file change) — just do it
- The user wants time estimates, not task breakdown — use estimate-calibrator instead
- The feature is exploratory (research, prototype) — decomposition assumes known scope