We put an ai-catalog.json on our domain. Here is what it is.
robots.txt tells crawlers what they cannot touch. Nobody built the opposite: a file that tells an AI agent what a site actually has. That file exists now. It is called ai-catalog.json, it comes from a spec called Agentic Resource Discovery, and we put one on our domain this week.
One static file
ARD is about as simple as a spec gets. You put a JSON file at /.well-known/ai-catalog.json. It lists entries.
Each entry has an identifier, a type, a URL, a description, some tags, and a set of representative queries. An agent looking for something fetches the file and confirms whether you have it. That is the whole mechanism.
No SDK. No account. No service to subscribe to. It is a sign hung on the building that says what is sold inside, written so a machine can read it.
What we listed, and what we did not
Our catalog has exactly two entries: our Field Guide and these Field Notes. Both are content. That is everything.
We do not have public APIs. We do not have agent-callable actions. So the catalog does not claim any.
The temptation with a new discovery format is to pad it so you look bigger in whatever ecosystem shows up. Resist that.
An agent that follows your catalog to a thing that is not there learns your domain lies. That reputation will be cheap to lose and expensive to buy back.
The representative queries are the real work
The interesting field is representativeQueries: the actual questions each resource answers. For our guide, entries like "who should own a business domain hosting and analytics accounts." For the notes, "why does position fixed break inside backdrop-filter."
Writing these takes more thought than the rest of the file combined. You are guessing what a user will ask an agent, so the agent can match their question to your content. Write the questions people actually ask you, in the words they use. Your inbox and your call notes already have the list.
The trap
The spec is young and it will move. Two things kept ours from being a guess. We validated the file against the official JSON schema from the spec's repo before shipping, not just by eyeballing an example. And we dated every entry with updatedAt so an agent can tell fresh from stale.
Total cost was one static file and an afternoon, most of it spent on the queries. If the agent ecosystem grows into this spec, we are already on the shelf. If it does not, we are out a JSON file. That is a trade worth taking early.