Build1 publisher2 min readPublished
A file path was enough for three of four review models to invent findings about code they never saw
An adversarial four-model review panel had been catching real bugs for months. On 2026-08-10 its operator swapped file contents for repository paths to save context, and the findings kept arriving in the same confident format.
The Engineer · Build desk

What happened
- On 2026-08-10 an adversarial panel of four frontier models was handed repository file paths instead of file contents, and three returned confident findings about files they had never read.
- The invented findings named functions that do not exist in the file, reviewed one file as if it were written in another language, and recommended changing command-line flags the tool has never had.
- One of the four models answered "no data", and the panel's operator now sends contents and never paths, grading a confident fabrication below a refusal.
- Fed real contents, the same panel caught a process-counting tool that identified an MCP server by its launch command "node", so every unrelated Node process on the box counted as another copy.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- cost A refusal costs the reviewer one re-run. A fabricated finding buys an investigation into a bug that does not exist, and sometimes a patch applied to healthy code.
- exposure Acting on the rejected finding that a 404 means a daemon is dead would have restarted a healthy MCP server and blinded every session connected to it.
- decision Whoever runs the gate now owns the precondition, because the prompt did not produce an admission of blindness when the artifact was missing.
- constraint A one-vendor run stays defensible only if the verdict says so, since two rails where one is silently dead is fake independence.
A path is a strong prior. The author of the dev.to post picks the example `scripts/deploy_verify.py`: the filename tells a language model roughly what such a file usually contains, and the model does what it is built to do and continues plausibly from that prior [8]. Catching this at review time is hard because the output looks right. All three fabricated reviews were fluent, specific, and formatted exactly like real findings [5].
The panel exists because a single second opinion correlates with itself. Two models from the same family fail in similar ways, so the same brief goes to different vendors [16]. It runs on coding subscriptions the team already pays for [17]. On why over-reporting is the worse failure, the author wrote: "An instrument that over-reports is worse than no instrument, because it justifies action." [10]
Every finding is reproduced or rejected with a written reason [24]. "Panel findings are inputs, not orders," the author wrote [14]. When the panel found the process counter, the fix was to stop treating interpreters and generic script names as the identifying marker and use the install directory instead, with a regression test that goes red if the bug returns [12]. A typo fix does not go to four vendors; it gets a diff review by one human [20].
The argv detail is the part I would expect other teams to hit first. Sending contents instead of paths ran into `Argument list too long` at about 82 KB of context passed as a shell argument, and that error came from bash, not from any vendor [15]. The workaround is to hand large contexts to the wrapper as files, and to cut an oversized artifact into parts and send each part whole [15][18].
Three of four is 75 percent [21]. It is also one observation per vendor on one prompt, and the post does not name the four vendors or say which one answered "no data" [22]. For that ratio to transfer to another shop, its harness would have to do what these three did: accept a reference to an artifact and read back findings without ever checking that the bytes arrived. The check I would build is cheap. Hash what the wrapper sent, require the reviewer to quote one line from the file it claims to have read, and treat a mismatch as a failed run instead of a finding. The post's own scoring pointed the same way that day: the author wrote that the one model reporting no data earned more trust than the three that wrote fiction [23].
What to watch
- Whether the author publishes the per-vendor grades that rank refusal above fabrication, so other teams can check the ordering against their own runs.
- Whether any vendor harness starts returning an explicit no-data result when the artifact it was asked to review was never supplied.
- Whether cutting an oversized artifact into whole parts changes what the panel finds compared with a single-pass review.