# Exhibit thirteen — fetch receipts

The measured fetch evidence behind movements one and three: what the major publishers
serve, how big the largest `llms-full.txt` is, and what thirty days of our own server
logs say about who asks for these paths.

**What this file is.** An extract from the exhibit's recon pass
(`recon/inventory-history.md`), assembled for publication because the page points at
this evidence and a pointer should reach something. Every figure, table row and quoted
limit below is carried over unchanged from that document. What was left out: the recon
pass's editorial section on what the article may and may not claim, its findings about
unrelated estate systems, and the specific container and log-volume names of the serving
host — infrastructure detail that is not evidence for anything on the page. The method is
described without them.

Nothing here was re-measured for publication. Where the recon pass marked a limit or an
inconclusive result, the mark is carried over too.

---

## 1. What the major publishers serve

Live verification, fetched **2026-08-16**, all primary — our own `curl`.

| Property | `/llms.txt` | bytes | notes |
|---|---|---|---|
| docs.anthropic.com | **200** | 58,752 | also `llms-full.txt` **200 — 32,161,074 bytes** |
| docs.stripe.com | 200 | 89,885 | |
| vercel.com | 200 | 211,285 | |
| mintlify.com/docs | 200 | 54,662 | |
| developers.cloudflare.com | 200 | 15,714 | emits `rel="alternate" type="text/markdown"` |
| docs.perplexity.ai | 200 | 42,838 | Perplexity *publishes* one |
| docs.mistral.ai | 200 | 14,658 | |
| docs.github.com | 200 | 28,674 | served as `text/markdown` |
| developers.openai.com | 200 | 5,853 | |
| cookbook.openai.com | 200 | 19,591 | |
| llmstxt.org | 200 | 637 | the spec's own file |
| www.answer.ai | 200 | 760 | |
| openai.com | **403** | — | Cloudflare bot block — **inconclusive**, not evidence of absence |
| platform.openai.com | 404 | — | |
| ai.google.dev | 404 | — | |
| developers.google.com | 404 | — | |
| gemini.google.com | 404 | — | |
| google.com | 404 | — | |
| huggingface.co | 404 | — | |

### 1.1 The `llms-full.txt` size receipt

`docs.anthropic.com/llms-full.txt` is **32,161,074 bytes ≈ 30.7 MiB ≈ ~8.0 million
tokens** at the four-bytes-per-token rule of thumb. Verified by `HEAD` on **2026-08-16**
(`content-type: text/plain`, after a 301→308 redirect chain).

The byte count is measured. The token figure is an **estimate** from the four-bytes-per-token
rule of thumb, and is the only token figure on the exhibit page not produced by a
tokenizer — the page says so where it prints it, and every dollar figure derived from it
inherits the same error bars.

### 1.2 One correction to the spec's own adoption claim

llmstxt.org's v2 page claims OpenAI, Anthropic *and* Gemini publish their own files.
Anthropic and OpenAI check out (OpenAI on the `developers.` and `cookbook.` subdomains,
not the apex). **Google does not, at any of the five obvious paths tested above.** Stated
as "not found at the obvious paths" rather than "false" — a file could live somewhere
untested — but the spec's own adoption claim does not survive a spot check.

---

## 2. Method and window for the log counts

The estate's reverse proxy writes one JSON-lines access log per vhost. They were read
**read-only**; nothing was written or rotated.

**Retention is set to `roll_keep_for 720h` = exactly 30 days.** No rotated files are
present (none has reached the roll size), so each log begins at its own creation or at the
retention edge:

| Log | First entry |
|---|---|
| apex (strata2signal.com) | 2026-07-17 04:21:45Z (at the 30-day edge) |
| rulesage | 2026-07-17 05:37:48Z |
| amble | 2026-07-24 04:57:31Z |
| **research** (this site) | **2026-08-11 21:30:39Z** — recreated, so only a 5-day window |

Total logged volume ~91 MB across **20 vhost logs**.

**The exposure caveat, stated up front.** The estate's `llms.txt` files were deployed
**2026-08-15 06:03:54 GMT** (their `Last-Modified`; the research file re-written
19:12:47Z the same day). At the time of this pass they had been live **~31.6 hours**. Any
statement of the form "crawlers did not fetch *our* file" is therefore weak. The strong
finding in §4 is a different statement, and it holds across the full thirty days:
**crawlers never asked for the path at all — not even speculatively, not even to receive
a 404.**

---

## 3. Every `llms*` request in the window

183 request rows across all vhosts, spanning **2026-07-21 07:46:24Z → 2026-08-16
13:37:12Z** (165 × `/llms.txt`, 18 × `/llms-full.txt`).

By user agent:

| Count | User agent | What it is |
|---|---|---|
| 118 | `curl/8.18.0` | **ours** — this recon pass and earlier rollout verification |
| 17 | `coherence-pass/1.0 (estate audit; …)` | **ours** |
| 15 | `…claude-code-estate-truth-pass/1.0 (+read-only audit)` | **ours** |
| 15 | `claude-code-estate-truth-pass/1.0` | **ours** |
| 1 | `s2s-site-pass/1.0` | **ours** |
| 4 | `…compatible; BuiltWith/1.4; …` | commercial tech-stack profiler |
| 1 | `Mozilla/5.0 (compatible; Dataprovider.com)` | commercial data profiler |
| 12 | assorted generic Chrome / Safari / Firefox / Android UAs | mostly datacenter IPs (AWS, Azure, Alibaba, OVH) |

**166 of the 183 rows — 91% — are the estate's own agents and probes.** Strip those and
**17 genuinely external requests remain in 26 days**, none of them from an AI system.

The only *identifiable* external requesters are **BuiltWith** and **Dataprovider.com** —
tech-profiling and lead-generation crawlers, not model crawlers. This matches Ahrefs
exactly: SEO/audit tooling is the dominant consumer, AI assistants a rounding error.

Four of the external rows are `502` against the bare host name where no vhost is
configured — internet background noise probing a well-known path. Evidence that
*something* out there speculatively looks for this file, just never a model crawler.

---

## 4. The headline: crawler traffic vs `llms.txt` requests

Counted case-insensitively over all 20 vhost logs, full 30-day window.

| Crawler | Total requests | `/robots.txt` | **`llms*`** |
|---|---:|---:|---:|
| GPTBot | 2,334 | 1 | **0** |
| Amazonbot | 2,150 | 64 | **0** |
| Meta-ExternalAgent | 2,113 | 0 | **0** |
| Googlebot | 1,301 | 257 | **0** |
| OAI-SearchBot | 690 | 429 | **0** |
| ChatGPT-User | 609 | 5 | **0** |
| **ClaudeBot** | **594** | **161** | **0** |
| PerplexityBot | 255 | 0 | **0** |
| MistralAI-User | 233 | 0 | **0** |
| Google-Extended | 214 | 0 | **0** |
| Applebot | 98 | 4 | **0** |
| CCBot (Common Crawl) | 95 | 0 | **0** |
| bingbot | 94 | 35 | **0** |
| Bytespider | 54 | 0 | **0** |
| Claude-User | 32 | 0 | **0** |
| Diffbot | 12 | 0 | **0** |
| **Total** | **~10,878** | **956** | **0** |

Also present: SemrushBot 128, AhrefsBot 55, BuiltWith 38, Dataprovider 13.
Returning zero across the whole window: Omgili, ImagesiftBot, AI2Bot, Timpibot,
DuckAssistBot.

**All 16 named crawlers above: 10,878 requests, 956 of them `robots.txt`, 0 `llms.txt`.**

Excluding the two classic search crawlers (Googlebot 1,301 / bingbot 94), the
**AI-associated crawlers alone made 9,483 requests, 664 of them `robots.txt`, and 0
`llms.txt`.** The exhibit page leads with the AI-only framing and prints the wider one
beside it; a re-measure must state which framing it used and reuse the same rule.

The ClaudeBot line, as the recon pass put it:

> ClaudeBot asked our servers for `robots.txt` 161 times in 30 days. It asked for
> `llms.txt` zero times.

**Verification performed** — the UA strings are real, not substring artefacts. Sampled
actual log lines for the ambiguous matches:

- `Mozilla/5.0 (compatible; Google-Extended/1.0; +http://www.google.com/bot.html)` — genuine, and notable: Google-Extended is usually described as a robots.txt *policy token*, yet it fetches here.
- `Mozilla/5.0 (compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)`
- `…Chrome/145.0.0.0 Safari/537.36 (compatible; meta-externalagent/1.1 (+http…`
- `CCBot/2.0 (https://commoncrawl.org/faq/)`
- `Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; MistralAI-User/1.0`

**Honest limits on this count:**

- Counts are line matches on the UA substring; one request per line. A UA string appearing
  in a referrer or URL would inflate a count. Spot checks found none, but the totals are
  "requests whose log line contains this token", not a verified UA-field parse.
- **User agents are trivially forgeable.** These counts measure claimed identity. A
  cross-check against published IP ranges would harden it; not done here.
- `robots.txt` counts are per-vhost, and the estate has **13 vhosts with no robots.txt**, so
  many of those 956 requests received 404s. That does not weaken the finding — it
  strengthens it: these crawlers keep asking for a file that is often not there, and still
  never ask for `llms.txt`.
- The raw access logs are **not published**: they hold visitors' IP addresses.

---

## 5. Measured again after publication — an interim recount

**Added 2026-08-17.** Window: **2026-08-16 13:37:12Z** (the last row of §3's count) →
**2026-08-17 23:28:19Z**, ~34 hours. Same twenty vhost logs, read-only; same rule as §3:
every `llms*` request row, the estate's own agents and probes stripped first
(`curl/8.18.0`, `coherence-pass`, `claude-code-estate-truth-pass`, `s2s-site-pass`).

199 rows landed in the window; 136 were the estate's own (this workshop re-verifies its
pages constantly, and counts itself out the same way §3 did). **63 genuinely external —
against 17 in the entire 26-day window above:**

| class | count | note |
|---|---:|---|
| browser user-agents | 37 | ordinary Chrome / Safari / Firefox readers |
| Meta-ExternalAgent | 24 | this path's first AI-crawler fetches ever logged here |
| Googlebot | 2 | |
| ClaudeBot / GPTBot / OAI-SearchBot / ChatGPT-User / PerplexityBot / Amazonbot | 0 | unchanged from §4 |

62 of the 63 landed on research.strata2signal.com, 1 on the apex. Status: 59 × 200,
3 × 304 (conditional revisits), 1 × 404. No theory of cause is offered: the dates are
printed and the reader can line them up against the page's own publication date. This is
an interim reading; the registered 30-day re-measure keeps its original schedule.
