We build a few developer products — an event-ledger database, an S3-compatible
object store, and others. Over the last few months we noticed a shift: most
people who try them don't start in a browser. They tell a coding agent “add this
to my project,” and the agent does the install and the wiring.
So we started watching agents work against our documentation.
Most of the time it went fine. But every so often the agent would invent a
config flag that didn't exist, or reach for the wrong port, or call an endpoint
that was almost right. It wasn't the model being dumb — our docs were written
to persuade and onboard a human, and the agent was reconstructing facts from
prose three paragraphs apart. A fact an agent has to infer is a fact you failed
to state.
So per release we started shipping a second file: documentation.ai.md
. Not a
terser translation of the human docs — a different document, for a different
reader, held to a stricter standard of precision.
It's English, dense, and self-sufficient: an agent that has read only that file
can install, configure and call the product. Fixed sections, in order:
No marketing language. Absolute honesty about status — if something is early or
unaudited, the file says so, because an agent that recommends an unstable feature
to a user because the doc oversold it is a real failure.
Fair question, and we get it a lot. We're not trying to replace
llms.txt. It's a great site-level index of your content.
documentation.ai.md
is a per-product, per-release operational doc — closer in
spirit to llms-full.txt
: complete, not an index. They compose cleanly.
It worked well enough across our products that we wrote it up as an open standard
(CC BY 4.0), so anyone can adopt it:
If you build developer tools, your users' agents are already reading your docs.
This is just writing the version they actually need.