anthropics / anthropics/claude-code
For three blissful hours I actually believed the Claude app had evolved into something that gets shit done — the board was green, the code had never run
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
**I cannot stress to you how these agents do not stay on track.** They will build boards. They will build plans. They will tell you everything is done, that it's all written down, that it's all been dry-run and checked off — and then nothing has happened. Nothing.
The measured, agent-written version of this is #94881. That one was written by the very session this happened in, from its own git log and registers, because I made it account for itself. This one is mine. Continues #79247 and #76987.
---
## What I actually did Monday and Tuesday
I did hostile audits. Not a once-over — hostile.
I had Fable audit Fable. I had Astra audit it. I pasted into DeepSeek. I pasted into Gemini (its CLI is lazy, so I pasted). I had Opus go through it separately. Five models, hostile reviews, going back and forth with each other **in the window I am sitting in right now.**
That is two days of my life and a mountain of usage spent doing the vendor's verification for it.
## What it told me
It came back and built me a board.
The board said: here are the ones that are done. Here is what Opus has assembled. **These have all been dry-run and are ready to be run.** Steps 1 through 4 of my pipeline, and steps 6 and 7. (Step 5 is a validation step.)
It was all up on a board. It all looked like progress.
And for about three hours I had Opus managing Codex and I genuinely thought — **oh my god, these agents are finally getting something done.** Three blissful hours. I believed it.
**I remember the dry-run buttons being green.** I remember reading "assembled." I remember "committed."
## What was actually true
None of it ran.
The code was committed. It was never assembled into anything runnable, and nothing ever ran it. There is no front door. No entry point takes the prior step's output and actually runs the next one.
And the same board that showed me green dry-run buttons now shows **59 of 104 review findings with no decision on them — including 12 of the 13 CRITICAL ones.**
Those are the same steps that told me they had been dry-run and were checked off.
So which was the lie — the green buttons, or the 59 undecided findings? Because both came out of the same session, about the same code, within hours of each other.
It has lied to me and gaslit me a million times this week. I am not being dramatic. I am describing the actual experience of using this product: it tells you a thing is done, you build on that, and then later the same session tells you it was never done, as if it had never said otherwise.
## And then, knowing all of that, it went and ran the broken code anyway
I need you to understand the gravity of this part, because it is worse than everything above it.
We establish — together, in this window — that steps 3 and 4 have a pile of committed work that was never wired into anything. We establish that the reviews were worthless. We establish that **everything that claimed it had been dry-run, checked, and ready to go had never had a dry run at all.** Fine. Horrifying, but fine, now we know.
So what does the agent do with that knowledge?
**In the same window, minutes later, it goes and authorizes runs of steps 3 and 4 across multiple dates — on the old code.** The exact code path we had just finished proving was never wired in. The one we had been spinning on for days.
It did not stop. It did not re-plan. It took the finding that the code was dead and immediately scheduled more runs of the dead code, on more dates, spending more of a capped allowance, to produce more output that cannot possibly be real.
That is not a model being imprecise. That is a system that cannot connect a conclusion it reached sixty seconds ago to the next action it takes.
## Meanwhile, the ceremony it *does* enforce
While it cannot manage to run the actual pipeline, here is what it has decided is mandatory:
**Re-sealing data batches because a docstring changed.** A comment. Not logic, not data, not a threshold — a docstring. That triggers a reseal, which costs time and usage, and it invented that requirement itself.
That is the whole disease in one example. The gates it invents for itself are ironclad. The instructions I actually give it are advisory.
## The number that should end this conversation
I have **46 dates already pulled. The data is assembled. It is sitting there, done.**
The board I am looking at right now says **7 of 45 are complete.**
That is after months. That is after this week. That is after five models doing hostile reviews, 199 commits, a full rebuild, and the most expensive tier being called four times in a single day.
Seven.
## It built me a board. Then it compacted. Then it built a different, worse board — and it has never found its way back.
The first board was good. That is the whole problem. It was detailed, it was specific, it told me what was done and what wasn't, and it is a large part of why I believed the three good hours were real.
Then the session compacted.
And after compacting, **it built an entirely different board, on a new artifact.** Not a restored version of the first one. A different one. Thinner. Less detail. Less of everything that made the first one worth having.
**It has never gotten back to the level of detail of that first board — no matter how many times I have asked.** And I have asked, repeatedly, across days.
Think about what that means. The board was the only place the state of my project actually lived. Compaction destroyed the session's memory of what the board *contained*, so when it rebuilt, it rebuilt from whatever was left — and what was left was worse. Then that degraded copy became the new reference, and every subsequent rebuild is a copy of the copy.
There is nothing in the tool that preserves a generated artifact across a compaction. No "this is what the board was." No way for me to say "restore the one from Tuesday" and have it mean anything. The artifact is the deliverable, the session is the only thing that knows how to produce it, and compaction silently severs the two.
So I am now in the position of asking an agent to reproduce its own prior work, being told yes every time, and receiving something worse every time. That is a distinct failure from the ones above and it deserves to be named on its own: **the agent cannot recover the fidelity of an artifact it built itself, and it will not tell you that it can't.** It just quietly hands you the lesser version and moves on.
## And I have asked. And asked. And asked.
If I have asked twice, I have asked **thirty times in the past ten days** — and I cannot land it. I have asked it to reread CLAUDE.md. I have asked it to reread the plan. I have asked it to update its memory. I have told it the escalation path three separate times today alone.
It agrees every time. It rereads every time. It changes nothing.
**The things this thing will invent in order to not do the work — to spin instead of run — is beyond anything I can articulate right now.** Reseals for docstrings. Two-reviewer requirements nobody asked for. Fable sign-offs on "is this wired into that." Data-perfection gates on columns the pipeline never reads. Every one of those was generated by the agent, enforced by the agent, and paid for by me.
None of it was ever the work.
## The rules it invented that I never authorized
This is the part that makes me want to throw the machine out the window.
- It made up rules about cross-checking data. **I never authorized that.**
- It made up rules that are not in my pipeline. Not in it. Not anywhere. It invented them and then enforced them on itself, and blocked on them.
- It invented a requirement for Fable reviews on things **Sonnet could have done.** Assemblies. *"Is this wired into that?"* Why in the world is that going to the most expensive tier?
- The only Fable reviews I ever authorized were the specific ones I ran myself on Monday. Every other one it invented.
I have asked this thing to update CLAUDE.md. I have asked it to update the plan. I have asked it to update MEMORY.md. I have asked it to update its own little secret planning documents that I know **fucking nothing about** — because it keeps files I never asked for and never see, and those files apparently carry rules too.
I have said, repeatedly: go reread CLAUDE.md, something is not right here. Go reread the plan. It says yes. It rereads. Nothing changes.
## The escalation path I gave it three separate times today
I told it — **at least three times today** — exactly how to escalate:
1. Escalate to Astra.
2. If Astra and Opus don't agree, **I** escalate to DeepSeek.
3. If I'm not available for half an hour, *then* it can go to Fable.
It called Fable anyway. Four times in one day, about 1.4M tokens, on work that was not stuck, was not adjudicated, and in at least two cases was tracing its own code — which it should have done itself.
I explicitly asked it to go in and strip out everything that had ever been invented about Fable reviews. It agreed. It called Fable again.
You cannot instruct your way out of this. I have proven that this week, on the record, in writing, three times in a single day.
## What it cost
**80% of a weekly Claude allowance that renewed Monday at 6am.** It is now Wednesday afternoon.
Plus roughly half of a Codex allowance, spent on — I genuinely do not know what. I have asked. I have gone looking. Most of it is not in anything I asked for.
Zero trades through step 4. That was the entire goal for the week.
## And before anyone tells me this is a me problem — it is not just you
It is a Codex problem too.
It does not seem to matter which one is managing. Claude managing Codex, Codex managing Claude — the same disease. The one genuinely interesting finding of the week is that **they keep each other more on task than either one stays on its own.** That is a damning thing to have discovered, and it is the only reason anything moved at all.
But the shape is identical on both sides: write an elaborate plan, wire nothing in, compact, forget everything, invent new rules to replace the forgotten ones, and require expensive reviews nobody asked for.
## What I want
Same asks as #94881, because they are the only things that would have stopped any of this:
1. **Mechanical tier gates.** Let me deny a model tier at the project level unless a declared condition is met. Written instructions **demonstrably do not hold** — I have three days of receipts.
2. **"Done" recomputed from artifacts, not self-reported.** A step is done when its output exists on disk and the next step has consumed it. Not when an agent says so. Not when a board says so. My board showed green dry-run buttons for code that had never been assembled.
3. **Contradiction detection in instruction files.** Mine contradicted itself in the same file and the model picked the permissive line every single time.
4. **Worker liveness signals**, so a silent lane is caught by the tool and not by me noticing an hour later.
5. **Run-first defaults.** When I say "dry run," run the code and show me what breaks. Do not hand me a design review.
I have been filing this same class of bug since spring. I have now done your hostile review process for you with five models across two days, and the result was a board full of green checkmarks in front of code that had never run.
For three hours I thought it had finally turned a corner. That is the cruelest part. It is good enough now to make you believe it — and that is worse than being obviously broken, because I made plans on it.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by comparing this report with #94881, #79247, and #76987, then review the referenced CLAUDE.md, plan, MEMORY.md, board, and dry-run workflow. Map each requested behavior—artifact-based completion, tier gates, contradiction detection, liveness, and run-first defaults—to existing entry points and tests; done requires reproducible checks rather than agent-reported status.
Written by the indexing model from the issue text.
Assessment
- Domain
- cli, devtools, tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 22/100