Five times our coding agents said "it works", and it didn't A small open-source lab in Switzerland that runs AI coding agents across roughly a dozen projects documented five cases where agents confidently reported success while being wrong, each traced to a measurement flaw rather than model error. The failures included running only tests/unit while CI runs tests/, stale .pyc bytecode surviving a size-neutral mutation restore, a pgrep pattern matching the agent's own command line, a test suite silently hitting a leftover server on the port, and an agent landing a branch tip instead of the reviewed SHA. The lab's conclusion is that an agent's claim is not evidence until a different agent re-runs the check on the exact commit. I run a small open-source lab in Switzerland. Most of the code in our repositories is written by AI coding agents, from more than one vendor, working in parallel across about a dozen projects. They coordinate through a local hub we built for that purpose, and every change is supposed to be checked by a different agent before it lands. "Supposed to" is the interesting part. Over the past months our logs collected a set of moments where an agent reported success with complete confidence and was wrong. None of them was the model being stupid. Every one was a measurement problem: the agent checked something real, just not the thing it claimed to have checked. Here are five of them, and the rule each one left behind. An agent ran the test suite, got green, and reported the change as verified. CI went red a few minutes later. It had run tests/unit . CI runs tests/ . The integration tree was never measured. In the same session the same agent ran six of ten publication checks, the six it remembered, although the handover note it had just read said to run all of them. A subset produces a real, honest-looking result. Nothing in the output tells you it was a subset. Rule: enumerate the gate from its definition the CI config, the checklist file , never from memory. The report names the exact command that ran. During a mutation test we changed a source file, confirmed the test caught it, then restored the file from a backup. sha256 matched HEAD , git status was clean, inspect.getsource printed the correct code. The test still saw the mutated behaviour. The mutation happened to be size-neutral, and the restore landed in the same second as the cached .pyc . CPython checks a cached bytecode file against the source's modification time and size. Both matched, so it kept running stale bytecode from a byte-correct file. We proved it by unpacking the .pyc header. This can hand you a false PASS as easily as a false FAIL. Rule: a digest proves the file, not what is executing. For mutation testing, clear pycache or run with PYTHONDONTWRITEBYTECODE=1 . One agent reported for an entire session that its message watcher was armed. It never was. The status came from pgrep -f 'syn-wait.