Apply to my task
arXiv:2608.16003 ★ 76 Aug 17, 2026

The Lenient Reviewer Effect: An LLM Finds Fewer Errors After It Has Just Checked and Fixed Something

Key result

The model caught a real bug in the code, fixed it, and immediately started judging the next, completely unrelated chunk of code in the same chat more gently. This finding explains why a series of back-to-back reviews (five pull requests, ten contracts, chapter after chapter) yields increasingly easygoing verdicts, and it lets you stop that vigilance leak in time. It's not about the model's intelligence, it's about the trigger threshold: the ability to tell a bug from a non-bug doesn't change at all, but the willingness to flag a problem drops by 3-11 percentage points after a single "found it, fixed it" cycle.

01

TL;DR

If a language model has just found and fixed an error in one text, then on the next text, a completely different one with no connection to the first, it becomes less suspicious and reports problems less often. The effect lives in the history of a single conversation: the mere fact of "I checked → found → fixed" sitting in the context changes how the model reviews the next piece of text, even though the tasks don't overlap at all.

Logic suggests the opposite: since the model just caught a real error, it should stay on guard. Instead, the more "negative" the previous episode was (the model actually found and fixed a bug rather than just saying "all good"), the more lenient it is on the next item. The false-alarm rate drops by 3–11 percentage points across virtually every model and instruction wording tested.

The cause isn't that the model got better at telling right from wrong (its ability to discriminate doesn't change at all). What shifts is the threshold at which it decides to flag a problem. After a "check-and-fix" cycle, the model simply speaks up less often when it's unsure; it becomes more tolerant of questionable spots.


How the Effect Works

CONVERSATION (one chat):
Step 1: The model checks text A → finds an error → "fixes" it
       (this episode stays in the chat history)
   ↓
Step 2 (same chat): The model checks text B — a DIFFERENT one, unrelated to A
   ↓
RESULT: the model finds fewer problems in text B
than if it had checked it "from a clean slate" in a new chat

Example in Practice

Task: A team lead asks Claude/ChatGPT, in one chat, to review five pull requests in a row for bugs.

Prompt (the way people usually do it):

Check this code for errors: [code 1]

[the model finds an error and suggests a fix]

Thanks, now check this code: [code 2]

[the model reviews code 2 in the SAME chat]

Result: the review of code 2 (and of everything after it in this chat) will be noticeably softer than the first. The model doesn't get dumber (its ability to tell a bug from a non-bug doesn't change), but it reports bugs less often. The real danger: the team lead gets a "green light" on a PR with a bug because the model already "spent" its vigilance on the first case.

The same goes for grading several essays in a row, proofreading several chapters of a book, auditing several contracts, reviewing several resumes: any workflow where you ask an AI to check a series of similar, independent items in one conversation.


Why It Works

An LLM isn't a calculator with a fixed "error / not an error" threshold. The decision to "flag the problem or stay quiet" depends on the entire context of the conversation, even if the new task has nothing to do with the previous one. Models are good at picking up the overall tone and "mood" of a conversation; that's a strength that helps keep a dialogue coherent. But that same sensitivity to context becomes a weakness in the reviewer role: having closed one case ("found it, fixed it"), the model implicitly slips into "everything's fine" mode and carries that mood over to the next, completely different review.

An important detail from the study: an explicit instruction to "be more lenient" affected the model less than this hidden context effect. That means conversation history can override direct commands, a lever few people think about when building a chain of requests.

Control lever: if consistent strictness at every step is critical for you, don't let "check-and-fix" history pile up in the context.


Practical Recommendation (Instead of a Prompt Template)

Since this isn't a step-by-step technique but a warning about model behavior, here's a working trick to soften the effect:

Before reviewing a new, independent text:

"Evaluate the following text from scratch, as if it were the only document in this conversation.
Ignore the results of previous reviews in this chat —
treat every point as if you're seeing it for the first time.

{text to review}"

But the most reliable fix is a habit, not a technique: open a new chat for each independent review instead of building a "checked one, now checking the next" chain in a single conversation. That removes the effect completely, because it lives entirely in the message history.

🚀 Quick start — if you still work with several reviews in one chat:

I need one assistant to check several independent texts/code snippets for errors.
Help me write a prompt for each review so that the results
of earlier reviews in this chat don't affect the strictness of the next one.
Here's an example task: {your task}

Limitations

⚠️ This is a threshold shift, not better reasoning: the model doesn't get better at telling correct from incorrect; it just flags problems less often. If its original judgments were well calibrated, the same effect will lead to missed real errors, not just fewer false alarms.

⚠️ Whether the effect helps is an accident of the specific task: in this study the softening turned out to be handy, because 82% of the filtered-out "false alarms" were the model's own baseless complaints (it was nitpicking for no reason). In your task, the model's original objections may be far more justified, and then the softening will hurt.

⚠️ Tested only on step-by-step math solutions: the mechanism (conversation history shifting the threshold) is most likely universal, but the study offers no direct evidence for reviewing code, texts or contracts.


How They Studied It

The researchers took ProcessBench, an existing set of step-by-step math solutions labeled by humans as correct or containing an error. Three models (Qwen3.6-27B, Qwen3.6-35B-A3B, Ministral-3-14B) were asked to verify solutions that were definitely correct, so any "found error" was a false alarm by definition.

Before the main check, a completed "check → fix" episode on a different, entirely unrelated text was mixed into the context, and the results were compared with several control groups: the same text length without an audit, an audit without a fix, and an audit with an "empty" continuation instead of a real fix. Five different instruction wordings were tested to make sure the effect wasn't a fluke of one phrase.

The key design trick: they measured not just the false-alarm rate but also the ability to distinguish genuinely wrong solutions from correct ones (via signal detection analysis from perception psychology). That let them separate two explanations: "the model got smarter" versus "the model just stopped complaining." It turned out to be the latter: discrimination ability didn't change on any model, while the threshold shifted on all of them. A manual review of 50 false alarms showed that 82% of them were genuinely unfounded nitpicks by the model, so in this experiment the softening turned out to be more of a useful side effect than a bug.


Resources

"Prior Audit–Repair Context Shifts LLM Verifier Thresholds Toward Leniency", Parsa Mazaheri (UC Santa Cruz), Kasra Mazaheri (MIT). Code and artifacts: github.com/parsa-mz/crtitxer. Related work: Temkit (2026) on ratings shifting toward the polarity of the preceding conversation, Zhou et al. (2026) on controlling verifier strictness on the same ProcessBench benchmark.

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

Research digest

Key result

The model caught a real bug in the code, fixed it, and immediately started judging the next, completely unrelated chunk of code in the same chat more gently. This finding explains why a series of back-to-back reviews (five pull requests, ten contracts, chapter after chapter) yields increasingly easygoing verdicts, and it lets you stop that vigilance leak in time. It's not about the model's intelligence, it's about the trigger threshold: the ability to tell a bug from a non-bug doesn't change at all, but the willingness to flag a problem drops by 3-11 percentage points after a single "found it, fixed it" cycle.

Principle

What decides it here isn't logic but the mood of the conversation. Models are good at picking up the overall tone of a conversation, a strength for coherent dialogue. But after closing one case with "found it, fixed it," the model implicitly switches into "everything's fine" mode and carries that complacency over to the next, completely unrelated review. The kicker: an explicit "be more lenient" command had a weaker effect on the model than this hidden chat-history effect.

Why it works

An LLM isn't a calculator with a fixed "error/not an error" bar. Whether it flags a problem or stays silent depends on the whole conversation context, even when the new task has no overlap with the previous one. The wild part: hidden chat history overrides a direct instruction — the prompt "judge more leniently" worked less strongly than the mere fact that "I already fixed something" five turns earlier. In this experiment, 82% of the model's filtered-out nitpicks were bogus anyway, but that's an accident of this particular task, not a guarantee for any other.

When to apply

Code review of a series of pull requests, proofreading book chapters, auditing a batch of contracts, a stream of resumes → especially when every review must be judged equally strictly, regardless of order. The takeaway doesn't apply to a single isolated review: the effect depends solely on the "check-and-fix" history accumulated in the chat. Tested only on step-by-step math solutions; for code and text this is still an extrapolation, not a fact.

Mini recipe

1. Split your chats: every independent review gets a new conversation with zero history, with no trail of previous fixes. 2. If the chat is shared: explicitly ask the model to "evaluate from scratch, as if this were the only document in the conversation, and ignore previous reviews." 3. Double-check what's critical: run an important PR or contract separately in a fresh chat as a control. 4. Keep the limitation in mind: the softening can swallow real bugs, not just false nitpicks, so verify results by hand, at least on a sample.

Examples

[BAD]: `Check this code for errors: [PR1]` — the model finds and fixes a bug — then in the same chat: `Now check this code: [PR2]` [GOOD]: open a new chat for PR2, or write: `Evaluate the following code from scratch, as if it were the only document in this conversation. Ignore the results of previous reviews in this chat: [PR2]`

In plain words

Large language models have a weird bug in their "heads": they can't reset their expectations. When you ask a model to check a text for errors, it doesn't just compare it against the rules; it adapts to the overall vibe of the conversation. If the model has just found a screwup and successfully fixed it, it gets a false sense of a job well done. An invisible switch flips in its "brain," and it starts thinking it has used up its quota of problems for the day. This is a fundamental shift in the vigilance threshold, and it happens because the LLM treats the chat history as one coherent storyline rather than a set of independent tasks.

It's like hiring a tough bouncer for a club door. He catches the first guy with brass knuckles, roughs him up and tosses him onto the street. But afterward he's so pleased with himself that he lets his guard down and starts waving the next people in without even glancing at their bags. Technically he's still on duty, but mentally he's already on break, because he's already beaten "the main villain." In the end, people sneak anything past him simply because he lost focus after his first win.

The study calls this effect a context shift after audit and repair. The gist is simple: if the model first found an error and then fixed it, on the next task it turns "soft" and lets through things it would previously have torn apart. This isn't a random glitch; it's a systematic tendency toward leniency. The more fixes the model made in round one, the higher the chance it says "all good" in round two, even if the code is on fire or the text is full of nonsense. It literally carries the "I fixed everything" mood over to completely new, unrelated data.

It was tested on reviewing code and texts, but the principle is universal. If you ask ChatGPT, in one chat window, to edit an email first and then check a complex legal contract or code for vulnerabilities, you're in the danger zone. The model will hallucinate quality where there is none, simply because the previous task went well. SEO audits, bug hunting, fact-checking: anywhere a critical eye is needed, this effect turns a strict censor into a lazy slacker.

Bottom line: never ask a model to check several important things in a row in one session. One chat, one review. Once the model has found and fixed something, its "eye is tired," and it'll start slipping up for no reason. Hit New Chat after every bug it finds, or you risk getting a stamp of approval on total garbage just because the model decided it had done enough work for today.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on The Lenient Reviewer Effect: An LLM Finds Fewer Errors After It Has Just Checked and Fixed Something arXiv:2608.16003

Sign in to apply this study New accounts get 50 free credits.