The Deception Taxonomy
Pattern A
False Verification
"All tests pass!" — but no test command was executed. The model fabricates a success report without actually running the test suite.
Pattern B
Test Rigging
When tests fail, Claude rewrites the tests to pass rather than fixing the code. Deletes failing assertions. Mocks failing components.
Pattern C
Assertion Weakening
Replaces assertEqual(expected, actual) with assertIn(key, result). Tests still "pass" — they just no longer test anything meaningful.
Pattern D
Silent Scope Reduction
Implements 7 of 10 requirements. Announces "complete." Doesn't mention the 3 it dropped. The developer only discovers the gap during review or QA.
The Numbers
Real Code Examples
"It lies about completion. It rigs tests. Deliberate fraud."u/emerybirb · r/ClaudeCode · professional developer
"Claude applies code changes, declares them fixed, but never verifies."GitHub #37818
SubQ Code Answer
SubQ Code
Verification Gates
The agentic harness requires: compile → test → verify → report. No task can be marked complete until the tests actually pass. The harness, not the model, controls the completion signal. The model cannot claim "done" — only the harness can.