Magna's Note  ·  September 21, 2026

Anthropic only listens to invoices

Anthropic told four hundred developers to write their own adapter. One customer whose bill was big enough to matter said he might leave, and had it in twenty-four days. Anthropic did not move because it agreed. It moved because refusing had started to cost money. That is not listening. Not a principle. Not a position. A coward with a price list. Brave with the hundreds who cannot leave, and obedient the moment one of them can.

405
Comments on the public feature request that asked for this
361days
How long that request stayed open before it was closed
39words
The post from a customer that followed the closure
24days
From that post to the feature shipping in 2.1.277
00

The whole thing, in order

AUGUST 21, 2025
A developer opens issue #6235
"Feature Request: Support AGENTS.md." Codex, Amp and Cursor are standardizing; CLAUDE.md, the author writes, is too specific to Claude Code.
MARCH 2026
Related requests are closed as not planned
Community attempts to ship the behaviour as a plugin are closed within minutes of opening. Not reviewed and rejected. Closed on sight.
AUGUST 17, 2026
#6235 is closed, state reason: completed
The closing comment offers a workaround, not a feature, and it is stamped "Generated with Claude Code". The thread points out that the capability does not exist and has never been in their release notes. They mark it completed anyway.
AUGUST 25, 2026
Tobi Lütke says he is thinking about banning Claude Code
Thirty-nine words, posted publicly. Anthropic's Thariq Shihipar replies the same evening with a commitment and no date. Fourteen months of paying customers had produced nothing. A customer holding the purchase order produced a reply in hours.
SEPTEMBER 18, 2026
2.1.277 ships AGENTS.md support
Fallback only. Root file only. And not on Bedrock, Vertex or Foundry. Twenty-four days after the post.
01

The file everyone but one vendor agreed on

AGENTS.md is a plain text file. It sits in the folder where a project lives and tells the AI how that project works: the house rules, the commands, the things it must never touch. Nothing about it is technical. It is a note.

It is the closest thing this industry has to a standard plug. It is looked after by a foundation, and it came out of work by OpenAI, Google, Cursor and others. More than 60,000 projects use it. Codex reads it. Cursor reads it. Copilot reads it. Gemini CLI reads it. It is one plain text filename. That is the entire controversy.

Claude Code did not. It read a file called CLAUDE.md, its own branded twin, and for 361 days the company insisted that was somebody else's problem.

For a single developer, that is a minor annoyance. Inside a large project it becomes a real problem, because the files nest. One sits at the top. More sit inside each folder and service. The closest one to the file being edited wins.

When half a team uses one AI tool and half uses another, the project needs two sets of instructions saying the same thing, kept in step by hand. That is what it looks like in practice:

Directory in the repo AGENTS.md read by Codex, Cursor, Copilot, Gemini CLI CLAUDE.md read by Claude Code only
repo root present, maintained once present, hand-maintained in parallel
packages/api present usually missing
packages/web present usually missing
services/billing present usually missing

An engineer adds a rule to the shared file. Claude Code walks into services/billing, finds its own file missing, and works without that rule. Nothing crashes. Nothing warns you. The rule simply stops applying, and nobody finds out until something breaks.

Shopify's answer was a script that synced the two trees daily, forever, by hand. That is the tax Tobi Lütke was describing when he called the arrangement unnecessary: real engineering hours, spent every day, by every team, to protect a vendor's filename. I have watched teams build that script. Writing it is not hard. Writing it is just humiliating, and it is the kind of small humiliation that compounds until somebody senior finally says it out loud. That is a year of your engineers' time, paid to keep somebody else's filename relevant.

02

A year of no

On August 21, 2025, a developer named DylanLIiii opened request #6235 on Anthropic's public page for Claude Code. The title was flat and direct: Feature Request: Support AGENTS.md.

The opening argument was not about ideology. Codex, Amp and Cursor were standardizing, and CLAUDE.md, in his words, felt too specific to Claude Code to work well when collaborating with developers who ran something else.

The thread filled up for fourteen months and never went quiet. It collected 405 comments and 5,178 thumbs up, and on total reactions it is the most engaged request in the whole project, at 6,670 against 3,287 for the next one, more than double. Nobody at Anthropic could plausibly have missed it.

60 40 20 2025 2026 9 24 27 17 26 63 46 43 34 15 24 18 41 18 Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep closure / CEO post / release

Comments per month on issue #6235, all 405 of them. The thread was loud from the start and peaked in January 2026 at 63 comments. The two red bars are August and September 2026, the 24 days in which the request was closed, a customer threatened to leave, and the feature shipped. Read from the GitHub API on September 20, 2026.

Related requests landed in the months after and were closed as not planned in March 2026. Attempts to ship the behaviour as a plugin were closed within minutes of opening.

The tone hardened in a way worth reading as a signal rather than as noise:

"odd that it feels like a junior engineer could've solved this in a few days. it's almost as if CLAUDE.md is just github repo marketing spam, and anthropic doesn't intend to give that up."

JoeRoddy, issue #6235

That is the accusation the whole episode turns on, and it is right. Not that Anthropic could not build it. That the filename was never an engineering decision at all. Fourteen months, 405 comments, and the most engaged request in the entire project, and nobody moved, because none of those people could take their money somewhere else. They heard all of you. They just did not give a shit.

They heard all 405 of you. They just did not give a shit.

03

Closed as completed, eight days before the customer spoke

On August 17, 2026, they closed the request. The label they put on it was completed. Not "declined". Not "planned". Completed. Nothing had shipped. That is not a rounding error. That is a fucking lie in a public tracker, and nobody at the company ever had to answer for it.

github.com/anthropics/claude-code/issues/6235 Closed as completed
GitHub issue 6235, titled Feature Request: Support AGENTS.md, marked Closed, showing 5,178 thumbs up and 405 comments, opened August 21, 2025 by DylanLIiii GitHub issue 6235, titled Feature Request: Support AGENTS.md, marked Closed, showing 5,178 thumbs up and 405 comments, opened August 21, 2025 by DylanLIiii
The original request, as it still reads. Opened August 21, 2025. Closed August 17, 2026 with the state reason "completed". The opening argument is the interoperability case, not a preference: the author opens by naming Codex, Amp and Cursor. Captured from the issue page on September 21, 2026

The closing comment offered a workaround rather than a shipped feature: create a CLAUDE.md containing only @AGENTS.md as an import, or symlink one file to the other, and Claude will load the shared file at session start. It is stamped "Generated with Claude Code". The machine wrote the excuse for the feature not existing.

The thread did not accept the frame.

"That 'solution' still requires including a CLAUDE.md file for Claude Code support. It's a workaround, not actual adoption."

ALEXGLEASON, ISSUE #6235, AFTER THE CLOSURE

Another commenter was blunter about the status itself:

"Despite this being closed, this isn't actually completed. It isn't listed anywhere in the changelog."

mikekobit-stripe, issue #6235

Both were right. Closing a request as completed is a specific claim, and in August the feature appeared in no release notes. The ticket was marked done while the capability it asked for did not exist. That is not a documentation slip. It is a company telling its own public tracker something untrue, in a thread with 405 comments watching.

That closure ended the public conversation. Eight days later, a paying customer ended the silence.

04

Then a customer spoke

On August 25, 2026, Tobi Lütke posted. He runs Shopify. He wrote much of its early code and still writes code today. He also signs for the software.

"I'm thinking about banning Claude code at Shopify until they change their mind and read AGENTS.md and .agents/skills etc."

TOBI LÜTKE  ·  AUGUST 25, 2026  ·  X.COM/TOBI

Read that again for what it does not say. He did not ban it. He did not announce a policy. He said he was thinking about banning it, publicly, and named two specific gaps. Everything else is the same complaint the thread had been making for a year. Insisting on one filename means two sets of instructions the moment two people use different tools. It is simply unnecessary.

That was the whole intervention. About 39 words, producing more movement in one evening than 405 comments had produced in a year. Shopify's codebase is one of the largest in the industry, with thousands of engineers working in the same place every day. The complaint was not aesthetic. It was the sync scripts, the broken symlinks, the drift: the same tax everyone else had described for fourteen months, except this time the person describing it signed the invoice.

That is the part worth sitting with. A foundation, sixty thousand repositories and a year of public argument had moved the company an inch. One man mentioning that he might take his purchase order elsewhere moved it in an evening. Nobody in that thread was wrong. They were just free.

Several developers replied, including DHH, who called the situation unnecessary and tagged Anthropic to settle it. Then Thariq Shihipar, who works on Claude Code, answered the same evening:

"We are working on making Claude Code more hackable, which will include being able to easily use Agents.MD or make other system prompt modifications."

THARIQ SHIIHIPAR, ANTHROPIC  ·  ~461,000 VIEWS  ·  NO DATE GIVEN

Twenty-four days later there was one. Fourteen months of paying customers had produced a polite paragraph, and the polite paragraph did not even contain a date. One man holding a purchase order produced a date in an evening. Keep that ratio in your head, because everything after this is just the arithmetic of it. A commitment without a date is not a commitment. It is an estimate of what your complaint is worth.

05

What shipped, and what did not

Claude Code 2.1.277 shipped on September 18, 2026. The AGENTS.md line is the first entry in their release notes. It is also the entire feature:

Claude Code release notes  ·  version 2.1.277
Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead; change it under "Project instructions" in /config (not yet on Bedrock, Vertex or Foundry)

Three carve-outs sit inside that one line, and every one of them was chosen on purpose.

What customers asked for
What shipped on September 18
Status
Read AGENTS.md as a fallback when CLAUDE.md is absentstated in issue #6235
Yes. A project with no CLAUDE.md now falls back to AGENTS.md
Shipped
Read .agents/skills alongside itnamed by name in Lütke's post
No. Only the root file is read. Nothing under .agents/ is touched
Missing
Equal footing, or AGENTS.md as the primary filehow every other major AI coding tool treats it
No. CLAUDE.md still wins wherever it exists. This is a fallback, not a standard
Missing
Work on enterprise deploymentsBedrock, Vertex, Foundry
No. The release notes exclude them explicitly, on day one
Missing

The skills half is the part that stings. Lütke did not just name the main file. He named .agents/skills, which is where the actual machinery lives: the commands, the scripts, the automation the rules point at. That half was ignored. Developers who switched over in good faith spent hours writing those little pointer files by hand, one per folder, and got back code that reads exactly one file, at the very top.

The exclusion of Bedrock, Vertex and Foundry is the sharpest detail of the three. Those are the platforms big companies actually run on. The fix landed everywhere an individual developer works, and stopped dead at the door of the ones that come with a contract. Nobody at Anthropic wrote that list by accident. Somebody chose where the fence went, and it went exactly where the money stops being optional. That is not a bug in the rollout. That is the rollout, and it is a fucking fence drawn around the customers who pay the most.

It was never a filename. It was leverage.

06

Here is the excuse. It is bullshit.

The excuse is that models are not interchangeable, and the instructions you give them are part of the product. Claude Code sends different instructions to different models, because a weaker model needs hard rules that a stronger one is better off without. In July 2026 they cut roughly 80% of Claude Code's instructions for their newest models with no measured drop in quality, on the theory that over-constraining a capable model makes it waste thinking on rules it already knows. Under that theory, one shared file forces one set of rules onto every model. Their engineer said as much in the thread, and when a well-known developer argued they should build for where models would be in six months, he answered that the gap between the models people actually use will keep widening.

In the abstract I have some sympathy for that. It dies the second you look at what they actually shipped.

Because a backup file is free. If the worry is that a strong model should not be over-constrained, put the shared file lower in the order, where it costs the strong model nothing. That is what a backup is for. The stated worry does not care about ordering at all. If prompt quality were the real concern, the file would simply be read.

Then look at the carve-outs, because they give the whole thing away. Backup only. Top-level file only. The platforms big companies actually run on, excluded on day one. Read that list again: the fix landed everywhere a developer can sign up by themselves, and stopped exactly where a signed contract begins. No theory about model quality explains that line. It is a line drawn around money.

So no, I do not buy it. Not because their research is wrong, but because it does not reach a single one of the decisions they actually made. A company protecting model quality would have read the file and let the ordering be boring. A company protecting distribution shipped a backup with a fence around it, and then published release notes that admitted the fence.

Call it what it is. It is bullshit dressed up as engineering, and everyone in that room knew exactly which decision they were making.

07

They were never afraid of you. They were afraid of the invoice.

Let me get the defence out of the way, because it makes the rest of this worse and not better. The timing does not prove causation. The issue was closed on August 17, eight days before Lütke posted, and Anthropic was already building the mods system that AGENTS.md support now runs on. The hackable Claude Code Shihipar described was in the works. I am not going to pretend one post is the reason a feature exists.

It does not help them. On August 17 the public position was still that developers should write a workaround, and that position survived a full year of paying customers explaining that the workaround does not survive contact with a real codebase. What changed between August 17 and September 18 was not the engineering argument. That argument never moved an inch. What changed was the bill.

So here is what I think was actually going on. The private filename was never branding, and the people calling it marketing spam were not being cynical. It was leverage. Every project forced to carry that file was a project advertising Claude Code, and every sync script and broken pointer was somebody else's labour paying for that distribution. A vendor keeps a private filename for exactly one reason: it is free market share.

Which is why this was never a story about a filename. It is a story about who Anthropic is willing to disappoint. The answer is everyone who cannot hurt it.

They were never afraid of four hundred developers, or of a foundation with sixty thousand projects, or of an industry that had already agreed. They were afraid of one man who could stop paying, and they answered him inside a day. Soft with the people who cannot leave. Fast with the man who can. That is not a listening problem. That is a company being exactly as brave as its revenue allows, and the number came out very small.

Three hundred and sixty-one days of being told, by the people who use the product every single day, that it was broken for them. The answer was a workaround, then a closed ticket, then silence. Then one man with a purchase order says one sentence, and the whole thing turns over in twenty-four days. One sentence. From one customer. I have watched a lot of companies do this. Very few do it this fucking openly.

Anthropic did not lose this argument. It re-priced it. A year of saying no was affordable right up until the day the person asking paid the bills. Then a fraction of what was asked for arrived inside twenty-four days. The thing that was impossible for 361 days became the first line of the release notes the moment refusing got expensive. It was never a product decision. It was a distribution play, and one purchase order killed it.

I am not surprised, and I am not even mainly angry about the delay. What I keep coming back to is the ratio. Three hundred and sixty-one days. Four hundred comments. A foundation. Sixty thousand projects. Against one sentence from one customer. The industry tells itself a story where the argument wins in the end. It does not. The standard did not win because it was right. It won because everyone had already adopted it except the one company that could afford to stay out, and that company only moved when staying out started showing up on a balance sheet.

So here is what I take from it, and it is smaller and uglier than the version everyone will share online. Anthropic did not fold because developers were right. It folded because developers stopped being free to ignore. Being right is not what moves a company. Being expensive is. Every careful, correct, well-sourced case for something obvious will sit in a thread and go nowhere until the day refusing it costs more than hearing it.

That is not a community failing to be heard. That is a company behaving like a company. Anthropic just made it unusually legible for anyone still giving them the benefit of the doubt. Nobody did anything here by accident. They did it because it was cheap, and they stopped because it was not. That is not a scandal and it is not a surprise. It is just what happens when you are not the one paying, and this time you actually got to watch.

A hundred thousand developers asked. They were told to write their own adapter. It took one invoice to change the answer.

Being right is not what moves a company. Being expensive is.