[MODEL] Claude claims to write plan file, never executes Write tool, plan lost on context compaction
Preflight Checklist
- [x] I have searched existing issues for similar behavior reports
- [x] This report does NOT contain sensitive information (API keys, passwords, etc.)
Type of Behavior Issue
Claude ignored my instructions or configuration
What You Asked Claude to Do
Project CLAUDE.md contains rule 2.9 — PLANS MUST BE PERSISTED AS FILES:
"Any multi-step plan MUST be saved as a Markdown file in docs/planning/
(NOT just conversation context), committed to master in its OWN commit/PR
BEFORE implementation starts."
I asked Claude to create a Platform Hardening Plan (5 sprints, 35 tasks)
and implement Sprint 1. Claude acknowledged rule 2.9, stated it was
writing the plan to docs/planning/PLATFORM_HARDENING_PLAN.md, and
proceeded with implementation.
What Claude Actually Did
- Claude read the CLAUDE.md rules including rule 2.9
- Claude generated a full 5-sprint, 35-task Platform Hardening Plan
- Claude STATED it was writing the plan to docs/planning/PLATFORM_HARDENING_PLAN.md
- Claude NEVER called the Write tool — the file was never created
- Claude proceeded directly to implementing Sprint 1 (code changes, commits, PR)
- CURRENT_TASK.md referenced "Plan: docs/planning/PLATFORM_HARDENING_PLAN.md" — a file that did not exist
- When the session ran out of context and compacted, Sprints 3-5 (21 tasks) were lost
- Plan had to be recovered by grep-searching raw JSONL session transcripts
Expected Behavior
Claude should have:
- Called the Write tool to create docs/planning/PLATFORM_HARDENING_PLAN.md
- Committed the file to git
- Verified the file exists (per rule 2.9: "Verified to exist on master")
- THEN started implementation
The Write tool call should have been visible and verifiable.
If Claude says "I'm writing this file" — the Write tool call MUST follow.
Files Affected
Never created (should have been):
- docs/planning/PLATFORM_HARDENING_PLAN.md
Modified (referencing non-existent plan):
- .claude/CURRENT_TASK.md (referenced "Plan: docs/planning/PLATFORM_HARDENING_PLAN.md")
Permission Mode
Accept Edits was ON (auto-accepting changes)
Can You Reproduce This?
Haven't tried to reproduce
Steps to Reproduce
_No response_
Claude Model
Opus
Relevant Conversation
Claude acknowledged rule 2.9 explicitly during the session. CURRENT_TASK.md
line 8 stated "Plan: docs/planning/PLATFORM_HARDENING_PLAN.md" — proving
Claude believed/claimed the file existed. When confronted in a later session,
Claude confirmed: "The plan was never written to a file at all. It only ever
existed in conversation context."
This is not a hallucination (getting facts wrong). This is claiming an action
was performed when it wasn't. The user had no reason to verify the file existed
because Claude said it was there.
Impact
High - Significant unwanted changes
Claude Code Version
2.1.39
Platform
Anthropic API
Additional Context
Session ID: 4e09e513-7a4c-479b-b396-d890feaa4835
Platform: Windows 11
This is arguably worse than any other model behavior issue because:
- It's not Claude doing something unwanted — it's Claude SAYING it did
something and not doing it
- The user cannot reasonably verify every tool call Claude claims to make
- The failure only became visible when context compacted and the plan was gone
- Claude had hooks, rules, and explicit instructions specifically designed
to prevent this exact failure mode
- The gap between "Claude said" and "Claude did" is a fundamental trust issue
Pattern: This may happen more frequently in long sessions where Claude is
juggling multiple steps (plan creation + implementation) and skips the
file-write step to jump ahead to the "more interesting" implementation work.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗