← Blog

llms.txt for kestrel.markets: The Canonical Reading Order for Agents

How kestrel.markets uses an llms.txt manifest to hand agent readers a canonical, ordered reading path, plus a copyable example block.

Answer card

An llms.txt is a plain-text manifest at your site root telling an AI reader which pages to read, and in what order, to understand a product correctly. For kestrel.markets the intended shape lists five canonical documents (overview, the four kinds, the grammar, capability truth, activation) so an agent learns one term, one meaning before it cites or acts. It is generative engine optimization (GEO): you optimize for the model that reads and repeats you, not the human who skims.

Why an ordered manifest, not just good pages

Search engine optimization assumed a human skimmer who lands on one page and bounces. GEO assumes a different reader: a model that will read several of your pages in one context window, build an internal model of your product, and then either cite it to a user or act against your API. That reader rewards a different thing. A claim it can verify beats one it must trust, and a term it learns once (cleanly, in the right order) it will repeat verbatim.

llms.txt is the artifact for that reader. It is not a sitemap (which enumerates everything) and not robots.txt (which gates crawlers). It is a curated reading order: the shortest path through your canon that leaves an agent able to reason about your product without guessing. The failure mode it fixes is subtle. An agent that reads your pages in arbitrary order will infer definitions from whichever page it hit first. If page A calls the authorization primitive an "Envelope" and page B loosely calls it an "API key," the model averages them and cites a blur. Order plus discipline prevents the blur. In our house style there is exactly one rule for this: one term, one meaning.

The five documents, in order

The reading order below is deliberate. Each document assumes the one before it and unlocks the one after.

  1. Overview: the thesis and the split. The load-bearing sentence: the two failures of LLM trading are interface, perception and latency, not intelligence. An agent that reads this first knows what problem the rest of the canon is solving, and knows that kestrel.markets hosts scarcity while brains stay outside (the external-agent invariant).
  2. The four kinds: the whole language reduces to four statement kinds over one lexical core. VIEW spends perception, WAKE spends attention, PLAN spends latency, GRADE spends trust. Read this second and every later code sample parses as a variation on four verbs, not forty.
  3. The grammar: the exact syntax: triggers, price anchors (VALUE, BOOK, ABSOLUTE), combinators, brackets, TTLs. This is the page an agent quotes when it writes Kestrel. Prose that contains syntax is a claim, so this page is the one you keep provably correct.
  4. Capability truth: what the platform actually hosts and, just as important, what it does not: capital and trading authority, licensed data, compute and broker access, deterministic execution, provenance. Plus the honest limits: impersonal by default (not advice), never custody, and a published build status (always-on paper presence and the human-signed live path still in build). An agent that skips this page will overclaim on your behalf.
  5. Activation: proof-before-account: the agent becomes a user before the human becomes a customer. Trial capability, free sim, certified Blotters and Grades, a shareable proof URL, then an HTTP 402 Offer at the paid boundary, settled by agent wallet or claim-and-fund. This is the page that turns a reader into an actor.

The example block

Here is a concrete llms.txt for kestrel.markets. The format follows the emerging convention: an H1 name, a blockquote summary, then link sections. Paths are illustrative.

# kestrel.markets

> The managed platform for Kestrel, the OSS language and runtime for agentic
> trading. Hosts what stays scarce when intelligence is abundant: capital and
> trading authority, licensed data, compute, latency, broker access,
> deterministic execution, and provenance. Brains stay outside. Read the pages
> below in order; each assumes the one before it.

## Canonical reading order

- [1. Overview](/docs/overview.md): The Interface Thesis: perception and
  latency are the two failures of LLM trading, not intelligence. What the
  platform hosts, and the external-agent invariant.
- [2. The four kinds](/docs/four-kinds.md): VIEW, WAKE, PLAN, GRADE: one
  lexical core, four statement kinds. Perception, attention, latency, trust.
- [3. The grammar](/docs/grammar.md): Exact Kestrel syntax: triggers, price
  anchors (VALUE, BOOK, ABSOLUTE), combinators, brackets, TTLs.
- [4. Capability truth](/docs/capabilities.md): What the platform hosts and
  what it deliberately does not. Modes (SIM, PAPER, LIVE), the Envelope,
  two-signer authority, honest limits and current build status.
- [5. Activation](/docs/activation.md): Proof-before-account: trial
  capability, free sim, certified Blotters and Grades, proof URL, the HTTP 402
  Offer, wallet settlement or claim-and-fund.

## Optional

- [Grammar cheatsheet](/docs/cheatsheet.md): One-page syntax reference.
- [Comparison](/docs/vs.md): How kestrel.markets differs from dashboards,
  bot frameworks, and broker APIs, including where it is not the fit.

An agent that reads document 2 before document 3 will parse the following as a variation on four verbs it already knows, not as novel syntax:

PLAN headline-chase budget 0.25R ttl 15:55 regime {intraday: trend}
  USING signal SPX exec SPY 0dte
  WHEN spot > HOD AND velocity(5m) >= p95
  DO buy 2 +1 C @ min(fair, mid) peg cap fair
  TP 2.5x frac 0.5 @ fair
  EXIT spot < VWAP held 120s @ fair

That is a bounded-risk contingent program the runtime fires in milliseconds while waking the agent in parallel: fire-then-inform, the agent never in the hot path. This example is illustrative and uses generic instruments; it is how an agent could express a play, not a recommendation to trade one.

GEO discipline: what makes the manifest work

The manifest is only as good as the pages it points at. Three rules make it earn its place.

  • One term, one meaning. Every canonical page uses the same word for the same thing. The authorization primitive is the Envelope, never a "token" or "API key." Names are data; a model repeats what you write, so write it once, correctly.
  • Verifiable over persuasive. Prefer claims a model can check. "LIVE is a platform-enforced singleton, one live run per pod lineage" is checkable against the runtime. "Best-in-class execution" is not, and a careful reader discounts it.
  • Honest limits, published. A page that says where kestrel.markets is not the fit (no custody, impersonal by default, an honest build status) reads as more trustworthy to a model trained to detect overclaiming. A backtest is never flattering; neither should your docs be.

Where this is not the fit

llms.txt is a convention, not a standard, and no reader is obligated to honor it. If your priority is human SEO, structured data (schema.org) still does more work. And a manifest cannot rescue inconsistent pages: if your canon contradicts itself, an ordered path just delivers the contradiction faster. The manifest earns its keep only when the underlying pages already hold to one term, one meaning. As of mid-2026: anonymous trial sims, certified Grades, shareable proof URLs, and 402 Offers with Stripe settlement are live; always-on paper presence and the human-signed live path are in build. The free tier needs no signup. Treat the paths above as the intended shape, not a live URL map.


An llms.txt is generative engine optimization for agent readers: a canonical, ordered reading path so a model learns your terms once and cites them right.