8 min read

Breaking Down Projects

Decomposing Large Projects into Agent-Sized Work

The biggest bottleneck in AI-assisted development isn’t the speed of individual agents — it’s the quality of task decomposition. Breaking a project down well is the difference between agents that deliver exactly what you need and agents that produce work you need to redo.

The Right Size for a Task

An agent-sized task has four characteristics:

Focused — It touches one area of the codebase or addresses one concern. Tasks that span multiple unrelated systems are hard for agents to reason about.

Completable — An agent can start and finish it in one session. Tasks that require multiple feedback loops or long-running external processes don’t fit the agent execution model well.

Verifiable — You can tell when it’s done. “Fix the login bug” is verifiable; “improve the codebase” is not.

Independent — It doesn’t depend on the output of a task that hasn’t been dispatched yet, unless you’ve explicitly modeled that dependency.

Decomposition Strategies

Layer decomposition — Split work by architectural layer: data model first, then business logic, then API, then UI. Each layer is a separate task with a clear dependency chain.

Feature slice decomposition — Split by vertical feature slice: each task implements one end-to-end capability. Good for features that need to be demoed incrementally.

Risk-based decomposition — Do the riskiest, most uncertain work first in its own task. If it fails or requires rethinking, you haven’t built a pile of dependent tasks on a broken foundation.

Modeling Dependencies

When tasks depend on each other, make those dependencies explicit in the task description. For example: “This task assumes the database migration in Task #12 has been completed and the users table includes an oauth_provider column.”

Explicit dependencies help agents avoid making assumptions, and help you sequence dispatch correctly.

Common Decomposition Mistakes