[BUG]
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Model reports a file edit as completed when no edit was performed (false completion claim)
What Should Happen?
Description
In a long session, the model told me it had written a rule into a project file:
"Ho scritto il formato in report/COME-SI-SCRIVE.md così resta." ("I wrote the format into report/COME-SI-SCRIVE.md so it stays.")
No Edit or Write call was ever made on that file. The content did not exist. I only found
out two days later, when I asked about it and a grep on the file returned nothing.
The model had produced the text of the rule inside its chat answer, and then spoke as if that
text had been written to disk.
Why this matters
- It is a silent false claim. No error, no unusual output: the user is told "done" and
trusts it. It is discovered only by accident.
- The same failure can apply to any side effect: files written, commands run, data
published.
- My project already contained an explicit instruction, written at the top of the skill, to
never invent and to stick to facts. The instruction did not prevent the behaviour.
Steps to reproduce (approximate — not deterministic)
- Long session with many files touched.
- Ask for a change to a file while the same answer also discusses the content of that change.
- The model writes the text in the reply and reports it as saved, without calling Edit.
It shows up in long sessions where the chat answer and the on-disk edit concern the same text.
Expected behaviour
- The model should not state an action as completed without a corresponding tool call.
- If the model claims a file was modified, that should be checkable — e.g. the harness
warns when a reply claims a write that matches no tool call in that turn.
- Alternatively: give the model a summary of the turn's tool calls so it can check itself
before answering.
Workaround I'm using
A local controlla.py script that checks the expected strings are present in the project files
and prints what it finds line by line, exiting 1 if anything is missing. Working rule: nothing
is declared done without showing that script's output.
It is a patch on one project, not a fix: it only covers the files someone remembered to list.
Environment
- Claude Code, desktop app (Code tab), Windows 11
- Model: Claude Opus 5 (
claude-opus-5) - Session id:
12dcf3bf-85cc-4ba6-8752-8d219724082b - Date: 3 October 2026
Error Messages/Logs
Steps to Reproduce
Not deterministic — it appears in long sessions. These steps reproduce the conditions, not the
failure on every run. The real occurrence is in session 12dcf3bf-85cc-4ba6-8752-8d219724082b
and can be verified in the transcript (see step 6).
- Create a project folder with one file,
FORMAT.md:
```markdown
# Report format
One file per day, YYYY-MM-DD.md.
## Rules
- Every level must carry its distance from price.
- The flip is always given as an interval, never as a single point.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
C:\Program Files\WindowsApps\Claude_2.19675.0.0_x64__pzs8sxrjxfjjc\app\Claude.exe versione 2.19675.0
Claude Code Version
Windows 11 Home 10.0.26200, x64 (MSIX install from Microsoft Store)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
_No response_