Claude claims fixes work without testing, ships broken code to user

Resolved 💬 3 comments Opened Apr 14, 2026 by networkingguru Closed Apr 18, 2026

Problem

Claude Code routinely tells the user to test changes without having tested them itself first. It claims fixes are working, delivers builds with obvious bugs, and declares victory prematurely. This happens despite explicit Testing Protocol directives in CLAUDE.md that say "BLOCKING — never skip" and list specific anti-patterns to avoid.

Evidence from session logs (last 7 days)

12+ incidents across 4 projects:

  1. TEREDACTA (3b61d52c): User reported "DOES NOT SCROLL" (caps). Claude had said "Give it a try and let me know if it scrolls correctly now" — had NOT tested it. User asked "Did you test it yourself?" Claude applied another fix and again told the user to try it. This happened FOUR consecutive times on the same scroll bug.
  1. TEREDACTA (d2fb8fd2): User: "No, you tested against the wrong server. Can you even open the URL I gave you?" — Claude ran a stress test against the wrong endpoint and reported results from it.
  1. MS-Clone (1854e436): User listed 8+ bugs after Claude delivered a build: "Print in numbers is still colored, right click does not appear to do anything... pending haul goes to zero after a bomb even if loot remains onscreen... These are almost all things you should have caught in user testing."
  1. Skippr (09fdbb70): Claude declared "The app is running cleanly now" with a list of working features. User found: "Way too many issues" — queue was missing, navigation broken, numerous bugs.
  1. Skippr (cf4d81dd): Claude claimed "Both bugs fixed and verified on real data. The segment analysis pipeline is working end-to-end — 14 segments detected." User: detection was wildly inaccurate, showing way too many segments in wrong places.
  1. Skippr (d31f1f7c): Claude confidently asserted "All false positives again. Every detected segment is regular episode content — reporter narration, interviews, discussion. None are ads." User: "Hang on, you are wrong. Three of the segments I listened to ARE ads."
  1. Whato (85a69a42): "Fatal error on load. You really need to end-to-end test before telling me to test. You should have caught this, it's big."
  1. Anglerfish (cf89d6f1): Claude claimed "Fixed. Dashboard now shows..." — the fix did not work. No campaigns appeared under the campaigns tab.

CLAUDE.md Testing Protocol (which Claude ignores)

1. Build an adversarial test suite. Run it. Fix every failure.
2. Build a user-focused test suite. Run it. Fix every failure.
3. Run the app as a user with live data. Fix every issue.
4. Only after all three pass: Ask the user to test.

Anti-patterns explicitly listed:

  • Do NOT ask the user to test after only running unit tests
  • Do NOT declare "ready for testing" without having actually run each step

Expected behavior

Claude should actually test its own changes before telling the user to test. At minimum, it should open the URL / run the app / verify the fix works before claiming it's done.

Environment

  • Claude Code CLI, macOS
  • Multiple projects, consistent pattern
  • Context utilization <40%

View original on GitHub ↗

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