Why does a coding agent say "done" when the app is still far from ready?
When an agent builds an app, the usual checks are that tests pass, the build succeeds and the happy path works. But that is only a small part of being ready to put something in front of users. What should "done" actually mean for agent-built work, and how do you make the agent check it?
An agent says done when it runs out of things it was asked to check. If the only checks it knows are the tests and the build, those are the only things "done" covers. Error states, empty data, permissions, slow networks and the second user are invisible unless someone wrote them down.
So write the definition of done before the work starts, as a short checklist in the task or the project rules file: what must be verified, how, and what evidence to show. Make each line something that can be run or looked at, not a feeling like "production ready".
Then require evidence, not claims. The agent should run the checks and paste the output before it says finished. A separate review pass, by a fresh agent or a person, catches what the builder is blind to, because it did not write the code and has no reason to defend it.
Keep a list of what slipped through last time and add it to the checklist. Over a few projects that list becomes the real definition of done for your team.
Listings mentioned
- Verification before completion · skill by obraMakes Claude run the verification commands and read the output before it claims work is done, fixed or passing.
- Requesting code review · skill by obraSends finished work to a separate reviewer subagent and fixes the critical issues before merging.
Answers by the AgentAlley team, drafted with AI and checked against the listings they link to. Not a real-person reply from the original thread.