← Back to posts

Make your agent review its own work before you push

Fanning out parallel reviewers catches confident wrong answers. It also produces confident wrong findings.

July 22, 2026 · 2 min read

At the end of a session, before I push, I tell Claude to "fan out."

That launches a set of reviewers in parallel instead of one. Different lens each: correctness, blast radius, test coverage. Separate contexts, so they never see each other's conclusions. Everything they raise then goes to a second round of agents whose only job is to refute it. Survivors reach me.

Last run: 52 findings, 34 survived refutation, 3 blocking. Two of the three I'd written that afternoon.

Best one: a function deciding where to file a note ran a semantic search and took the top hit. hit.score was never read. No threshold either, so "top hit" means least-bad row in the table. With one candidate in the database it returns a 0.1 match happily. A workout entry lands in a reading list, and the assistant reports success. Nothing throws. Every test passes, because there were no tests on that function.

That's the class it's good at. Confident wrong answers.

The catch: two reviewers told me tasks were losing their due dates. The field was missing from the tool call. It's missing because it gets written later, by a different step. Every stored row was correct. I'd counted the second reviewer as confirmation of the first, but agents sharing an assumption agree by construction. Two rounds lost to a bug that never existed.

So: a reviewer reading what your code was asked to do is not reading what happened. For anything written async, make it query the stored row.

I still fan out every session. It finds something every time, which is exactly the thing I can't calibrate. A process that always returns a list will return one whether or not there's anything there.