Define Done First, and Make It Machine-Checkable
Say what counts as done before you start, and prefer things a machine can check: tests green, artifacts present, clean diff.
A lot of vibe coding falls apart like this: AI finishes and says "done," you look and it's way off, so you fix it; then AI says "done" again, and again it's way off—you've become the tester. The fix is one thing: don't wait until it's done to set the standard; define "done" first and have AI work toward it. anthropic-sdlc
After reading, you should be able to answer:
- Why must "how far counts as done" be said before starting?
- What do machine-checkable done criteria actually look like?
- How do you avoid being fooled by "it's done"?
How specific should done be
"Done" alone is useless; make it verifiable:
- What the feature should look like when open, and what the user can do
- Which cases must pass, written as tests
- Which boundaries are out of scope, written into the not-doing list
The more specific the standard, the less AI drifts, and the less time acceptance takes.
Machine-checkable done criteria
What can go into tests, builds, and scripts shouldn't rely on talk:
| Criterion | How to check |
|---|---|
| Feature behaves correctly | tests pass |
| It builds and runs | build succeeds, artifact present |
| It didn't break something else | old tests still green, clean diff |
| No obvious problems | review + static check pass |
These are evidence of "done or not," not the mouth of "AI says it's done."
How to accept without being fooled
The acceptance mantra: look at the evidence, not the claim. "It's done" is only a claim; what you want is evidence—test output, build logs, artifact path, and diff content vibe-report.
- Have AI run the tests and paste the output
- Have AI give you the artifact path and confirm it exists
- Go through the diff item by item, especially files AI changed that you didn't authorize
Across systems and teams there is one more layer: "operation succeeded" only means the command was issued. Acceptance evidence must come from the system that owns the resource, judged by what the user ends up seeing — who produces the evidence and how it is counted: The Organization Is the Human Harness.
"Define done first, and make it machine-checkable" is what makes "manage the intern" actually land in vibe coding. With the standard set, lock the rules into a project file so AI stays in line: the AGENTS project contract.
