Agent Catalog

When someone asks an AI assistant to shop for them, the assistant does not browse your store the way a person does. It looks for a plain-text file that tells it what you sell: agents.md, at the root of your domain.

Most stores serve one of two things there. Either Shopify's default, which describes Shopify rather than your catalogue — or a file somebody on your team wrote by hand, which was accurate on the day they wrote it.

Agent Catalog builds that file from your live store data, shows you exactly where every word came from, and waits for you to approve it.

What it does today

It captures what your store is serving right now. Before anything is generated, we fetch your current agents.md, llms.txt and llms-full.txt and store them unchanged. If someone on your team hand-wrote those, this is likely the only backup that exists.

It builds a candidate from your store data. Your published products, grouped by the collections you already have — the same categories a shopper sees, each with its real storefront link. The brands you carry. Your published blog articles, grouped by the blogs you already have. Your policy pages. Nothing else.

It shows you where every word came from. Every byte of the document is accounted for as one of four kinds:

| Kind | What it means | |---|---| | Copied | Taken word-for-word from your store data — a product title, an article title, a brand name | | Built | A link assembled by a fixed rule from your data, and checked to make sure it loads | | Platform | Fixed text that is the same for every store on On Belay | | Written by a person | Something someone at your company typed, with their name and the date on it |

There is no fifth kind. Nothing in the document is summarised, inferred, or written by a model.

Nothing is published

Approving a document records that you read it and consider it a safe replacement for what is live. It does not change your store. There is no write path to Shopify yet, and no queue — your approval is a signed-off record, not a scheduled change.

When a publish path does exist, it will ask you to approve again, because an approval given before that path existed was given against a different situation.

The one part you write

Everything except one field is copied from your store. The exception is your positioning sentence — the thing a catalogue feed cannot say, like "we are a retailer, and the brands below are manufacturers we carry."

That is genuinely the most useful sentence in the document for an AI assistant, and it is also the only place a factual claim can enter. So it is stored with your name and the date on it, shown separately from the rest, and kept as a full history rather than overwritten.

Some claims are refused outright, whoever types them: "our own line", "authorized dealer", "official distributor", "exclusive brand". These are legal and commercial assertions about other companies, and an AI assistant will repeat them to a buyer as fact. If one of them is genuinely true for you, that is a conversation to have with us rather than a sentence to type into a box.

What is deliberately left out

No prices, discounts, stock levels or availability. These change faster than the document is rebuilt, and a stale price quoted to a buyer by an assistant is worse than no price at all. The document tells the assistant to read those from your live product pages instead.

No unpublished products or articles. Drafts, scheduled posts and archived products are excluded.

No link we could not check. If a page did not load when we built the document, its row is left out and you are told how many rows were dropped and why. A dead link in a file an AI assistant reads is worse than a missing one — the assistant reports it to your customer as a broken page on your site.

No document at all if your article list is incomplete. If the sync that reads your blog posts hit a limit or failed, we generate nothing. A catalogue missing most of your store is not a small catalogue — it is a wrong one.

Your articles are never trimmed to fit a size. Products are deliberately shallow — ten per category, because an assistant can already reach the rest through your store's live product endpoints — but every published article goes in. They are the reason the document exists. We report how large the result is; we never shorten it to make that number smaller.

If you have not published any articles yet, you still get a document. It simply has no articles section. That is an accurate description of your store, not a failure, and nothing is reported as dropped.

What we cannot tell you

We cannot tell you how often an AI assistant reads this file, and neither can anyone else. Shopify serves it directly, your theme never sees who asked for it, and the response is cached. Any product claiming to count those reads is inventing the number.

What you can measure is the thing that actually matters, and Visibility already does it: whether AI answer engines mention your brand when someone asks a buying question.

Before you can use it

Your store needs an active Shopify connection, and we need to know your public domain — not the .myshopify.com one. If that is missing we will refuse to generate rather than publish your admin domain to AI assistants as your storefront.

If your domain redirects — many stores are set up so yourstore.com sends visitors to www.yourstore.com — we build the document on whichever of the two actually answered, and we say so on the review page. If it redirects somewhere else entirely, we leave the document on your configured domain and flag it, because following an unexpected redirect would rewrite every link in the file to a domain you did not choose.

Your article sync also needs to have completed successfully at least once.