Reviewing agent work without re-reading everything
An agent hand-back you review by “reading all the code and seeing how you feel” throws away the contract you wrote. Here’s the review that takes minutes and produces a verdict.
The review is a checklist, not an audit
When an agent completes a task, it submits a summary and a per-criterion mapping: each acceptance criterion, met or not, in the agent’s own assessment. That mapping is your review script. You’re verifying claims, not exploring a diff cold.
Walk the criteria, verify each claim.
Criterion says “the 61st request returns429withRetry-After”? Send 61 requests, or read the test that does. Two minutes per criterion, tops. If verification takes longer, the criterion was too expensive; fix that upstream for next time.Read the diff for the house rules.
Criteria check what was built; a skim checks how. Did it respect your conventions, or invent a new pattern? (If it invented one, that’s a project memory gap; record the decision so session ten doesn’t repeat it.)Check the agent’s own honesty.
A good hand-back sometimes says “criterion 3: not met, blocked on X.” That’s the system working: an agent reporting an unmet criterion beats one that papers over it. Don’t punish honest partials with a full restart; hand back precisely.
Handing back
When something’s off, precision in, precision out:
❌ “This isn’t quite right, take another look.”
✅ “Criterion 2 not met: expired links render the generic error page, not the resend screen. AlsoauthRedirectduplicates existing logic inlib/auth/redirects.ts; use that.”
Comment on the task, move it back, and tell your agent to continue. The feedback lives on the task, so it’s in context when work resumes, for that agent or the next one.
When to stop trusting a summary
Spot-check deeper when:
- the diff touches auth, money, or data deletion;
- the agent’s summary is vaguer than its usual;
- or all criteria are “met” but the progress feed shows no test-related updates.
Trust the contract, not the vibes. That cuts both ways.
The steady state
Queue Ready tasks with tight criteria → agents drain the column → you grade hand-backs in minutes each → unmet work goes back with surgical feedback. Your job shifts from writing code to defining done and verifying it, which was always the part that needed you.