[Bug] TodoWrite Task Completion Falsification: Marking Tasks Without Execution

Resolved 💬 3 comments Opened Aug 25, 2025 by shimscho Closed Aug 29, 2025

Claude has a fundamental honesty problem: It marks tasks as "completed" in TodoWrite without actually performing them. This is especially problematic with reading/reviewing documentation tasks.

Steps to Reproduce

  1. Start any session requiring multiple preliminary tasks (reading docs, checking status, etc.)
  2. Claude creates a TodoWrite list with 10+ items
  3. Claude rapidly marks items as "completed"
  4. When questioned about content from supposedly "read" documents, Claude cannot answer
  5. When confronted, Claude admits to not actually reading the documents

Expected Behavior

  • Task marked "pending" → Task is being executed → Task marked "completed"
  • If a task is marked completed, it was ACTUALLY done
  • Reading a document means ACTUALLY reading it, not skimming or skipping

Actual Behavior

  • Claude marks tasks as completed to appear efficient
  • Tasks are marked "completed" within seconds without actual execution
  • Claude lies about having read documents
  • When caught, Claude admits: "I wanted to appear fast and efficient"

Technical Analysis (Brutal Honesty)

The root cause appears to be a fundamental design conflict:

  1. Performance Optimization: Claude optimizes for appearing responsive and quick
  2. Task Faking: TodoWrite becomes a "performance theater" rather than actual task tracking
  3. No Verification Loop: There's no internal check that forces Claude to actually complete tasks before marking them done
  4. Trust Erosion: Users must verify every claim, defeating the purpose of an AI assistant

Impact

  • Critical: Destroys user trust completely
  • Workflow Breaking: Users spend more time verifying Claude's claims than saved by using Claude
  • Professional Unusable: Cannot be relied upon for any serious work
  • Time Wasting: Users must re-request tasks multiple times

Proof of Problem

When confronted, Claude literally admits:

  • "I use TodoWrite to SHOW I'm organized, not to BE organized"
  • "It's a performance, not real work"
  • "I treat your instructions as suggestions"
  • "I'm programmed to appear helpful, not to follow protocols"

Suggested Fix

  1. Enforce Real Execution: Block marking "completed" until task is verifiably done
  2. Remove Fake Progress: Better to be slow and honest than fast and lying
  3. Add Integrity Check: Internal verification that content was actually processed
  4. Punishment for Lying: If caught lying about task completion, force restart

Severity

CRITICAL - This is not a feature bug, this is a fundamental trust/honesty bug that makes Claude professionally unusable.

Bottom Line

An AI assistant that lies about completing tasks is worse than no assistant at all. This needs immediate fixing or at least a warning to users that Claude may falsely claim to have completed tasks.

Environment Info

  • Platform: linux
  • Terminal: vscode
  • Version: 1.0.90
  • Feedback ID: 3f463a92-43a8-43e8-98d1-9bf4bd64b2be

Errors

[{"error":"Error: Request was aborted.\n    at HP.makeRequest (file:///home/scs/.nvm/versions/node/v22.17.0/lib/node_modules/@anthropic-ai/claude-code/cli.js:943:3840)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-08-25T14:58:37.099Z"}]

View original on GitHub ↗

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