CDX-201c · Module 1
Task Decomposition Strategies
4 min read
Effective task decomposition is the single most important skill in multi-agent orchestration. The goal is to split a large task into units that are independent (no shared state), complete (each produces a usable artifact), and mergeable (outputs can be combined without conflicts). Three decomposition strategies cover most scenarios: by module (each agent owns a directory or package), by concern (one agent writes code, another writes tests, a third writes docs), and by phase (one agent plans, another implements, a third reviews).
Module decomposition works best for monorepos and large codebases where different packages have minimal coupling. Concern decomposition works when the concerns genuinely do not overlap — the test writer needs the implementation as input, so this is sequential, not parallel, unless the test writer works from a spec rather than the implementation. Phase decomposition works for complex tasks where planning, implementation, and review benefit from different model capabilities.
# Decomposition strategies
1. BY MODULE (parallel)
Agent A: Refactor apps/auth/
Agent B: Refactor apps/payments/
Agent C: Refactor apps/users/
✓ Independent — different directories
✓ Parallel — no shared files
2. BY CONCERN (sequential or spec-parallel)
Agent A: Implement the feature
Agent B: Write tests (after A, or from spec)
Agent C: Write documentation (after A)
✓ Clear deliverables per agent
⚠ Sequential unless B/C work from spec
3. BY PHASE (sequential)
Agent A: Plan the architecture (o3, high reasoning)
Agent B: Implement the plan (codex-1, fast)
Agent C: Review the implementation (o3, high reasoning)
✓ Each phase uses the optimal model
⚠ Strictly sequential — each needs prior output
- List all deliverables Write down every file, test, and artifact the task needs to produce. This is your decomposition inventory.
- Group by independence Cluster deliverables that share no files. Each cluster is a candidate for a parallel agent.
- Identify dependencies For clusters that depend on each other, determine the dependency order. These must be sequential, not parallel.