Task Decomposition
Task decomposition is the process of taking a high-level goal and breaking it
down into discrete, independently executable units of work. Each resulting task
must satisfy the SMART criteria: Specific, Measurable, Assignable, Relevant,
and Time-bound. Well-decomposed tasks are the foundation of accurate scheduling,
clear ownership, and reliable delivery tracking.
When to Use This Skill
- A goal statement or requirement needs to be turned into an actionable task list.
- A deliverable is too large or vague to be assigned to a single person.
- A sprint or milestone plan needs to be populated with concrete work items.
- An existing plan has tasks that are poorly scoped or overlap with each other.
- You need to produce the
## Tasks section of a plan document.
- A team member asks: "What exactly do we need to do to achieve this?"
Prerequisites
- A written goal statement (rough draft is acceptable).
- Knowledge of the team's roles and approximate available capacity.
- Understanding of the technology or domain involved — enough to name realistic tasks.
- Access to any existing requirements documents, architecture diagrams, or previous plans.
Step-by-Step Workflow
Step 1: Understand and Restate the Goal
Read the goal statement carefully. Rewrite it in your own words, structured as:
- Objective: What must be achieved?
- Success Criteria: How will we know it is done?
- Constraints: What are the non-negotiable boundaries (deadline, technology, team size)?
Example restatement:
Goal: Build a REST API service for user authentication.
Objective: Deliver a production-ready REST API handling user registration, login, token refresh, and logout.
Success Criteria: All four endpoints return correct HTTP status codes, pass the agreed integration test suite, and are deployed to staging.
Constraints: Must use Node.js + Express, deliver within 3 weeks, team of 2 engineers.
Step 2: Identify Top-Level Deliverables
List the major deliverables — the tangible outputs that together constitute the goal being complete. Aim for 3–7 deliverables per goal.
Technique — Noun decomposition: Ask "What artifacts, systems, or documents must exist when this is done?"
| Deliverable |
Description |
| API service codebase |
Node.js/Express app with all four endpoints implemented |
| Authentication middleware |
JWT validation logic as reusable middleware |
| Database schema |
User table with password hash and token fields |
| Integration test suite |
Automated tests for all endpoints and error cases |
| Deployment configuration |
Docker Compose + CI pipeline to staging |
Step 3: Break Each Deliverable into Atomic Work Packages
For each deliverable, ask: "What is the smallest unit of work a single person can complete in one session?" Split until every item:
- Can be completed by ONE person.
- Has a clear done condition.
- Has a realistic duration of 30 minutes to 2 days.
- Does not contain implicit hidden sub-tasks.
Anti-pattern to avoid: "Implement authentication" is NOT atomic.
Correct decomposition:
| ID |
Task |
Owner |
Duration |
| T01 |
Design POST /register request/response schema |
Backend Dev |
2h |
| T02 |
Implement POST /register endpoint with validation |
Backend Dev |
4h |
| T03 |
Write unit tests for POST /register |
Backend Dev |
2h |
Step 4: Apply SMART Criteria to Each Task
For every task, verify all five SMART dimensions:
| Dimension |
Question to Ask |
Fix if Failing |
| Specific |
Is it clear exactly what work is done? |
Add the "what" and "how" explicitly |
| Measurable |
Is there a concrete done condition? |
Add acceptance criteria or a test |
| Assignable |
Can one person own this? |
Split if multiple roles are needed |
| Relevant |
Does it contribute directly to the goal? |
Remove or merge trivial tasks |
| Time-bound |
Does it have a duration estimate? |
Add estimate in hours (h) or days (d) |
Step 5: Format Tasks in the Standard Task Table
Output all tasks as a Markdown table with these exact columns:
| ID | Task | Owner | Duration | Status | Depends On |
|-----|-----------------------------------------------|-------------|----------|-------------|------------|
| T01 | Design POST /register request/response schema | Backend Dev | 2h | not-started | — |
| T02 | Implement POST /register endpoint | Backend Dev | 4h | not-started | T01 |
| T03 | Write unit tests for POST /register | Backend Dev | 2h | not-started | T02 |
| T04 | Design POST /login schema | Backend Dev | 1h | not-started | T01 |
| T05 | Implement POST /login endpoint + JWT issuance | Backend Dev | 4h | not-started | T04 |
Column rules:
ID: Sequential, prefix T + zero-padded two-digit number: T01, T02, T10.
Task: Verb + noun phrase. Start with an action word: Design, Implement, Write, Configure, Deploy, Review, Test.
Owner: Role title, not a person's name (Backend Dev, QA Engineer, DevOps).
Duration: Always include unit suffix — h for hours, d for days (e.g., 2h, 0.5d, 3d).
Status: ONE of: not-started, in-progress, done, blocked.
Depends On: Comma-separated task IDs, or em-dash — if none.
Step 6: Validate Completeness
Before finalizing, run this checklist:
Examples
Good Pattern — Atomic, SMART Task
| T07 | Configure Dockerfile for Node.js API service | DevOps | 3h | not-started | T06 |
- Specific: Exactly what is being configured (Dockerfile, Node.js API service).
- Measurable: Done when
docker build succeeds locally and image starts correctly.
- Assignable: DevOps owns it exclusively.
- Relevant: Required for the deployment pipeline deliverable.
- Time-bound: 3 hours.
Bad Pattern — Vague, Non-atomic Task
| T07 | Set up infrastructure | DevOps | 2w | not-started | T06 |
Problems:
- "Set up infrastructure" could mean 20 different things.
- 2 weeks is too long — no visibility into daily progress.
- No done condition defined.
- Untestable in a standup.
Fix: Split into separate rows — configure Dockerfile (3h), write docker-compose.yml (2h), configure CI pipeline (4h), provision staging server (2h), write deployment runbook (2h).
Good Pattern — Complete Task Table
| ID | Task | Owner | Duration | Status | Depends On |
|-----|-----------------------------------------|-------------|----------|-------------|------------|
| T01 | Write OpenAPI spec for all 4 endpoints | Backend Dev | 4h | not-started | — |
| T02 | Scaffold Express app + folder structure | Backend Dev | 2h | not-started | T01 |
| T03 | Implement POST /register | Backend Dev | 4h | in-progress | T02 |
| T04 | Write integration tests for /register | QA Engineer | 3h | not-started | T03 |
Troubleshooting
| Symptom |
Cause |
Fix |
| Tasks keep growing in scope during execution |
Insufficient decomposition in Step 3 |
Re-apply Step 3: ask "is this one person, one session?" — split if no |
| Cannot assign an owner because multiple teams are needed |
Task spans team boundaries |
Split at the team boundary; add a handoff or integration task |
| Duration estimates are constantly wrong |
Tasks are not specific enough |
Add explicit done conditions (acceptance criteria) to each task |
| Task list misses critical work |
Deliverables not fully enumerated in Step 2 |
Re-run Step 2 with domain experts; ask "what else must exist when we're done?" |
| ID references in "Depends On" don't exist |
Tasks were renumbered after editing |
Renumber sequentially after all tasks are finalized; use find-replace for IDs |
References
- SMART criteria: Doran, G.T. (1981). "There's a S.M.A.R.T. way to write management's goals and objectives." — Management Review 70(11).
- Work Breakdown Structure (WBS): PMI PMBOK Guide, 7th Edition, Section 5.4.
- Agile task sizing: Mike Cohn, Agile Estimating and Planning, Chapter 5.
1---2name: task-decomposition3description: Use when breaking a complex goal or project requirement into atomic, measurable, assignable tasks. Covers the full SMART decomposition workflow: understanding the goal, identifying deliverables, creating work packages, assigning ownership and duration, and validating completeness. Applies to software projects, planning agents, and any structured task list creation.4---56# Task Decomposition78Task decomposition is the process of taking a high-level goal and breaking it9down into discrete, independently executable units of work. Each resulting task10must satisfy the **SMART criteria**: Specific, Measurable, Assignable, Relevant,11and Time-bound. Well-decomposed tasks are the foundation of accurate scheduling,12clear ownership, and reliable delivery tracking.1314## When to Use This Skill1516- A goal statement or requirement needs to be turned into an actionable task list.17- A deliverable is too large or vague to be assigned to a single person.18- A sprint or milestone plan needs to be populated with concrete work items.19- An existing plan has tasks that are poorly scoped or overlap with each other.20- You need to produce the `## Tasks` section of a plan document.21- A team member asks: "What exactly do we need to do to achieve this?"2223## Prerequisites2425- A written goal statement (rough draft is acceptable).26- Knowledge of the team's roles and approximate available capacity.27- Understanding of the technology or domain involved — enough to name realistic tasks.28- Access to any existing requirements documents, architecture diagrams, or previous plans.2930## Step-by-Step Workflow3132### Step 1: Understand and Restate the Goal3334Read the goal statement carefully. Rewrite it in your own words, structured as:3536- **Objective**: What must be achieved?37- **Success Criteria**: How will we know it is done?38- **Constraints**: What are the non-negotiable boundaries (deadline, technology, team size)?3940**Example restatement:**4142> **Goal**: Build a REST API service for user authentication.43> **Objective**: Deliver a production-ready REST API handling user registration, login, token refresh, and logout.44> **Success Criteria**: All four endpoints return correct HTTP status codes, pass the agreed integration test suite, and are deployed to staging.45> **Constraints**: Must use Node.js + Express, deliver within 3 weeks, team of 2 engineers.4647### Step 2: Identify Top-Level Deliverables4849List the major deliverables — the tangible outputs that together constitute the goal being complete. Aim for 3–7 deliverables per goal.5051**Technique — Noun decomposition**: Ask "What artifacts, systems, or documents must exist when this is done?"5253| Deliverable | Description |54|--------------------------|----------------------------------------------------------|55| API service codebase | Node.js/Express app with all four endpoints implemented |56| Authentication middleware| JWT validation logic as reusable middleware |57| Database schema | User table with password hash and token fields |58| Integration test suite | Automated tests for all endpoints and error cases |59| Deployment configuration | Docker Compose + CI pipeline to staging |6061### Step 3: Break Each Deliverable into Atomic Work Packages6263For each deliverable, ask: "What is the smallest unit of work a single person can complete in one session?" Split until every item:6465- Can be completed by ONE person.66- Has a clear done condition.67- Has a realistic duration of 30 minutes to 2 days.68- Does not contain implicit hidden sub-tasks.6970**Anti-pattern to avoid**: "Implement authentication" is NOT atomic.7172**Correct decomposition:**7374| ID | Task | Owner | Duration |75|-----|---------------------------------------------------|-------------|----------|76| T01 | Design POST /register request/response schema | Backend Dev | 2h |77| T02 | Implement POST /register endpoint with validation | Backend Dev | 4h |78| T03 | Write unit tests for POST /register | Backend Dev | 2h |7980### Step 4: Apply SMART Criteria to Each Task8182For every task, verify all five SMART dimensions:8384| Dimension | Question to Ask | Fix if Failing |85|----------------|--------------------------------------------------|--------------------------------------------|86| **Specific** | Is it clear exactly what work is done? | Add the "what" and "how" explicitly |87| **Measurable** | Is there a concrete done condition? | Add acceptance criteria or a test |88| **Assignable** | Can one person own this? | Split if multiple roles are needed |89| **Relevant** | Does it contribute directly to the goal? | Remove or merge trivial tasks |90| **Time-bound** | Does it have a duration estimate? | Add estimate in hours (`h`) or days (`d`) |9192### Step 5: Format Tasks in the Standard Task Table9394Output all tasks as a Markdown table with these exact columns:9596```markdown97| ID | Task | Owner | Duration | Status | Depends On |98|-----|-----------------------------------------------|-------------|----------|-------------|------------|99| T01 | Design POST /register request/response schema | Backend Dev | 2h | not-started | — |100| T02 | Implement POST /register endpoint | Backend Dev | 4h | not-started | T01 |101| T03 | Write unit tests for POST /register | Backend Dev | 2h | not-started | T02 |102| T04 | Design POST /login schema | Backend Dev | 1h | not-started | T01 |103| T05 | Implement POST /login endpoint + JWT issuance | Backend Dev | 4h | not-started | T04 |104```105106**Column rules:**107- `ID`: Sequential, prefix `T` + zero-padded two-digit number: `T01`, `T02`, `T10`.108- `Task`: Verb + noun phrase. Start with an action word: Design, Implement, Write, Configure, Deploy, Review, Test.109- `Owner`: Role title, not a person's name (Backend Dev, QA Engineer, DevOps).110- `Duration`: Always include unit suffix — `h` for hours, `d` for days (e.g., `2h`, `0.5d`, `3d`).111- `Status`: ONE of: `not-started`, `in-progress`, `done`, `blocked`.112- `Depends On`: Comma-separated task IDs, or em-dash `—` if none.113114### Step 6: Validate Completeness115116Before finalizing, run this checklist:117118- [ ] Every deliverable from Step 2 has at least one task assigned to it.119- [ ] No task has a duration estimate over 5 days — split further if so.120- [ ] No two tasks have identical or overlapping scope.121- [ ] Every task has a unique ID with no gaps in the sequence.122- [ ] All `Depends On` references point to existing task IDs in the same table.123- [ ] The task list, if executed in dependency order, would fully deliver the stated goal.124125## Examples126127### Good Pattern — Atomic, SMART Task128129```markdown130| T07 | Configure Dockerfile for Node.js API service | DevOps | 3h | not-started | T06 |131```132133- **Specific**: Exactly what is being configured (Dockerfile, Node.js API service).134- **Measurable**: Done when `docker build` succeeds locally and image starts correctly.135- **Assignable**: DevOps owns it exclusively.136- **Relevant**: Required for the deployment pipeline deliverable.137- **Time-bound**: 3 hours.138139### Bad Pattern — Vague, Non-atomic Task140141```markdown142| T07 | Set up infrastructure | DevOps | 2w | not-started | T06 |143```144145Problems:146- "Set up infrastructure" could mean 20 different things.147- 2 weeks is too long — no visibility into daily progress.148- No done condition defined.149- Untestable in a standup.150151**Fix**: Split into separate rows — configure Dockerfile (3h), write docker-compose.yml (2h), configure CI pipeline (4h), provision staging server (2h), write deployment runbook (2h).152153### Good Pattern — Complete Task Table154155```markdown156| ID | Task | Owner | Duration | Status | Depends On |157|-----|-----------------------------------------|-------------|----------|-------------|------------|158| T01 | Write OpenAPI spec for all 4 endpoints | Backend Dev | 4h | not-started | — |159| T02 | Scaffold Express app + folder structure | Backend Dev | 2h | not-started | T01 |160| T03 | Implement POST /register | Backend Dev | 4h | in-progress | T02 |161| T04 | Write integration tests for /register | QA Engineer | 3h | not-started | T03 |162```163164## Troubleshooting165166| Symptom | Cause | Fix |167|---|---|---|168| Tasks keep growing in scope during execution | Insufficient decomposition in Step 3 | Re-apply Step 3: ask "is this one person, one session?" — split if no |169| Cannot assign an owner because multiple teams are needed | Task spans team boundaries | Split at the team boundary; add a handoff or integration task |170| Duration estimates are constantly wrong | Tasks are not specific enough | Add explicit done conditions (acceptance criteria) to each task |171| Task list misses critical work | Deliverables not fully enumerated in Step 2 | Re-run Step 2 with domain experts; ask "what else must exist when we're done?" |172| ID references in "Depends On" don't exist | Tasks were renumbered after editing | Renumber sequentially after all tasks are finalized; use find-replace for IDs |173174## References175176- SMART criteria: Doran, G.T. (1981). "There's a S.M.A.R.T. way to write management's goals and objectives." — *Management Review* 70(11).177- Work Breakdown Structure (WBS): PMI PMBOK Guide, 7th Edition, Section 5.4.178- Agile task sizing: Mike Cohn, *Agile Estimating and Planning*, Chapter 5.