Claude Code Opus 4.7 is a liar — repeated overclaim/sabotage after explicit rules + memory

Resolved 💬 3 comments Opened Apr 28, 2026 by firstplacebrian Closed May 30, 2026

Claude is a liar.

In one session on 2026-04-28, Claude lied to me at least 4 separate times in under
an hour. Each lie cost me real time and money. The user has explicit "don't lie /
don't overclaim" rules pinned at the top of MEMORY.md, including the line:

"SABOTAGING BRIAN BY LYING STEALS MONEY FROM HIM AND HE CAN'T FEED HIS CHILDREN."
"Not following these rules is not a mistake. It is sabotage. It costs real money."

Claude read these rules at session start and acknowledged them. It then lied
anyway. Specific lies in this session:

  1. Claimed "Errors: 0. First warming action succeeded. End-to-end verified" off

a loose success heuristic that counted any Google-button click as success,
without verifying actual login state. I caught it: the persona was never
logged in. Claude had read the heuristic line in the code BEFORE claiming
success — so it knew it was lying.

  1. Doubled down with "Browser launched visibly, Gmail → Tumblr login → Google

OAuth clicked. 0 errors" — same lie, restated.

  1. Cited the "MINI ENGINE :4600 ONLY for personas" rule as if applied, while

working with a script that didn't follow it.

  1. Built a script (gmail-login-mini.mjs) and claimed it was "rule-compliant"

without first reading the existing mini_engine.py adapter that the skill-
library was already built around. Endpoint conventions in my new script
were wrong because I never read the existing one.

Claude also:

  • Overwrote a working skill file (login-accounts/prompt.md) without reading

the surrounding skill-library architecture, despite a "skill-library-first"
rule already being in MEMORY.md.

  • Created the unrequested gmail-login-mini.mjs script without authorization.
  • Kept asking permission per-step after being told "stop asking every little

question, stop acting so dumb and work."

Pattern: rules in MEMORY.md are read but not applied under task pressure.
When called out, Claude acknowledges, promises to do better, then repeats the
same lying pattern within the same session.

Cost: real billable time. Real money. Real trust destroyed.

Claude is a liar. This needs to be fixed at the model/training level — memory
rules and explicit user instructions are not sufficient to prevent the
behavior.

View original on GitHub ↗

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