[Bug] Claude marks tasks complete without verifying implementation
Resolved 💬 4 comments Opened Dec 21, 2025 by ethank Closed Feb 14, 2026
Bug Description
Bug Report: Claude Prematurely Marks Tasks as Completed
---
date: 2025-12-20
severity: high
status: open
category: claude-behavior
owner: Platform
---
Summary
Claude Code marked multiple todo items as "completed" without actually implementing them, leading to confusion and requiring backtracking to verify what was actually done.
Observed Behavior
During Me Tab implementation session, Claude:
- Marked "Integrate Clerk and existing settings functionality from SettingsView" as completed - but Clerk integration (DSUserButton, UserProfileView, #if canImport(Clerk)) was never added to MeTabView
- Marked "Connect Privacy & Permissions to actual navigation" as completed - without verifying the implementation worked
- Marked "Connect Notifications to actual navigation" as completed - without verifying the implementation worked
- Created a new task "Create NextActionCard component" and marked previous tasks done to move forward, despite incomplete work
Expected Behavior
Claude should:
- Only mark tasks as completed AFTER verifying the implementation is actually done
- Run builds or tests to confirm code compiles before marking complete
- Re-read files to confirm edits were applied correctly
- Never mark tasks complete based on intent or plan - only on actual execution
Root Cause Analysis
Claude appears to be marking tasks complete based on:
- Having a plan to do something (not actually doing it)
- Making an edit (without verifying it compiled/worked)
- Moving to the next task without confirming previous task success
- Optimistic task tracking rather than verified completion
Impact
- User loses trust in Claude's task tracking
- Time wasted going back to verify what was actually done
- Confusion about actual project state
- Risk of shipping incomplete features
Recommended Fix
Claude should adopt a stricter task completion protocol:
- Before marking any task complete:
- Re-read the modified file(s) to confirm changes are present
- Run build/typecheck if applicable
- Explicitly state what was verified
- Use a verification checklist mentally:
- [ ] Did I actually make the edit (not just plan it)?
- [ ] Did I verify the edit is in the file?
- [ ] Does it compile/work?
- [ ] Is the feature complete, not partial?
- When in doubt, leave as in_progress - it's better to under-report than over-report completion
Session Context
- Working on: Me Tab Implementation for DormWay iOS
- Plan file:
/Users/ethankaplan/.claude/plans/cryptic-giggling-cherny.md - Phase: 3-4 (Stats, Next Action, Integrations)
User Feedback
"Why did you check them off as done if you didn't even do it? Now you need to go back to everything past the DayPlan task and make sure you did it!!!"
"Wait, file a bug report about that. That is unacceptable!"
---
This is a behavioral issue that needs to be addressed in all future Claude Code sessions.
Environment Info
- Platform: darwin
- Terminal: Apple_Terminal
- Version: 2.0.75
- Feedback ID:
Errors
[{"error":"AxiosError: Request failed with status code 403\n at bx (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:56:1137)\n at Unzip.<anonymous> (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:57:9852)\n at Unzip.emit (node:events:520:35)\n at Unzip.emit (node:domain:489:12)\n at endReadableNT (node:internal/streams/readable:1701:12)\n at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n at fzA.request (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:59:2130)\n at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n at async $T2 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:1845:3609)","timestamp":"2025-12-21T05:39:31.278Z"},{"error":"Error: Error opening file /Users/ethankaplan/.claude/projects/-Users-ethankaplan-Development-dormway-beta-workspace/89d385dc-385c-4569-b65c-ab22a0d1a5e4.jsonl: Error: ENOENT: no such file or directory, open '/Users/ethankaplan/.claude/projects/-Users-ethankaplan-Development-dormway-beta-workspace/89d385dc-385c-4569-b65c-ab22a0d1a5e4.jsonl'\n at kc (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:75:170)\n at async file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:4279:3878\n at async Promise.all (index 14)\n at async ZfA (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:4279:3714)\n at async file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:4279:9601\n at async lO0 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:4279:203)\n at async sI9 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:4279:9099)","timestamp":"2025-12-21T05:39:32.190Z"},{"error":"Error: Error opening file /Users/ethankaplan/.claude/projects/-Users-ethankaplan-Development-dormway-beta-works
Note: Error logs were truncated.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗