Verify the work

Verify the result

Use the right evidence for the change instead of accepting the agent's summary as proof that the work is complete.

At the end of a task, the agent writes a nice summary. Added validation, updated tests, all passing. It reads like proof. It’s a list of claims.

Verification is connecting each claim to evidence. Not all evidence is the same, so match it to the claim:

ClaimUseful evidence
The input rule worksFocused tests at the boundaries
The app still integratesThe relevant suite and a production build
The error is clear and visibleOpen the page at a couple of sizes
This API exists in our versionInstalled types or code, plus the primary docs
Nothing unrelated changedThe changed-file list and a focused diff review

One check rarely proves everything. A type check doesn’t prove authorization. A build doesn’t prove the page looks right. One happy-path click doesn’t prove the failure case is handled.

Look at the evidence, not the description of it

Read the test output, not just tests passed. Open the page, not just the screenshot filename. Look at the changed files and the diff, not just the agent’s description of them.

While you’re in the diff, look for scope drift: a new dependency, generated files, formatting churn, a refactor nobody asked for, behavior outside the request. A change can work and still be too broad.

Try one negative case

Happy paths usually work first. Exercise one failure, boundary, or abuse case that matters. For display-name validation, send an empty value and 51 characters. For authorization, try to read another user’s record.

Negative cases show whether the system fails safely and whether the rule lives at the right boundary.

Say what you didn’t check

A useful completion report looks like this:

Changed: server-side display-name validation
Evidence: focused request tests, full API suite, production build
Negative case: empty and 51-character names rejected
Diff scope: route and request test only
Not verified: browser error message, outside this step

An honest limitation like the payment sandbox was unavailable is valuable. It tells the next person what risk remains. Everything works with no matching evidence hides that risk.

I ask agents to end every task with a report in this shape. It changes how they work, too. It’s hard to write Evidence: next to something you didn’t check.

How much verification you need depends on what a mistake would cost. A typo needs a glance. A payment or access-control change needs the full list.

Lesson completed