I stopped letting my AI agents approve their own work
For months the setup was simple. One agent drafts, I skim, it ships. Fast, and wrong more often than I admitted. Invented numbers that read fine. A file quietly moved out of the folder it was told to stay in. "Looks good" at the end of every run.
Now every batch has a second agent with one job: refute. It has to open every file the first one cited, run the tests, and find at least one real problem before it may say anything else. A finding that two reviewers hit gets promoted a level. The output is block, concerns or clean, with the line of evidence.
What you get when you add one:
- Silent errors caught before you see the output: invented numbers, moved files, skipped tests.
- Your own bias checked. The reviewer reads the files bottom up, so it does not inherit the drafter's story about what the code does.
- A verdict you can act on. Block, concerns or clean, with evidence, instead of a paragraph of praise.
- Fewer things built twice. Two of my nine "we need this" calls that day were flipped to "we already have it".
- Time back. One extra agent run per item, and it saves me the hour I used to spend finding what it finds.
That day's batch: seven deliverables drafted, fifteen forced fixes before I accepted any of them. Nothing shipped on the first draft.
If you run agents on real work, the question worth answering is this: who, in your setup, is allowed to say no?