Break a complex job into tool-sized subtasks — scope, sequence, and verify each one, and decide whether to do it inline, delegate to a subagent, or wire a fixed workflow. Triggers whenever a task needs more than a few tool calls, the plan is unclear, or a big job should be split across agents.
./install.sh agent-task-decompositionname: agent_task_decomposition description: Break a complex job into tool-sized subtasks — scope, sequence, and verify each one, and decide whether to do it inline, delegate to a subagent, or wire a fixed workflow. Triggers whenever a task needs more than a few tool calls, the plan is unclear, or a big job should be split across agents.
Turn "do this big thing" into a set of tool-sized subtasks: each one scoped to a single action, ordered by dependency, assigned an execution mode (inline, subagent, or fixed workflow step), and paired with a concrete way to verify it worked. The point is not more process — it is fewer dead ends: Anthropic's standing guidance is to use the simplest approach that works and add complexity only when it demonstrably improves outcomes.
Read the task and pick the smallest execution mode that fits:
| Mode | Use when | Shape | |---|---|---| | Inline | A handful of tool calls, all in one context, sequential | Just do it yourself, step by step | | Fixed workflow | Steps are knowable up front and repeatable | Code or written procedure: chaining, routing, parallel batches | | Orchestrator-workers | Subtasks can't be predicted until you start (e.g. coding across unknown files, research across unknown sources) | You decompose dynamically, dispatch subagents, synthesize | | Autonomous loop | Open-ended; can't even name the steps; needs ground-truth feedback each turn | One agent looping on tools until done, with a stop condition |
Rule of thumb: most tasks need one agent, often zero. Multi-agent delegation costs roughly 3–10× the tokens of an equivalent single-agent approach (duplicated context, coordination messages, handoff summaries — Anthropic's own measurement). Pay that only when a specific constraint demands it.
A subtask is tool-sized when it passes all three tests:
Split by context boundary, not by phase. "Research → Write → Edit" is a phase split — each handoff loses context. "Auth module (design + tests + edges)" vs "API layer (contracts + validation)" is a domain split — each chunk is self-contained in one head. Phase splits create handoff failures; domain splits survive them.
Map the subtasks onto a dependency order:
Cheap trick: write the plan down (a scratch file, a checklist) before executing. Externalizing the plan protects you when context grows — re-read it instead of re-deriving it.
Delegate to a subagent only when one of these three holds:
If none of the three holds, do it inline. Especially do not delegate when subtasks share the same context, are tightly interdependent, or each need the full picture — coordination costs will exceed any benefit.
How to brief a subagent (this is the part most people skip): give it a self-contained brief — objective, expected output format, which tools to use, explicit boundaries (what NOT to touch), and its done criteria. Vague delegation produces vague work. Ask for a summary back, not a full trace: the distilled findings plus file paths or references, not a play-by-play.
Every subtask gets a done criterion defined before execution — not "looks good," but:
For work that improves with iteration, use the evaluator-optimizer loop: one pass generates, a separate pass (yours, or a critic prompt) evaluates against explicit criteria, and you iterate. Two signs it fits: human feedback demonstrably improves the output, and the evaluator can articulate useful feedback. Otherwise, one careful pass beats three sloppy ones.
Stop conditions. Any loop gets one: max iterations, a "good enough" threshold, or a time box. A loop without a stop condition is a liability.
When you use this skill on a job, produce a decomposition plan before executing:
GOAL: <one sentence — the finished state>
MODE: <inline | fixed workflow | orchestrator-workers | autonomous loop> (+ why)
SUBTASKS:
1. <verb + target> — [parallel with: 2,3 | after: —] — mode: inline
DONE WHEN: <checkable criterion>
2. <verb + target> — mode: subagent
BRIEF: <objective, output format, tools, boundaries>
DONE WHEN: <checkable criterion>
WHY SUBAGENT: <context pollution | parallelism | specialization>
VERIFY: <how the assembled result gets checked against ground truth>
STOP: <iteration cap / good-enough threshold>
The plan is a working document: re-plan from results after each wave when the shape of the work is unknown.
Job: "Decide whether to add variable stake tiers to the game platform before Friday's demo."
Pattern details and the decision rubric live in references/.
publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.