Coding agents are good at bounded work and unreliable at open-ended work. JetBrains, describing how to use its agent on larger jobs, says agents "work best when they focus on a bounded unit of work, rather than trying to do everything simultaneously" (JetBrains). Hand an agent "build team invitations" and it will produce something. Whether that something matches what you wanted is luck.
Michael Brenndoerfer's guide to task decomposition shows what goes wrong when several subtasks are bundled into one request. The agent may "miss one of the subtasks entirely," work in the wrong order, or produce "a confused or incomplete response" (Brenndoerfer). His three tests for a good subtask are a useful start: it is specific, achievable with the tools the agent has, and ordered so later steps build on earlier ones.
For coding work, those tests become six concrete conditions. A finishable task:
- Has one goal that fits in a sentence.
- Touches a known, small set of files, ideally named in the task.
- Ends with a check the agent can run itself: a test, a command, or an observable behavior.
- Fits in one session with room to spare, so the agent never needs to summarize and continue mid-task.
- Produces a diff a person can review in one sitting.
- Leaves the system working, so the next task starts from green.
Long tasks fail in a particular way. A survey of long-horizon agent research by Zylos Research, read on 2026-10-17, describes models that, as a session fills up, begin "forgetting early results, re-executing completed steps, or becoming inconsistent about what has already been done" (Zylos Research). Small tasks avoid that problem rather than fight it.



