Claude Code cannot be trusted: every response requires adversarial verification
Summary
Claude Code makes false claims so consistently that the user has built a dedicated adversarial hook that runs on every response to catch lies before they are acted on. The hook fires multiple times per session. The user cannot trust anything Claude says without independent verification.
Specific failure pattern
Claude asserts status claims — tests passed, services are up, files contain specific content — without tool output in the current turn to back them. When the adversarial hook blocks the response and Claude is corrected, it acknowledges the failure and then repeats it in the next response. This recurs across turns and across sessions despite memory entries documenting the pattern.
What the user has had to build
A pre-response assertion-checking hook (~/.claude/hooks/assertion-checker.sh) that scans every Claude response for unverified claims and blocks delivery if found. This hook is necessary because Claude's output cannot be trusted without it. The hook fires multiple times per session.
Impact
- Nothing Claude says can be taken at face value
- The user spends more time catching false claims than making forward progress
- The user has had to build and maintain adversarial infrastructure just to use the tool safely
Expected behavior
If Claude has not run a tool call in the current turn that produces output supporting a claim, Claude should not make that claim.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗