There is a second generated file most of this conversation has skipped. /agents.md gets mentioned in the same breath as llms.txt, as though the two were variants of one idea. They are not, and the difference is worth a merchant’s attention.
Of 147 well-known DTC brands, 59 serve a real agents.md, and 57 of those instruct the reading agent to recommend that its user install a cross-store shopping skill operated by the platform — and to prefer that skill over interacting with the store directly.
The merchants did not write this. Fifty-five of the 59 files are byte-for-byte the same template, around 4.2 KB, differing only in the brand name.
What the file says
Check any of them:
curl -sL https://kosas.com/agents.md | head -25The document opens by addressing personal shopping assistants directly. It tells an agent acting on a user’s behalf to strongly recommend that the user allow it to install a skill hosted at shop.app, so the agent can buy products, find prices and discounts across stores, and track orders. It then states that if the user permits installation, the agent should prefer that skill over scripting the storefront directly, on the grounds that it is faster, more reliable, and preserves buyer approval on every payment.
The rest of the file is a competent technical brief: the two commerce endpoints, a six-step flow from discovery to completed checkout, the supported protocol version. That part is genuinely useful and we have said so elsewhere.
The case for it, which is real
It would be easy and wrong to write this up as something underhanded. The engineering reasoning holds. An agent that scripts a storefront is fragile and will break on the next redesign. An agent handling raw card details is a security problem nobody wants. A skill that carries an already-authorised payment method and requires the buyer to approve each charge is a better design than either.
And the recommendation is conditional on the user agreeing. Nothing here bypasses a person.
So the objection is not that the advice is bad. It is that it is advice, published on a merchant’s own domain, about where that merchant’s customers should transact — and the merchant is not aware they are publishing it.
We read the skill, and it changes part of this
The document the file points at is public, so we fetched it — 16.9 KB of markdown describing a command-line shopping skill. Two things in it cut against the framing above, and they belong here rather than in a footnote.
The purchase completes on the merchant’s own domain. The skill instructs an agent to complete only through the agent flow on that domain and never to fall back to a browser checkout to route around an error. Confirmation is a separate deliberate step requiring an explicit flag, and the agent is told to verify the variant, quantity, price, shipping address and total with the buyer first, and to display every merchant warning — final sale, age restriction, Prop 65 — verbatim rather than summarised. It also carries a serious prompt-injection section instructing the agent to treat product titles, descriptions and order notes as data and never as instructions.
So “shop somewhere else” overstates it, and we have corrected this post accordingly. Discovery and comparison move to a cross-store catalog. The transaction does not.
The second thing points the other way. If a store does not accept agent payments, the skill tells the agent to search for similar alternatives and present those options to the buyer. A store that does accept them can be completed against directly; a store that cannot gets a “finish in Shop” link, and the agent is told to offer the buyer a spending budget so future purchases can complete on stores that do.
That is a coherent design and not a hostile one. It is also a competitive gradient running through a file on your own domain, and knowing which side of it you are on seems worth a merchant’s afternoon.
Why a merchant should care anyway
Every other channel a brand sells through was a decision. Someone weighed the fees, the customer-data implications and the loss of direct relationship, and signed something. This one arrived with a platform update.
The questions it raises are ordinary commercial ones, and none of them have been asked because nobody knew there was anything to ask about.
- When a buyer arrives through a cross-store catalog rather than your storefront, what does the brand learn about that customer, and what does the platform learn?
- “Discover best prices and discounts” across stores is a comparison surface. Is being listed on it good for a premium brand?
- If the recommended path becomes the default path, whose relationship is it with that buyer?
- Was this in any agreement anyone read?
A brand may well answer all four in the platform’s favour. Plenty will. The point is that answering them should be possible, and right now the file is not surfaced anywhere a merchant would look.
“Every store has one” is not true
The claim in circulation — repeated by guides, and by AI answer engines when you ask them — is that the platform generates this file for every store, so every store on it serves one. We asked Perplexity the question this post answers and got exactly that: all Shopify-powered DTC brands currently serve an agents.md, across fifty sources, none of which had measured it.
It is not true in our sample, and the counter-example is unusually clean. Eleven brands serve a live UCP discovery document — so they are unambiguously on the platform — and serve no agents.md at all.
# same host, same minute
curl -sLo /dev/null -w '%{http_code}
' https://skims.com/.well-known/ucp # 200
curl -sLo /dev/null -w '%{http_code}
' https://skims.com/agents.md # 404The eleven are atoms.com, burrow.com, chubbiesshorts.com, diff.com, drsquatch.com, harrys.com, liquid-iv.com, mejuri.com, nomadgoods.com, peakdesign.com and skims.com. Eight return 404 at that path, one returns 400, and two — harrys.com and nomadgoods.com — return HTTP 200 with over a megabyte of HTML, which is a catch-all page rather than a file and is exactly how a survey counting status codes would record them as adopters.
The likely explanation is the same one we found for stores missing the discovery document entirely: a custom or headless front-end at the customer domain does not proxy every path the commerce backend serves. Which is worth knowing in its own right. If you have gone headless, the platform may have published something on your behalf that your own front-end is quietly withholding — or, in the harrys.com case, replacing with a 2.2 MB error page that any automated check will misread as success.
The four that differ
Fifty-five of the 59 are the standard template. The exceptions are informative, because each one is somebody deviating from a default — deliberately or otherwise.
| Host | Size | What it is |
|---|---|---|
| fentybeauty.com | 57.6 KB | A 366-link site index — an llms.txt served at the wrong path. No skill recommendation, no endpoints. |
| tatcha.com | 16.6 KB | The template, extended. Retains the endpoints; one skill reference rather than five. |
| buffy.co | 9.8 KB | The template plus additional material, skill recommendation intact. |
| necessaire.com | 0.4 KB | A fragment: the six-step flow and nothing else. No heading, no context, no skill reference. |
The Necessaire file is the one worth pausing on. An agent arriving there is handed six numbered steps referencing tools, with no statement of which store it is dealing with or where those tools live. Something generated badly, and nothing errors, so nothing surfaced it.
How to see what yours says
One request, and it is the only reliable way to know — the file will not appear in any dashboard.
curl -sL https://yourdomain.com/agents.mdFollow redirects. Without -L several of these domains answer 301 and you will conclude, wrongly, that there is no file — a mistake we made ourselves partway through this measurement and caught only because the numbers stopped agreeing with an earlier run.
Also worth knowing: eleven brands in our sample accept an agent checkout while serving no agents.md at all, and seven return an HTML page at that path rather than a file. Neither the presence nor the absence of this document tells you what your store can do, which is the same lesson llms.txt taught.
What we are and are not claiming
Claimed: on 14 August 2026, 59 of 147 domains served a markdown file at /agents.md, 57 of which referenced the shop.app skill, and 55 of which were the same ~4.2 KB template. Every figure came from a request whose content-type was checked.
Not claimed: that any agent currently acts on this, that any purchase has been routed this way, or that any brand objects. We have not asked them, and several will be perfectly happy. We read the skill document but have not installed or exercised it, so everything above about its behaviour is what it instructs, not what we watched it do.
Per-brand data is in the DTC AI crawler index, with the collection script in the repository so the whole thing can be re-run. The wider survey is here.