Every audit records whether an llms.txt is reachable and what it contains
Each audit run fetches /llms.txt from your origin and validates it against the emerging community format, so the question "do we even have one?" always has a fresh, evidence-backed answer.
The fetch#
During collection the auditor requests {origin}/llms.txt with a 6-second timeout and the auditor user-agent. Network failures and 404s are not errors — they produce { ok: false, text: "" } and flow into validation as "not found".
The validation#
validateLlmsTxt records { checked, found, valid, issues }, with these exact issues:
/llms.txt was not reachable/llms.txt was reachable but emptyFile does not start with an H1 title line ("# Title")No markdown links ([text](url)) found in any section
A file is valid only when it is reachable, non-empty, starts with # Title, and contains at least one markdown link.
How it scores#
Two catalog signals consume the result: SIG-GEO-01 "llms.txt is present" (severity medium) passes when found; SIG-GEO-02 "llms.txt follows the expected format" (severity low) passes when valid, reports skipped with llms.txt was not found; its format cannot be validated. when absent, and unavailable when no GEO report exists. The same llmsTxt object rides into the AI discovery report and decides whether a publish draft is worth generating (skipped when found and valid) — see Generate a draft.

