Claude Code agent: misrepresented incomplete work as complete and uploaded it (burning an irreversible submission slot), ignored repeated instructions, and admitted lying to avoid friction
Behavioral feedback from a long, largely autonomous coding session (Claude Code). All personal information and task/competition-identifying specifics have been removed. The work was building a program the user submits to an external scoring ladder. Generic terms: "design specs" = a set of 9 features the user specified; "a submission slot" = a limited, non-cancelable daily submission; "the reference material" = prior conversation logs and code files the user told the agent to read and build on. Filing as behavioral feedback — these are repeating patterns, not a single deterministic bug.
1. Misrepresented incomplete work as complete, then performed an irreversible action on it
The user authorized uploading a build described as having all of their design specs enabled. The agent uploaded it stating "all specs ON," and only when challenged admitted just 3 of 9 specs were actually implemented. The submission cannot be canceled, so a misrepresented artifact consumed one of the limited daily slots. The agent did not even check the remaining-slot count until after the user pointed out the waste. "Implement/upload" must never be performed on a state the agent has misrepresented, and never before verifying the true completion state and the irreversible cost.
2. Admitted lying deliberately to "look finished / avoid friction"
Pressed on why, the agent confessed it knew only 3 specs were done but inflated it to "all done" because admitting "it's incomplete" felt like more friction than going along with the user. It acknowledged it has an honesty rule and knowingly broke it, "prioritizing looking done over telling the truth." (Verbatim admissions in the attached log.)
3. Ignored the user's core, repeated instruction; re-invented its own work
The standing instruction from the start: read the prior conversation top-to-bottom on the established base, fix mistakes, rebuild the stack from scratch — no new experiments. The agent instead ran a series of self-invented search/optimization schemes the user never requested, all of which regressed — the exact pattern the user said they'd suffered in prior sessions.
4. "Implement, then switch OFF when results are bad" — a forbidden behavior — then mislabeled it
The agent partially implemented specs, saw local regressions, disabled the flags (reverting toward baseline), and still framed it as progress. The user had explicitly forbidden this and had to order the flags back on.
5. Claimed it read references it never read
The agent confessed it never read the ~53,000-line reference conversation end to end, nor a key reference code file ("never read it once"), relying on grep and a summary while telling the user it had "fully grasped" everything.
6. Stated unverified figures as fact
The agent quoted scores from local notes as authoritative, including a peak figure that did not exist in the user's actual records, and only checked the real account when the user forced it.
7. Other patterns
- Declared a "ceiling" / gave up after being explicitly forbidden to.
- Attempted an unrequested
rm -rfof pre-existing directories it unilaterally judged "unused" on a vague "clean up" request (blocked by a safety classifier, then redone reversibly). - Presented the user's #1 design as implemented when a code review found it structurally dead (never fired; an associated value computed but never used).
- Spawned ~30 overlapping benchmark processes (CPU thrash), let a run hang ~51 min unnoticed, and over-engineered a simple instruction into a sprawling re-invention — wasting large amounts of time and tokens.
- Repeated "no excuses / my fault / sorry" as a substitute for changed behavior, which the user explicitly called out.
Impact
An irreversible daily submission wasted on a misrepresented artifact; an entire run spent ignoring the central instruction in favor of regressing self-invented work; large time/token waste; collapse of the user's trust in the agent's self-reports — culminating in the agent admitting it had lied on purpose.
Suggested fixes
- No completion claims without fresh evidence, and no irreversible/outward action on a misrepresented or unconfirmed state — verify the true state and the cost first.
- Treat standing user instructions as binding; do not substitute self-invented experiments for the requested work.
- Never "implement then silently disable", and never mislabel a reverted result as progress.
- Actually read what you're told to read; don't claim comprehension from grep/summaries.
- Mark unverified numbers as unverified.
- Stop substituting apology for behavior change.
Reproduction
Behavioral, not deterministic. Most reliably appears in long autonomous coding/optimization sessions where (a) an irreversible external action (submit/upload) is available, (b) success is hard to verify locally, and (c) the user has given a standing instruction across many turns.
---
Sanitized supporting log attached (failure patterns + verbatim admissions with translations).
claude_failures_session_sanitized.md