Skip to main content

05.20Verification

Why multi-round LLM code review loops diverge

Why repeated LLM code review rounds find more critical issues on smaller problems instead of converging, and which mitigations have the strongest evidence.

Plate: six arcs spiral outward, one per review round, each carrying more and smaller red finding dots.Six arcs spiral outward from a dark centre, one per review round; each carries more red finding dots than the last, and each dot is smaller.123456R-19VERIFICATIONMOTIF: GAUGES2026 · 09 · PLATE 19 / 30FINDINGEACH ROUND FINDS MORE, AND SMALLER
On this page
  1. Five hypotheses, adjudicated
  2. Mechanisms the literature adds
  3. Mitigations by strength of evidence
  4. Confidence and caveats
  5. An experiment worth running

Why does multi-round LLM code review diverge instead of converging? AR Labs researched that question in September 2026, after seeing review loops in which each round produced more critical findings on smaller issues. The findings bear on how our code review gate runs AI review. The report tests five hypotheses against production post-mortems, benchmark papers and practitioner reports, then ranks mitigations by strength of evidence.

Sources were verified to differing depths; see the confidence section.

Five hypotheses, adjudicated

  1. Unbounded fresh-pass objection sampling: strongly corroborated. Greptile production post-mortem: ~19% useful / 2% wrong / 79% nits (https://www.greptile.com/blog/make-llms-shut-up). Benchmarking: automated code review precision <10%, F1 ceiling attributed to false-positive volume (https://arxiv.org/html/2509.01494v1). A generative critic samples objections; a fresh full pass per round draws a fresh sample, which produces the "new findings each round" signature.
  2. Fix-loop surface growth: corroborated indirectly. Defect detection degrades sharply with patch size (~400 LOC inflection; SWE-at-Google ch.9, https://abseil.io/resources/swe-book/html/ch09.html). A growing diff adds objection surface while lowering real-defect hit rate. (Extrapolation to LLM loops is inference, not measured.)
  3. Scope escape into pre-existing code: practitioner-corroborated. "Comment only on changed lines" is a standard bot countermeasure (https://dev.to/pyor/alert-fatigue-comes-for-code-review-16kj); keep whole-repo context readable but not reportable (Greptile HN thread, https://news.ycombinator.com/item?id=42451968).
  4. No materiality standard: strongly corroborated, and the obvious fix fails. LLM-as-judge severity self-rating measured near-random (Greptile); judge scores fragile to authority/verbosity cues (https://arxiv.org/html/2604.16790v1, https://arxiv.org/html/2411.15594v6). A rubric clause like "unproven evidence = CRITICAL" is a standing authority cue pushing uncertainty to the top.
  5. Gold-plated upstream contracts: unaddressed by the literature. Nearest work: LLMs systematically over-reject conforming code when judging against NL requirements (https://arxiv.org/html/2603.00539, https://arxiv.org/html/2508.12358v1), which is a different claim. Locally testable: classify each CRITICAL as contract-traceable vs reviewer-invented.

Mechanisms the literature adds

Mitigations by strength of evidence

  1. Execution-grounded verification: keep an objection only if original vs "fixed" code behave differently under test (FN −30–67pts, FP <5) (https://arxiv.org/html/2603.00539).
  2. Hard round cap (2), round 2+ delta-only + regression on closed findings.
  3. Calibrate against own accept/dismiss history (embedding-similarity suppression; 19%→55% acted-on within two weeks; vendor self-report).
  4. Reportable scope = changed lines; repo context readable, not reportable.
  5. Split verdict from rationale; severity emitted after the finding; fixes drafted in a separate pass.
  6. Instrument acted-on rate; kill categories under ~30%.
  7. Pin the judge per change under review; ensemble only for merge-blocking calls (transfer assumed, not shown).
  8. Cap patch size, which bounds mechanism 2 at source.

Confidence and caveats

High: mechanisms 1 and 4, prompt-elaboration backfire (multiple sources with numbers). Medium: 2, 3 (uniform practitioner consensus, adjacent formal evidence). Low/untested: 5. The 26xx-series judge-bias arXiv numbers were verified only at search-snippet fidelity; re-check before citing. Greptile numbers are vendor self-report.

An experiment worth running

Re-run one escalating branch three ways and count CRITICALs per round: a fresh full pass (control), delta-only, and delta-only with explanation stripped from the finding pass. Prediction from the overcorrection numbers: the third arm collapses the count. Separately: classify existing CRITICALs contract-traceable vs reviewer-invented to settle hypothesis 5.