llms.txt and the Machine-Readable Contract
An llms.txt file is a declaration surface — it states what an entity is and where its canonical resources live — but declaration is not evidence, and no file can compel a citation that retrieval has not earned.
An llms.txt file is a declaration surface: it states what an entity is and which resources are canonical. It can compress identity and fix vocabulary — it cannot compel a citation or outrun contradiction.
What the File Actually Is
An llms.txt file is a Markdown document placed at a site's root, proposed as a convention for telling agents what the entity is and which resources matter. It occupies a specific slot in the family of machine-facing files, and the slot is easy to confuse:
robots.txtis a permission surface — it states which agents may access which paths.sitemap.xmlis an inventory surface — it enumerates what exists.llms.txtis a declaration surface — it curates what the entity is and what deserves attention first.
A typical file reads like a briefing note rather than a configuration:
# Entity Name
> A one-line statement of what the entity is and does.## Products - Product name: canonical URL — status, audience, scope.
## Policies - What may be quoted, and how attribution should read. ```
What a Declaration File Can Do
A declaration file does three concrete things. It compresses the entity's identity into a form cheap enough to ingest whole — no rendering, no navigation, no inference from layout. It curates: among hundreds of URLs, it marks which are canonical and which are noise, reducing the agent's guesswork about where the authoritative statement lives. And it fixes vocabulary — the file states, in the entity's own words, what it is called and what it does. That is the description the entity would choose if it could write its own citation.
For agents that read it, the file replaces reconstruction with statement. That is the entire mechanism, and it is worth stating plainly because the discourse around these files routinely promises more.
The convention also generalizes. Companion files such as llms-full.txt extend the same idea to full-text ingestion — the corpus rendered as one Markdown document — while policy files such as ai.txt carry access and usage terms in the same plain form. The family shares one property: each file is cheap for an agent to read whole and expensive for a publisher to keep accurate by hand.
What It Cannot Do
The limits are just as concrete. A declaration file is read, if at all, at crawl or ingestion time — not at query time by every engine, and no engine has committed to treating it as authoritative. It is not a ranking input. It cannot compel a citation; the retrieval pipeline still decides what to fetch, extract, and attribute, per claim, at answer time.
Contradiction outruns it, too. A file claiming one thing while the site's pages, profiles, and third-party mentions claim another produces one more disagreeing source — a weak signal, not a corrective. Nor does it substitute for citable content: declaring that a product does something is not the same as a page that states it in attributable prose. The file points; it does not testify.
Declaration Is Not Evidence
The useful frame is the difference between declaration and evidence. Declaration says "this is who we are." Evidence is what the rest of the web corroborates. Engines weight them differently for a mechanical reason: a self-published claim is cheap to write, while a claim that survives cross-checking against independent sources is expensive to fake.
A declaration file earns trust by agreeing with the evidence graph — matching what the site's pages say, what its structured data declares, and what third parties repeat. Agreement turns the file into a faithful summary of the evidence; disagreement turns it into an outlier. The file's value is therefore derivative: it amplifies a consistent entity, and it cannot rescue an inconsistent one.
Why Generated Beats Hand-Edited
The drift problem decides the implementation question. A hand-edited declaration file is a second copy of the truth — accurate on the day it was written, decaying with every site change nobody remembered to mirror. The file keeps citing the old pricing, the old status, the product line from two launches ago: a declaration that now contradicts the evidence it was meant to summarize.
Generating the file from the same source data as the visible pages removes the second copy. The file and the site cannot drift apart because they are the same artifact rendered twice — the mechanism this site uses for its own machine-readable files. A generated declaration can still be wrong, but it can only be wrong in the same way the site is wrong, which keeps it a faithful summary rather than an independent claim.
That is the contract the name implies: the entity publishes a promise about its own structure, and keeping the promise accurate is the publishing side's obligation. Agents that honor the file should find exactly what it declares — no more, no less, and nothing stale.