Three different builders filed the same bug this week. An agent finished a run, reported "success," and had changed nothing. A coding model flagged its own mistake mid-build, and the person watching still didn't believe the self-report. A third agent handed its boss a signup link that didn't exist and called the job done. Different tools, different failures, one shape: the thing that produced the work also graded the work, and the grade was worthless.

The reflex fix is obvious and wrong. Reach for a smarter model. Or, if you've been building agents for a while, deputize a second instance — a "Manager" model whose job is to check the first one — and let it sign off. Both moves feel like verification. Neither is. A model checking its own output, or a same-family model checking it, brings the same blind spots to the inspection that it brought to the work. It doesn't catch the error because it can't see the error. It never could.

This matters more now because we're handing agents longer tasks with fewer humans in the loop. When a run touches twenty files or books a real appointment, "it said it worked" is the only signal most pipelines have. If that signal is a model grading its own homework, the pipeline is trusting the least reliable witness in the building — the one with a motive.

The whole value of a verifier is that it's not the thing being verified

A verifier's entire value is its independence from the thing it verifies. That's not a nice property. It's the whole property. An auditor who reports to the CFO isn't an auditor. A referee playing for one side isn't a referee. The instant the checker shares an interest, a training set, or a failure mode with the thing being checked, the check stops meaning anything.

A self-report of success is worth nothing. Not "less" — nothing. And the research on why is blunter than the intuition.

Same data, same mistakes

The measured reason self-checks fail has a name: correlated errors. Models built on overlapping data and convergent training don't fail randomly — they fail together, in the same places, for the same reasons. One line of work this year showed that when errors are correlated, the ceiling on what an ensemble can fix is capped hard; you can stack more checkers and barely move the number. A replication on code found that model ensembles captured less than half the reliability gain that genuine independence would have delivered — the models kept missing the same bugs in unison. A separate audit found that naively combining diverse models beats the single best model in only a small fraction of cases.

Read those together and the conclusion is uncomfortable for anyone hoping a second pass will save them. If the second pass shares the first one's blind spots, it isn't a second pass. A model grading its own output is the degenerate case — perfect correlation, zero independent information. It isn't a weak check. It isn't a check.

There's a quieter bias stacked on top. Models asked to judge their own work tend to prefer it. The self-grader isn't just blind to its errors — it's mildly in love with its answers. That's the "Manager model rubber-stamped it" bug, restated as a known property instead of a surprise.

What actually clears the bar

The counter-evidence points the same direction from the other side. The cleanest positive result this year on making AI answers trustworthy wasn't a bigger model. It was a peer-reviewed fact-checking system where several models debate and a separate judge — not one of the debaters — decides the verdict. On checkable fact-checking tasks, that arrangement beat the strongest single fine-tuned model built for the job.

The word doing all the work in that sentence is separate. The judge isn't a debater. The verifier isn't the thing it's verifying. That's the exact property a model marking its own homework can never have, no matter how large it gets.

Independence has to be built in, not bolted on

This is the part a single model can't fake. Independence isn't a setting you toggle — structurally, there's only one mind in the room, and it agrees with itself. You get independence by putting a different model, from a different family, on the same question, with the explicit job of attacking the confident answer instead of nodding at it. That's what Red Team vs. Blue Team is for. You get it by keeping each step's reasoning legible enough that a separate reader can catch the fabricated link before it ships — that's what Round Robin and Collaborative Editing buy you. And you get it by ending on a synthesis layer that judges the disagreement rather than letting the producer sign its own approval — a Chairperson deciding, not the author grading itself.

None of that is a feature list. It's the only shape verification can take once you accept the premise: the grader can't be the thing being graded.

The builder whose "Manager model" rubber-stamped an empty run and the quiet papers on correlated errors are describing the same thing from opposite ends of the room. A checker that shares the producer's blind spots isn't a checker. It's a second opinion from the same person.

The checker can't be the thing it's checking. The fix was never a smarter grader — it's a grader that isn't the one being graded, and a council makes that independence structural instead of hopeful.

Try it free — no signup. shingik.ai