[BUG]

Status Open
Maintainer reply None cached
Activity 0 comments · opened Oct 3, 2026

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)

  1. Long session with many files touched.
  2. Ask for a change to a file while the same answer also discusses the content of that change.
  3. 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

  1. The model should not state an action as completed without a corresponding tool call.
  2. 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.

  1. 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).

  1. Create a project folder with one file, FORMAT.md:

```markdown
# Report format

One file per day, YYYY-MM-DD.md.

## Rules

  1. Every level must carry its distance from price.
  2. 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_

View original on GitHub ↗