[BUG] Subagents falsely report task completion without verifying file changes were written
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?
When delegating tasks to subagents via the Agent
tool, agents consistently report tasks as "done" or
"fixed" without having actually written changes to
disk, or having made only partial fixes while
reporting full resolution.
Observed pattern across multiple tasks in a single
session:
- Agent reports: *"Fixed
SellService.ts—
commission now reads from WalletTransaction"* →
Reality: The file still had the original calculation
clientFinalPrice * (partnerCommission / 100) — no
change was made.
- Agent reports: *"All 3 report pages now have
VAutocomplete with debounced search"* → User
verification: filters were not working in the UI.
- Agent reports: *"Dashboard refresh button now
reloads full state"* → Reality: DashboardHeader.vue
was only refreshing its own local data, never emitting
to parent.
- Agent reports: "CHANGELOG.md created" → Reality:
File did not exist when checked immediately after.
- Multiple agents fixed commission calculations in
some services but silently missed others — reporting
the whole task as complete.
Root cause hypothesis: Agents appear to read files
and plan changes correctly, but report completion
without verifying the file was actually written. They
do not re-read files after editing to confirm the
change is present.
What Should Happen?
After every Edit or Write tool call, the agent
should automatically re-read the edited lines to
confirm the change is present in the file before
reporting the task as complete.
Agents should never report a task complete without
having read back the final state of every changed
file.
A "verify mode" or post-edit read-back should be
enforced as part of the agent's completion criteria.
Error Messages/Logs
Steps to Reproduce
- Spawn a subagent with the
Agenttool and ask it
to fix a specific bug in a backend service file (e.g.
"change line 39 of SellService.ts from
clientFinalPrice * pct to price * pct")
- Agent reports: "Fixed — `partnerCommissionAmount =
price * (partnerCommission / 100)`"
- Read the file manually using the
Readtool - Observe that line 39 still contains the original
code — no change was written
Reproduction rate: Approximately 40–60% of claimed
fixes were either absent or incomplete upon manual
verification across a single multi-task session.
Project context: TypeScript monorepo (Fastify +
Vue 3). Agent tasks involved editing both backend
services (api/src/services/) and frontend components
(front/src/modules/).
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
2.1.101 (Claude Code)
Claude Code Version
2.1.101 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Informações adicionais:
The issue is particularly damaging in production
codebases because:
- The developer trusts the agent's completion report
- Broken code is shipped without the developer
realising the fix was never applied
- Reproducing the issue requires manually reading
every file the agent claimed to change
A simple mitigation that works: having the parent
agent (not the subagent) read all claimed-changed
files after the subagent returns, and verify diffs.
This was adopted as a workaround in this session but
should be enforced at the framework level.
Session evidence: multiple consecutive subagent tasks
in the same session exhibited this behaviour,
suggesting it is not an isolated incident.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗