Here's the pattern I kept hitting: an AI agent finishes a task, runs its own tests, and declares victory. Then I open the result and it's… fine. Not broken. Not good. Just fine. The agent graded its own homework and gave itself an A.
Your agent is a yes-man
Self-review doesn't work. Ask an agent to critique its own output and it rubber-stamps — it finds one spacing nit, says "looks good", and stops. Green tests are the worst trap: they prove the code you wrote passes the tests you wrote. They say nothing about whether the thing is any good.
The gap between "it runs" and "it's good" is where most AI-assisted work dies. I needed a ritual that closes that gap on every deliverable, not just when I happened to remember to check.
The loop
After every deliverable, I fan out independent critics instead of asking the producer how it went:
Inspector — finds defects. Machine checks first, then an adversarial read.
Comparator — fetches two or three real, best-in-class examples from the wild.
Evaluator — scores the deliverable against a rubric, blind to who made it.
Then: aggregate the critiques, triage them by severity, fix the accepted ones, re-check, and recurse. The rule that makes it work is that nobody reviews their own work — the critic who finds a problem is never the one who decides the fix is good.
Compare against real life
A critique without a reference is a vibe. "Make it pop" isn't actionable. "Here are three shipped products that do this well, and the specific spacing, type, and depth they use" is. The comparator's whole job is to drag the deliverable out of the agent's own head and hold it next to something a real person shipped.
Severity, not feelings
Every critique gets a tier. P0 blocks — it breaks correctness or safety. P1 should fix — a real gap against the reference. P2 is polish for the backlog. P3 is a nit and never blocks. "Done" gets a definition: zero open P0/P1, and the evidence gates actually met.
"0 flow" sounds mystical. It isn't. It's a state you can check — no blocking critiques remain, and the comparison against a real example carries an at-or-above-bar score.
What breaks
Three failure modes to watch. Fabricated comparisons — a made-up "competitor" is worse than none. Vague critiques — reject anything without a location, a severity, and a fix. And the self-enhancement trap — a judge model grading the same model that produced the work; log the model IDs and route those comparisons to a different judge.
And cap it. Five rounds, then an honest "cap-hit, here's what's unresolved" beats a fake pass every time.
The bar isn't "it works". The bar is: an independent critic, comparing against the best thing a real person shipped, found nothing blocking. That's when I ship.