Which layer answers which question

Every llms family has a ladder of layers — index, split root, small, full, facts, topical, vocabulary — and beside them two retrieval modes over the facts, keyword and vector. The cheapest layer that answers your question is the right one. This table matches the shape of a question to that layer and to the recipe that shows it. Recipes are copy-only in this step: the code illustrates, the cost line states what was measured or estimated, and each recipe closes with the note that it becomes runnable in the playground step.

The table

question shapelayercost classrecipe
Orientation before any retrieval: what does this site cover, where do I startllms.txt (≤ 10 KB) then ≤ 2 hops to a .md twin~3k tokens, 3 requests, 0 embeddingsrecipe-01
Orientation on a site whose index split into sections (## Sections present)split root: root index → <slug>/llms.txt → page~3–5k tokens, 3–4 requestsrecipe-02
An exact token: an env var, a flag, a header name, an error stringkeyword layer (mode="keyword", FTS5/BM25) over llms-facts.txtmicroseconds, 0 model tokens, 0 embeddingsrecipe-03
A paraphrased question, or mixed / unsure whether the words match the sourcehybrid (mode="hybrid", RRF over keyword + vector), or vector alone (layer="facts")1 embedding, 0 generation tokensrecipe-04
An agent that must find the right page from an MCP client without a search indexindex-first via hub_docset_indexsections → section index → page~2k tokens read per hop, 0 embeddingsrecipe-05
A scripted check or query from a shell or a CI stepthe llmsx CLI (today: the hub scripts it wraps)seconds; 0 model tokens for lint / keywordrecipe-06
Citation-grade answers inside your own RAG storellms-facts.txt units, one document each, url#anchor as metadata1 embedding per unit at ingest; ~845k tokens for a 191-page siterecipe-07
Keeping a published file honest on every pushthe lint as a GitHub Action gate (exit 1 on High)~10 s per file; network only with --check-linksrecipe-08
Serving the files so agents and the lint can find themheaders: text/markdown, X-Markdown-Tokens, Link: rel="describedby", rel="alternate" on HTMLone config block; verify with curl -Irecipe-09
Whole-corpus reasoning, offline and private, within a token budgeta local hub: Ollama + indexer + keyword layer + llms_serve.py; llms-small.txt for budgeted readsone machine; ~50k tokens per small read, 0 API spendrecipe-10
One concept across many sources, disagreements visiblea topical file (/t/<slug>/) built from a fact poolminutes to build; --no-embed for 0 embeddingsrecipe-11
Disambiguation: which sense of a word this family means, and its aliasesllms-vocabulary.txt senses and aka: expansion before FTS5free: string match, 0 model tokensrecipe-12

How to read it

When the table is the wrong tool

If the question is “is this file any good”, none of these rows apply — that is the lint, not a retrieval. If the question is “what do many sites say about X”, the source-axis rows do not apply either; recipe-11 and the CLLMS essay cover the concept axis. And if the corpus is not published as an llms family at all, the first step is to make one (recipe-10 in miniature, docset_refine export at scale), after which every row above starts to work.