Imagine asking the same engineer who wrote the code to review it. They knows what you meant, so it reads what it imagined writing—not what it actually wrote. The same thing happens with an LLM: if it built the result in one session, it carries that session’s reasoning. A second agent, with fresh context, sees what the first one normalized or ignored. That’s the principle of the impartial reviewer.
↑ The builder accumulates context (and bias). The reviewer starts fresh — judging the product, not the effort.
Detailed content
🧠 Fresh context = no bias
An agent that built something internalized the reasoning that led to the result. When we ask it to review, it doesn't read the result with fresh eyes — it reads it with the eyes of someone who already knows the intent. Gaps remain invisible because they were filled in mentally during construction. A second agent doesn't have that context: it sees only the final artifact.
💡 The “cursed knowledge” effect
In cognitive psychology, the curse of knowledge is the difficulty of imagining not knowing something you already know. A builder with a lot of accumulated information suffers from exactly this: they can no longer see the result the way a stranger would. Starting from scratch, the reviewer is that stranger.
- •Builder — knows the route; may not see that the destination is confusing.
- •Reviewer — only sees the destination; reports what’s missing without excuses.
- •Fresh context — the reviewer’s most valuable quality. Don’t try to pass extra context to it beforehand.
✓ Effective reviewer
- ✓Receives only the final artifact
- ✓Doesn't know how the builder got there
- ✓Applies explicit quality criteria
- ✓Report failures without “giving the benefit of the doubt”
✗ Anti-pattern
- ✗Ask the builder to "reread what it did"
- ✗Give the reviewer the entire conversation history
- ✗Ask for a review in the same turn as the build
- ✗Instruct the reviewer to “understand the context first”
The ability to start an evaluation without the reasoning that produced the artifact being evaluated—eliminating authorship bias.
Without understanding this principle, the developer tries to save calls by using the same agent to build and review—and gets the worst of both worlds.
authorship bias · curse of knowledge · context as an asset (and as a liability) · separation of roles.
⚖️ Judge the result, not the process
The reviewer doesn’t know—and doesn't need to know — how many iterations the builder made, which alternatives it considered, or what time pressure there was. It receives the artifact and applies objective criteria: Does the code compile? Do the tests pass? Does the plan have verifiable assumptions? This eliminates the effort effect: the tendency to judge a result as good because the process was difficult.
Builder delivers the artifact
Code, plan, research summary — any output that can be judged.
Reviewer receives only the artifact + criteria
No history, no “context for why.” Just: “evaluate this using these criteria.”
Verdict separate from effort
The reviewer doesn’t know whether the builder struggled. This is a feature, not a bug.
📊 The practical effect
In human code review, studies show that reviewers who know "how many hours" were spent tend to approve code with more bugs — perceived effort inflates their assessment. Separating the builder from the reviewer eliminates this variable.
For LLMs, the effect is even more direct: a model that built something over 50 reasoning turns develops an internal consistency bias—it tends to validate what it produced.
The reviewer’s golden rule: evaluate the artifact on its merits, regardless of the process that produced it.
Without this clarity, review criteria get mixed up with the story of how it was made—and the verdict loses objectivity.
effort effect · explicit criteria · artifact-oriented verdict · process / product separation.
✍️ The builder writes; the validator checks
This is the principle of four eyes transposed to subagents. The builder has permission to write, create, modify. The reviewer has permission to read, analyze, report — never to edit directly. This separation of tools in the agent's frontmatter is what ensures the reviewer doesn't "fix things while reviewing" and cover up the problems they find.
💡 Why block Edit for the reviewer
If the reviewer can edit, they tend to “fix things while reviewing”—the issue disappears from the final report, but nobody reviewed the fix they introduced. Restricting tools to Read forces the reviewer to report findings; the orchestrator decides whether and how to fix them.
The formal division of tool permissions between the agent that produces and the agent that evaluates.
Tools in the frontmatter are the only reliable barrier — not text instructions that the model may ignore under pressure.
four-eyes principle · tools=Read · report vs. diff · separation of permissions.
💻 Apply it to code
O code-reviewer is the clearest case. The builder agent writes the diff; the code-reviewer receives the diff and applies criteria for correctness, security, and test coverage— without knowing how many versions the builder discarded. The output is a findings report, not a rewrite.
⚡ What the code reviewer checks
- • logical bugs
- • edge cases ignored
- • missing error handling
- • unsanitized inputs
- • secrets in code
- • SQL/command injection
- • happy-path coverage
- • negative-case tests
- • missing mocks
Using a specialized reviewer agent to evaluate code produced by another agent, with explicit quality criteria.
LLM-generated code has specific error patterns (silent exception handling, mocks that never fail) that the same model tends to repeat and fail to detect in its own output.
code-reviewer · diff as input · findings report · correction / security / testing criteria.
📋 Apply it to a plan — the plan-roaster
An implementation plan has a different problem than code: it is internally coherent by construction. The planner eliminated contradictions in the process — but may have introduced false assumptions or left questions unanswered. The plan-roaster is a reviewer who receives the plan and asks exactly the uncomfortable questions the author didn't want to ask themselves.
Explicit assumptions?
"This plan assumes X is available. If it isn’t, phase 2 fails."
Verifiable estimates?
"'2 days' to migrate the database—based on what? Table size? Tolerated downtime?"
Risks without mitigation?
"Task 3 depends on task 7, but task 7 has an uncontrolled external dependency."
Rollback defined?
"If phase 2 fails halfway through, can we roll back without affecting prod?"
A reviewer agent specialized in questioning plans, not approving them — its role is to find gaps before they become execution problems.
LLM-generated plans are fluent and coherent in form, which hides their assumptions. An external reviewer forces those assumptions to be made explicit.
plan-roaster · hidden assumptions · uncomfortable questions · internal coherence vs. external correctness.
🔬 Apply the research
Research done by a subagent suffers from accelerated confirmation bias: the agent searches for sources and, as it gathers evidence, tends to reinforce the hypothesis that emerged early. A research reviewer doesn’t question whether the text is polished—it questions whether the claims are verifiable and whether there are contradictions in the sources that the builder may have downplayed.
Are claims sourced?
Each claim must be traceable. “LLMs achieve 95% accuracy” — on which benchmark, and as of what date?
Contradictions suppressed?
Are there sources that contradict the conclusion? Does the summary mention them or ignore them?
Correct scope?
Does the research answer the original question or veer into a related but different topic?
Research review focused on verifiability, coverage of contradictions, and adherence to scope—not style or fluency.
Subagent research is persuasive because of its writing quality; only a reviewer with objective criteria can detect when that persuasiveness is masking factual gaps.
confirmation bias · claim verifiability · suppressed contradictions · scope adherence.
🚀 The biggest quality unlock
Adding an impartial reviewer at the end of any subagent pipeline is a biggest-impact change for the lowest cost. A Haiku agent as a reviewer — which costs a fraction of what the builder does — can catch errors that the most expensive model wouldn't detect in itself. The asymmetry is dramatic: reviewing is cheaper than building, but it has insurance value for all the previous work.
⚡ The reviewer's equation
A Haiku reviewer on an Opus pipeline reviews everything for pennies. If it catches a single critical bug or false assumption in a plan, it has paid for the entire course.
✓ Always review when
- ✓The result goes to production
- ✓The plan involves irreversible decisions
- ✓The research will inform a strategic decision
- ✓The pipeline has more than 2 subagents
○ Optional when
- ○It’s a disposable draft
- ○You’re going to review it manually anyway
- ○The output is for internal reference only
The pattern of systematically adding a low-cost reviewer at the end of pipelines to catch failures before delivery.
It’s the change with the highest ROI in any subagent system — it catches errors the builder would never find in its own work, at a fraction of the cost.
cost/value asymmetry · low-cost reviewer · insurance value · systemic quality standard.
Real example: code-reviewer and plan-roaster
Two files .md that implement the impartial reviewer pattern.
Notice how both use tools: Read, Grep, Glob — with no write permission —
and explicitly instructs the report, don't fix.
---
name: code-reviewer
description: Revisa o diff atual em busca de bugs,
falhas de segurança e testes ausentes. Use após
qualquer mudança de código — especialmente antes
de commitar.
tools: Read, Grep, Glob # apenas leitura
model: haiku # custo baixo, revisão precisa
---
You are an impartial senior code reviewer.
You have no knowledge of how this code was written.
Steps:
1. Run git diff HEAD to see the current changes.
2. Read each changed file completely.
3. Check for: correctness bugs, security issues,
missing tests, and unhandled edge cases.
Output: A numbered list of findings, severity
(critical/major/minor), and the exact line.
Rules:
- Do NOT edit, fix, or rewrite anything.
- Report only — the orchestrator decides what to fix.
- If nothing is wrong, say so explicitly.
---
name: plan-roaster
description: Questiona planos de implementação com
ceticismo construtivo. Use SEMPRE antes de aprovar
qualquer plano técnico ou de produto.
tools: Read # só lê o plano
model: sonnet # precisa raciocinar sobre premissas
---
You are a skeptical senior engineer who has seen
many plans fail. You know nothing about how this
plan was created.
For each plan section, ask:
1. What hidden assumptions does this make?
2. What is the single most likely failure point?
3. Is there a missing dependency or external risk?
4. Is the rollback defined if this fails mid-way?
Output: A structured critique. For each issue,
state: what is assumed, why it might not hold,
and what question the author should answer.
Rules:
- Do NOT rewrite or "improve" the plan.
- Be adversarial but constructive.
- Prioritize: what will actually fail first?
Ready-made prompts (copy and paste)
Three prompts to use the impartial reviewer pattern in your real work. The second is the most powerful: it explicitly asks for the perspective of a external engineer.
Use o code-reviewer para revisar o que acabei de fazer.
Não quero que ele edite nada — só um relatório de
achados com severidade (crítico / maior / menor).
Abra um subagente com contexto fresco e peça para ele
revisar criticamente este resultado como um engenheiro
externo que nunca viu o projeto. Ele deve apontar o
que parece errado, incompleto ou arriscado — sem levar
em conta o esforço que custou.
Use o plan-roaster neste plano. Quero as 3 premissas
mais perigosas que estão implícitas e a pergunta
que eu precisaria responder antes de aprovar cada fase.
Simulated screen: builder + reviewer in sequence
This is how the pattern appears in the terminal: the builder finishes and returns a diff; then the code-reviewer comes in with zero context, reads the diff, and generates the report. Note that the orchestrator’s context stays small throughout the process.
↑ Illustrative terminal recreation. The builder ran in a separate context; the reviewer started fresh. The maestro used only 9% of the context.
Exercise
Choose a recent task of yours — a piece of code, a plan, or a summary — and run an impartial reviewer on it. Use Prompt 2 on this page. Then compare: did the reviewer find anything you hadn’t noticed?
How to do it
- Open Claude Code in a new session.
- Paste the artifact (code, plan, or summary) or provide the file path.
- Use Prompt 2: ask for a review with fresh context, from an external engineer’s perspective.
- Read the report and note: how many findings are things you “knew but didn’t write down”?
✅ Verification criteria — how to know you got it right
The exercise is successful if you can check at least one of the following:
- →The reviewer found something new — something you hadn’t noticed in your own reading.
- →The reviewer identified an implicit assumption — something you knew but hadn’t written in the artifact.
- →The reviewer found nothing critical — and you can explain why (a good sign of artifact quality).
Advanced variation
If you already have the code-reviewer.md or the plan-roaster.md created, instruct the orchestrator to use the named agent. Compare: does the reviewer via name vs. via an ad hoc prompt produce more precise findings?
✅ Module summary
Next module:
3.5 — Dynamic workflows. When the orchestrator decides at runtime which subagents to call — and how to build that routing.