# LLMS-Explorer

> Reference, reasoning and worked examples for llms.txt families — the spec, the rubric, conceptual vs proprietary files, vocabulary files, and the hub that builds them.

Companion files: llms-full.txt (every page in full), llms-small.txt (the reference, essays and examples layers within ~50k tokens), llms-facts.txt (source-anchored units), llms-vocabulary.txt (the terms of this niche).

<!-- generated 2026-08-31 by site/tools/build_llms.py from the .md twin of every page in this site's build output -->

## Reference

- [The attribute rubric](https://llms-explorer.com/reference/attributes/): Every attribute an llms file is judged on, with bars and severities.
- [Changelog: spec v1 to v2, and the hub pipeline](https://llms-explorer.com/reference/changelog/): What changed in the llms.txt proposal on 2026-08-10, rule by rule, with the effect on an existing file — and the dated changes to the hub schema behind this site.
- [Ethos: what an llms file owes its reader](https://llms-explorer.com/reference/ethos/): Files are promises; generate, do not hand-edit; never instruct the reader; evidence is external; rights are explicit.
- [Ecosystem evidence](https://llms-explorer.com/reference/evidence/): Adoption is real and growing (≈5–10% of the general web by mid-2026, 28% among SEO-savvy sites, 8.8× year on year); *unsolicited* consumption is near zero (97% of files never get…
- [Formatting: the grammars side by side](https://llms-explorer.com/reference/formatting/): The index, the three full-file grammars, the facts line, the small file, the vocabulary line, the split root and the manifest — on one page.
- [Glossary](https://llms-explorer.com/reference/glossary/): The terms of the field, one line each, in the sense this site uses them — with the contrasts that matter.
- [The passes](https://llms-explorer.com/reference/passes/): What the optimizer runs, in order, and how each pass is judged and fixed.
- [Reasoning: why the rules are what they are](https://llms-explorer.com/reference/reasoning/): Extractive descriptions, the size ladder, anchors, facts as the trusted layer, and the two-hop bar — each rule traced to the evidence that produced it.
- [Recreating and aggregating](https://llms-explorer.com/reference/recreation/): The acquisition ladder, lenient parsing, families, rights.
- [llms.txt: the spec and its grammars](https://llms-explorer.com/reference/spec/): Spec v2, llms-full grammars, discovery, consumers.
- [Generation tooling](https://llms-explorer.com/reference/tooling/): Generators compared; why extractive descriptions win.
- [Usage: serving, discovering and reading llms files](https://llms-explorer.com/reference/usage/): The headers to send, the .md twins to publish, how a reader discovers the family, how an agent reads an index, and how Claude Code and the hub MCP tools consume one.

## Essays

- [Conceptual vs proprietary llms files](https://llms-explorer.com/essays/cllms-vs-proprietary/): Why a file no vendor owns can be trusted: the two axes, the precedence ladder that lets the most correct idea overwrite, and the rules that keep the losers visible.
- [V2 vs V1](https://llms-explorer.com/essays/v2-vs-v1/): Two versioned things share a name: the llms.txt spec (v1 → v2, 2026-08-10) and the hub pipeline (V1 site dumps → V2 acquire, refine, dual index, gate).
- [The vocabulary file](https://llms-explorer.com/essays/vocabulary/): llms-vocabulary.txt is the lexical layer of a family: the words a field uses, what each means here, how it differs from its neighbours, and what people say instead.

## Examples

- [Which layer answers which question](https://llms-explorer.com/examples/decision-table/): The decision table for the cookbook: match the shape of your question to the cheapest llms layer that answers it, then open the recipe.
- [Recipe 01 — Two hops with requests](https://llms-explorer.com/examples/recipe-01/): Two hops with requests — Read a site's llms.txt, pick a page by its description, fetch the .md twin, answer. The baseline every other recipe is measured against.
- [Recipe 02 — Split root: follow a section index](https://llms-explorer.com/examples/recipe-02/): Split root: follow a section index — When the root llms.txt has a ## Sections block, let the counts on each section line decide which section index to fetch before touching a…
- [Recipe 03 — Keyword layer from Claude Code](https://llms-explorer.com/examples/recipe-03/): Keyword layer from Claude Code — Find an exact token — an env var, a flag, an error string — with hub_query_docset(mode=\"keyword\"), then open the page it came from.
- [Recipe 04 — Hybrid: keyword and vector fused](https://llms-explorer.com/examples/recipe-04/): Hybrid: keyword and vector fused — For a paraphrased or uncertain question, mode=\"hybrid\" runs the keyword and vector legs and fuses them with reciprocal-rank fusion; legs == 2…
- [Recipe 05 — Index-first agent over MCP](https://llms-explorer.com/examples/recipe-05/): Index-first agent over MCP — hub_docset_index → read sections → the section's llms.txt → the page.
- [Recipe 06 — The llmsx CLI](https://llms-explorer.com/examples/recipe-06/): The llmsx CLI — Lint, query, export and inspect the tree from a shell: the llmsx commands and the hub scripts each one wraps today.
- [Recipe 07 — Facts into a RAG store](https://llms-explorer.com/examples/recipe-07/): Facts into a RAG store — Parse llms-facts.txt with UNIT_RE, one document per unit with its url#anchor as metadata, embed with mxbai-embed-large — and never mix it with a…
- [Recipe 08 — GitHub Action lint gate](https://llms-explorer.com/examples/recipe-08/): GitHub Action lint gate — Fail a pull request on any High finding in your llms files, and annotate the offending lines from the lint's JSON.
- [Recipe 09 — Serving with the right headers](https://llms-explorer.com/examples/recipe-09/): Serving with the right headers — nginx and Cloudflare _headers blocks that serve .md twins as text/markdown with X-Markdown-Tokens and the two Link relations, verified with curl…
- [Recipe 10 — A local hub in miniature](https://llms-explorer.com/examples/recipe-10/): A local hub in miniature — Ollama, the docset indexer, a keyword layer and llms_serve.py on one machine: the whole retrieval stack for one family, offline and private.
- [Recipe 11 — Building a topical file](https://llms-explorer.com/examples/recipe-11/): Building a topical file — docset_refine topical turns a fact pool into a concept-axis llms.txt + llms-facts.txt with the subject's child concepts as sections; then /ldo…
- [Recipe 12 — Reading a vocabulary](https://llms-explorer.com/examples/recipe-12/): Reading a vocabulary — Expand a query through a family's aka: list before the FTS5 lookup, and pin the sense the family means. Free: string matching, no model.

## Blog

- [Abstracting one concept out of many docsets](https://llms-explorer.com/blog/abstracting-one-concept/): /lca pulls 'indexing' out of nine database docsets and 'prompt caching' out of three API docs: lexicon expansion, a zero-token harvest, borderline classification, a facet-grouped…
- [Anchors that point nowhere](https://llms-explorer.com/blog/anchors-that-point-nowhere/): 1,124 of 11,965 units on the pilot were anchored to headings the site never renders — MDX <Step> and <Tab> titles that cleaning had turned into headings.
- [Turning a customer's docs into an llms family](https://llms-explorer.com/blog/customer-docs-to-llms-family/): A product docset becomes index / full / small / facts, split hub-and-spoke at 10 KB — Cloudflare, PayPal, Claude and LangChain, with the real byte and token counts.
- [Hub-and-spoke indexes](https://llms-explorer.com/blog/hub-and-spoke-indexes/): Why the 10 KB index rule is a split rule and not a truncation rule: the root keeps one line per section with page and token counts, every section becomes a spec-v2 index of its…
- [Keyword plus vector: the cheap path](https://llms-explorer.com/blog/keyword-plus-vector/): An FTS5 (BM25) table beside the embeddings: exact tokens like CLAUDE_CODE_SYNC_SKILLS or --append-system-prompt cost no embedding call, and a reciprocal-rank hybrid fixes the…
- [Six months of hand-made llms files](https://llms-explorer.com/blog/six-months-of-hand-made-llms/): What the ecosystem's llms files actually look like when you download 608 of them, what our own V1 pipeline was producing, and why the answer to both was a facts layer instead of a…
- [The lint that gates the estate](https://llms-explorer.com/blog/the-lint-that-gates-the-estate/): llms_lint.py runs the deterministic passes of /ldo and exits 1 on any High; docset_rollout cleanup now runs it across 15 docsets and 652 files at 0 High — and what calibrating it…
- [A topical llms file from a pool of facts](https://llms-explorer.com/blog/topical-llms-from-a-fact-pool/): docset_refine topical builds sections from a concept-tree node's children and files every fact by keyword, then file affinity, then embedding centroid, then ## Shared — the…
