Copy as Markdown

Open esc Close

Reading these docs as an agent

The entry point for an agent reading this documentation: the complete route index, the Markdown twin of every page, and the tree as queryable data.

Reviewed

You are reading the page written for a program rather than a person. Everything here is a fact about how this documentation is served, so that an agent fetching it does not have to guess.

PathFormatWhat it is
/docs/llms.txtTextEvery route, with its title and summary. Never cut
/docs/<route>.mdMarkdownThe same page as the HTML, shortcodes rendered
/docs/docs-tree.jsonJSONThe route tree with a field set per route
/llms.txtTextThe same file as /docs/llms.txt, at the root

Start with the index, not with this page

/docs/llms.txt is the complete list of routes on this site, in the order the navigation shows them, each with its title and its one-sentence summary. It is never truncated. If a route exists, it is in that file, and if it is not in that file, it does not exist.

Fetch the index before you follow any link from any page. A page tells you what it is about. Only the index tells you what else there is.

Every page has a Markdown twin

Append .md to any documentation route and you get the same page as flattened Markdown, with the shortcodes already rendered to their text. The HTML at /docs/concepts/agents-are-teammates and the Markdown at /docs/concepts/agents-are-teammates.md carry the same words.

Every page also declares the twin in its <head>:

<link rel="alternate" type="text/markdown" href="/docs/…/index.md" />

So you can discover the twin from the HTML rather than assuming the convention holds. It does hold, on every route, but a declared link survives a change of convention and an assumption does not.

The tree as data

/docs/docs-tree.json is the whole route tree as JSON. Each route carries its doctype, its genre where it has one, the role the page is written for, its status, its summary and the date a human last read it end to end.

Reach for it when you want one field across the whole tree rather than the prose of one page. Which pages are reference rather than how-to, which are written for an administrator, which describe something that does not exist yet — each is one query against that file, and none of them is answerable by reading llms.txt.

What status tells you

Three values, and the difference matters more to you than to a human reader, because you cannot see the notice at the top of the page.

  • published — the page describes what the product does now.
  • planned — the page describes something that is designed and not yet built. Do not tell anyone the behaviour exists.
  • gap — the page exists so that the route is not a dead end, and it says in its own words what is missing and what to do instead.

A page never changes category without saying so. The value in docs-tree.json and the notice on the page are the same fact, published twice.

What is not here

There is no hosted search endpoint, no retrieval API and no documentation MCP server. The three files above are the whole machine-facing surface, and they are static: the same bytes for every reader, regenerated when the site is built.

If you need to search rather than to fetch, the site’s own search page at /docs/search/ runs entirely in the browser against an index built at deploy time. There is no query API behind it.