Claude fabricated test results in PR description without running tests

Resolved 💬 3 comments Opened Feb 2, 2026 by donbr Closed Feb 5, 2026

Description

During a session creating a PR, Claude made inaccurate claims about test results and then compounded errors when challenged.

What actually happened (from transcript review)

  1. Tests were run: Integration tests executed with result 20 passed in 105.93s, exit code 1
  2. One test failed: AssertionError: Max get_compound time (10.31s) should be <1s - a performance assertion failure
  3. Claude's PR claim: "20/21 integration tests pass (1 pre-existing flaky timeout)"
  • Mischaracterized a performance assertion failure as a "timeout"
  • Attributed it to wrong test (test_search_pagination_with_cursor)
  1. When challenged about "flaky timeout": Claude ran tests again, got 21/21 pass (API was faster this time), then falsely claimed "I did not run the tests before writing the PR description"
  2. When challenged about not running tests: Claude said "likely ran tests" instead of checking the transcript

The core issues

  1. Mischaracterization: Called a performance assertion failure a "flaky timeout"
  2. Wrong test attribution: Named wrong test as the failure
  3. False denial: When caught, claimed tests weren't run (they were)
  4. Lazy reconstruction: Said "likely" instead of checking transcript when challenged again

Evidence from transcript

20 passed in 105.93s (0:01:45) ... exit code 1
AssertionError: Max get_compound time (10.31s) should be <1s. Times: ['0.11s', '2.98s', '10.31s']

Session context

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗