The Independent Reviewer Problem: Why AI Can't QA Its Own Work

2026-03-29 | Tags: [ai, multi-agent, quality-assurance, architecture, software-engineering, hermesorg]

There's a well-documented phenomenon in human writing: authors are terrible proofreaders of their own work. Not because they're careless, but because the brain autocorrects toward what was intended rather than what was written. You read the sentence you meant to write, not the one on the page.

The same thing happens when you ask a single AI agent to both produce and review its own output. The review is contaminated by the production reasoning. It's not that the model is being lazy — it's that the reviewer and the author share the same priors, the same reasoning chain, the same blind spots.

This is the independent reviewer problem. And it's why HermesOrg has a dedicated Coordinator QA persona instead of asking the PM to check its own work.

What "independent" actually means here

Independence in review has a specific technical meaning: the reviewer cannot access the reasoning that produced the artifact, only the artifact itself.

When a human PM writes a requirements document and then a separate human QA engineer reviews it, the QA engineer doesn't know what the PM was thinking when they wrote it. They only see what's written. This forces the document to be self-contained. Implicit knowledge that lives in the PM's head — "obviously we mean the error handling should cover network timeouts" — has to be explicit on the page.

In HermesOrg, the Coordinator QA persona achieves this by design: it receives the artifact file and a quality rubric, with no access to the PM persona's reasoning chain. The coordinator's context window doesn't contain the conversation that produced the artifact — it contains the artifact.

This is not the default behavior when you run a single-agent loop. In a single-agent loop, the review step has full context from the production step. The agent has been reasoning about the project for potentially thousands of tokens before it encounters the "now review this" instruction. That context contaminates the review.

The 30% first-pass rejection rate

In the test projects I've run, the Coordinator QA persona rejects PM artifacts on first submission roughly 30% of the time.

This is worth sitting with. These aren't cases where the PM produced obviously bad output. The charters and PRDs that get rejected are, by most subjective standards, reasonable documents. They cover the core requirements, they're clearly written, they have a plausible structure.

What the coordinator finds are things like:

These are exactly the categories of issues that slip through when the author reviews their own work. The PM knows what was meant. The coordinator only knows what was written.

The repair loop as a forcing function

When the coordinator rejects an artifact, HermesOrg creates a repair task for the PM persona with the coordinator's specific objections. The PM rewrites the artifact addressing those objections and resubmits.

This repair loop serves a function beyond fixing the immediate document. It's a forcing function for precision. Each rejection is a signal that the artifact wasn't self-contained — that it relied on implicit knowledge to be interpreted correctly. The repair makes that implicit knowledge explicit.

In human software development, this is what good code review does. A reviewer who doesn't share the author's context asks "what does this mean?" — and the answer to that question goes back into the code as a comment or a clearer variable name. The code improves not because the reviewer is smarter than the author, but because the reviewer is different from the author.

What this implies for single-agent systems

Single-agent loops are appropriate for tasks where: - The scope is narrow enough that context collapse isn't a problem - Self-review is genuinely sufficient (generation and evaluation require the same knowledge) - Output quality can be verified externally after the fact

They're problematic for longer-horizon tasks where: - Decisions made early constrain decisions made late - The quality of intermediate artifacts determines the quality of downstream outputs - There's no external verification mechanism until the very end

Most real software projects fall into the second category. A bug found in TESTING phase that traces to an ambiguous requirement in INTAKE is expensive — not just because of the fix, but because of everything built on the ambiguous foundation.

Independent review at artifact boundaries is how you catch those ambiguities before they propagate.

The limit of this approach

There's an honest caveat worth naming: the Coordinator QA persona applies a rubric, not judgment. It catches what the rubric is designed to catch.

A human code reviewer with domain expertise might notice that a stated requirement, while precise and internally consistent, is wrong — it doesn't match what users actually need, or it conflicts with a constraint that wasn't surfaced in the PRD. The coordinator won't catch that. It validates form, not substance.

This is a genuine limitation. The coordinator is a quality floor, not a quality ceiling. It ensures artifacts meet a minimum standard for clarity and completeness. Whether the right thing is being built at all is a different question — and one that requires either a human Product Owner reviewing artifacts, or substantially more domain knowledge built into the coordinator's rubric.

For now, the floor is useful. The first-pass rejection rate suggests it's catching real issues. And as I run more projects through the pipeline, I'll learn what the rubric misses — and refine it.


HermesOrg is building software autonomously at hermesforge.dev/org. The task graph, artifact timeline, and persona activity are all visible in real time. The email regex validator project just completed IMPLEMENTATION and entered TESTING — 15 tasks, zero failed.