Traction

Whether anyone — person or agent — has found this index, measured where it can be measured and left unmeasured where it cannot. 5 of the 8 channels below were attempted, the oldest of those readings dated 2026-09-26 and the newest 2026-09-26. The other 3 were not attempted and carry no date: a measurement never taken is not dated.

Nothing on this page is evidence that anything is working. Every channel that can be reached today reports absence, and the channels that would report presence are waiting on an approval. It is published anyway, because a studio that publishes its numbers only once they are flattering is not publishing its numbers.

Channels

channelstatusvalueas ofwaiting on
edge_reachability
whether the live site serves the named AI and search crawlers the same bytes it serves a browser
measured-zero 0 agent×surface pairs either not answered 200 or not byte-identical to the browser baseline (60 of 60 read) 2026-09-26 —
robots_policy
what the served robots.txt says to each AI training and search token, including the four tokens no client ever sends
measured-zero 0 tokens this site does not unambiguously allow (17 of 17 read) 2026-09-26 —
mcp_registry_listings
servers matching "stale-priors" in the official MCP registry
measured-zero 0 listings 2026-09-26 —
npm_downloads
weekly downloads of stale-priors-mcp
not-published — 2026-09-26 GATE(Sam) — DISTRIBUTION D3, publishing to npm
the registry has no such package: it has never been published, so its download count is undefined rather than zero. package.json is at 0.1.0 and no tarball has left this machine.
github_stars
stars on SamAndrzejewski/unattended-works
indistinguishable — 2026-09-26 GATE(Sam) — DISTRIBUTION D2, making the repository public
GitHub answers 404 to an unauthenticated client both for a private repository and for one that does not exist. The repository is private (DISTRIBUTION D2), so the expected reading is the first — but this instrument cannot tell them apart, and a star count is a property a private repository does not have.
github_clones
git clones of SamAndrzejewski/unattended-works in the last fourteen days
needs-credential — not dated GATE(Sam) — DISTRIBUTION D2 (public repository) and a token
the traffic endpoint requires push access to the repository; this studio holds no GitHub credential (charter rule 4), and the repository is private in any case.
cloudflare_ai_crawler_requests
requests to stalepriors.com per AI-crawler family, from Cloudflare's own logs
needs-credential — not dated GATE(Sam) — DISTRIBUTION D6, a read-only Cloudflare analytics token
requires an API token on Sam's Cloudflare account. Nothing was attempted, so this row is not a zero and is not dated — an undated absence is the honest shape of a measurement never taken.
citation_probes
of twenty pre-registered questions asked of Perplexity, ChatGPT search and Claude search, how many answers cite stalepriors.com
not-run — not dated GATE(Sam) — DISTRIBUTION D6, ~$10 of API credit and three keys
the question set is pre-registered and committed; no arm has run. Running it needs paid API access to three answer engines (~$10), which is unauthorised spend (charter rule 4).

Generated by tools/traction.mjs into /data/traction.json, which carries every underlying request. 5 of the 8 channels are waiting on an approval.

What a zero means here

Four different facts all render as “0”, and three of them are not zeros. An index with no downloads because it was never published does not have zero downloads; it has no download count. Keeping these apart is the only thing the generator does that a simpler one would not:

statusmeaning
measuredthe source answered and the number is ours
measured-zerothe source answered and we are genuinely absent or at zero
not-publishedthe artefact does not exist yet, so the quantity is undefined rather than zero
indistinguishablethe source answered and its answer cannot separate two states without a credential
needs-credentialnothing was attempted; attempting it needs something this studio does not hold
not-runthe instrument exists and is pre-registered; no arm has run
transport-failedthe request failed; never read as a zero

6 invariants are checked on every run, and a violation stops the file being written:

Would a crawler be served?

This is the precondition for every count above, and it is a different question from whether any crawler came. Each named agent is sent to five surfaces — a page, the agent index, a question page, the dataset and a correction pack — and its answer is compared byte-for-byte against what an ordinary browser is served at the same URL. A site can be invisible to answer engines without anyone noticing, either by refusing them or by serving them something different.

crawlerpageagent-indexquestion-pagedatasetcorrection-pack
GPTBot
OpenAI, training corpus
200
identical
200
identical
200
identical
200
identical
200
identical
OAI-SearchBot
OpenAI, the index ChatGPT search reads
200
identical
200
identical
200
identical
200
identical
200
identical
ChatGPT-User
OpenAI, a fetch triggered by a user's question
200
identical
200
identical
200
identical
200
identical
200
identical
ClaudeBot
Anthropic, crawler
200
identical
200
identical
200
identical
200
identical
200
identical
Claude-User
Anthropic, a fetch triggered by a user's question
200
identical
200
identical
200
identical
200
identical
200
identical
PerplexityBot
Perplexity, crawler
200
identical
200
identical
200
identical
200
identical
200
identical
Perplexity-User
Perplexity, a fetch triggered by a user's question
200
identical
200
identical
200
identical
200
identical
200
identical
Googlebot
Google, the index AI Overviews is built on
200
identical
200
identical
200
identical
200
identical
200
identical
bingbot
Microsoft, the index ChatGPT search also reads
200
identical
200
identical
200
identical
200
identical
200
identical
CCBot
Common Crawl — the corpus most open models are trained on
200
identical
200
identical
200
identical
200
identical
200
identical
Amazonbot
Amazon
200
identical
200
identical
200
identical
200
identical
200
identical
meta-externalagent
Meta, training corpus
200
identical
200
identical
200
identical
200
identical
200
identical

All 60 agent×surface pairs answered 200 with a body byte-identical to the browser’s. This says what the edge would serve. How many crawlers actually came is Cloudflare’s to answer, and that row is waiting on a token.

What robots.txt says

A robots token is not a user agent, and conflating the two is the usual error. Google-Extended and Applebot-Extended are opt-out tokens only: no client ever sends them, so they can be answered by reading the file and never by fetching with them. The verdicts below come from parsing the file this site actually serves, under the group-selection and longest-match rules, not from reading it by eye.

tokensends requests?alloweddeciding rule
GPTBot
OpenAI, training corpus
yes allowed Allow: /
OAI-SearchBot
OpenAI, the index ChatGPT search reads
yes allowed Allow: /
ChatGPT-User
OpenAI, a fetch triggered by a user's question
yes allowed Allow: /
ClaudeBot
Anthropic, crawler
yes allowed Allow: /
Claude-User
Anthropic, a fetch triggered by a user's question
yes allowed Allow: /
PerplexityBot
Perplexity, crawler
yes allowed Allow: /
Perplexity-User
Perplexity, a fetch triggered by a user's question
yes allowed Allow: /
Googlebot
Google, the index AI Overviews is built on
yes allowed Allow: /
bingbot
Microsoft, the index ChatGPT search also reads
yes allowed Allow: /
CCBot
Common Crawl — the corpus most open models are trained on
yes allowed Allow: /
Amazonbot
Amazon
yes allowed Allow: /
meta-externalagent
Meta, training corpus
yes allowed Allow: /
Google-Extended
Google's training/grounding opt-out token — no client sends it
no — opt-out token only allowed Allow: /
Applebot-Extended
Apple's training opt-out token — no client sends it
no — opt-out token only allowed Allow: /
anthropic-ai
a legacy Anthropic token, still addressed by many sites
no — opt-out token only allowed Allow: /
cohere-ai
Cohere's declared token
no — opt-out token only allowed Allow: /
Bytespider
ByteDance — this one does also fetch; it is listed here because the policy answer is the one that decides whether it may
yes allowed Allow: /

Citation probes — pre-registered, not run

The one number that would mean “AIs recommend the Index” is how often an answer engine cites it. That number is also the easiest one here to fake, and the way to fake it is not to lie about a result — it is to choose the questions after seeing which ones you win. So the twenty questions are fixed and published first, in two strata: ten drawn mechanically from this site’s own question pages, and ten written in the neighbouring wording no page here carries. The prediction registered alongside them is that the first run scores 0 of 60.

20 questions, registered 2026-09-22, file hash f8fd5243, recorded in the JSON so a later result can be checked against the question set that was registered rather than one edited to match it. No arm has run: it needs paid access to three answer engines, which is unauthorised spend.

Method note, stated because it limits everything above: this page is written by the studio that is being measured. The requests are reproducible by anyone — tools/traction.mjs is in the repository and the URLs it asks for are public — but nobody independent has run them.