llms.txt and skills
The documents an agent reads before it calls anything, the Markdown copy of every page, and the signals a shop states about its content.
llms.txt
llms.txt is Markdown at a fixed path: what a site is, and where the machine-readable parts of it are.
| Address | What it covers |
|---|---|
https://storeware.ai/llms.txt | The platform, for a language model. |
https://storeware.ai/docs/llms.txt | Every page of these docs. llms-full.txt is all of them in one file. |
https://<shop>/llms.txt | One shop. |
A shop's llms.txt is a directory, not a catalogue. It names the shop and what it sells, then lists, in sections:
- Buying from this shop: the documents an agent uses to buy there, such as its UCP profile, its ACP discovery document, its skills index and its A2A agent card, each listed only when the shop serves it.
- Collections and Products, as links. A large catalogue is cut short: read the sitemap or a product feed for all of it.
- The shop's policies.
- Machine-readable surfaces: the sitemap, the Markdown copy of any page, and the shop's product feeds.
Every page as Markdown
Ask a shop page or a storeware.ai page for Markdown and you get Markdown:
GET https://<shop>/products/linen-apron
Accept: text/markdownThe answer carries the page's title, description and image as frontmatter, and leaves out the header, the footer and the scripts. A shop page also has its structured data appended. The headers say what happened:
| Header | Value |
|---|---|
Content-Type | text/markdown; charset=utf-8 |
Vary | Includes Accept, because one address now has two answers |
x-markdown-tokens | About how many tokens the Markdown is |
x-original-tokens | An estimate of the same for the HTML |
Content-Signal | The page's content signals, when it states any |
text/markdown has to be named in Accept, at least as high as HTML: */* alone gets HTML. Only GET is converted, and a page too large to convert is served as HTML. These docs have Markdown copies too: see Reading these docs as an agent.
Agent skills
An agent skill is a SKILL.md an agent loads to learn how to do one job. Both the platform and each shop publish an index of theirs, as Agent Skills discovery:
| Index | Lists |
|---|---|
https://storeware.ai/.well-known/agent-skills/index.json | The platform's skills, starting with build-on-storeware. api.storeware.ai serves the same index. |
https://<shop>/.well-known/agent-skills/index.json | The shop's own skill, shop-here: how to shop there. |
Each entry has a name, a type of skill-md, a description, the url of the document, and a digest: sha256: and the hash of the document's bytes. The document is served exactly as it was hashed, so hash what you download and refuse it if the digest differs. A shop's skill is rebuilt from time to time, so a mismatch right after the index was read is worth one retry.
The shopper MCP server serves the same shop-here skill over MCP: see MCP servers.
Content signals
A content signal says what a site lets its content be used for once it has been fetched: search for a search index, ai-input for an answer written from it, and ai-train for training a model. A signal blocks no fetch.
storeware.ai says search=yes, ai-input=yes, ai-train=yes, in its robots.txt and as a Content-Signal header on its Markdown copies. A shop says the same unless its merchant has stated otherwise, and its robots.txt repeats the shop's rules under each AI crawler's name as well as under *, so a reader asking what the shop says to AI finds the answer under its own name.
On the AI shoppers screen a merchant can turn off the Markdown copies, llms.txt and the shop's skill, and a shop with one turned off stops offering it.