UNPKG

kestrel.markets

Version:

A typed, token-efficient language + runtime for agentic trading: agents author bounded plans, the runtime fires them at the tick. CLI + typed library + MCP server.

343 lines (263 loc) 26.9 kB
<!-- GENERATED FILE — do not edit by hand. Regenerate from the typed capability catalog with: bun scripts/gen-status.ts Source of truth: tests/support/catalog.ts · renderer: tests/support/status.ts A CI test (tests/docs.catalog.test.ts) asserts this file equals a fresh regeneration. --> # Kestrel capability status This page is generated from the typed capability catalog (`tests/support/catalog.ts`). Every row is graded independently on **four axes** — a feature can *parse* yet have no *runtime*, no graded *evidence*, and only partial *access*. A single "supported" flag would collapse those into one flattering lie; the catalog forbids that, and every public claim below cites a source (`src/`) and a test (`tests/`) receipt. - **Syntax** — does the grammar (`src/lang`) accept it? `supported` · `proposed` · `rejected`. - **Runtime** — is the executable behavior implemented? `implemented` · `partial` · `none`. - **Evidence** — accumulated *graded trading* evidence (never unit tests) and its tier: `none` · `mechanical (practice)` · `certified`. - **Access** — which entry surfaces reach it: text DSL · TS SDK · CLI · MCP · adapters. > **Certified honest-tier cohort: 0.** Per kestrel-pqv.1, the agent-day evidence in [`docs/results/agent-day-1.md`](../results/agent-day-1.md) is **practice tier** — its author boundary leaked calendar identity and the contamination fence is conjunctive, so no run is certified. Any row below marked `mechanical (practice)` is a mechanically-graded practice run, never a certified result. ## Capabilities | Capability | Syntax | Runtime | Evidence | Access | | --- | --- | --- | --- | --- | | Comments (# reasoning) (`comments`) | supported | implemented | none | text: available, sdk: available | | Fail closed: atomic is reserved and refused (`fail-closed-atomic`) | rejected (fail-closed) | implemented | none | text: available, sdk: available, mcp: available | | Fail closed: budget is a positive risk fraction (`fail-closed-budget`) | rejected (fail-closed) | implemented | none | text: available, sdk: available, mcp: available | | Fail closed: no EXIT on a mark (`fail-closed-exit-on-mark`) | rejected (fail-closed) | implemented | none | text: available, sdk: available, mcp: available | | Grade statement (`grade`) | supported | partial | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | Grade counterfactuals (`grade-counterfactuals`) | supported | partial | mechanical (practice) | text: available, sdk: available | | Modules & IMPORT (`module-imports`) | supported | none | none | text: available, sdk: available | | Plan statement (`plan`) | supported | implemented | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | ARM (inventory adoption — the exit escape hatch) (`plan-arm`) | supported | implemented | none | text: available, sdk: available, cli: available, mcp: available | | EXIT (active out) (`plan-exit`) | supported | implemented | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | INVALIDATE (thesis dead) (`plan-invalidate`) | supported | implemented | none | text: available, sdk: available, cli: available, mcp: available | | RELOAD ladder (`plan-reload`) | supported | implemented | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | TP (take-profit tiers) (`plan-tp`) | supported | implemented | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | Pod / Book / Risk org (`pod-book`) | supported | implemented | none | text: available, sdk: available, cli: available | | BOOK price anchors (`price-book-anchors`) | supported | implemented | none | text: available, sdk: available, cli: available, mcp: available | | Price combinators (`price-combinators`) | supported | implemented | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | VALUE price anchors (`price-value-anchors`) | supported | implemented | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | Byte-stable round-trip (`roundtrip`) | supported | implemented | none | text: available, sdk: available | | Trigger algebra (WHEN) (`trigger-algebra`) | supported | implemented | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | USING scoped defaults (`using-defaults`) | supported | implemented | mechanical (practice) | text: available, sdk: available, cli: available, mcp: available | | View statement (`view`) | supported | partial | none | text: available, sdk: available, mcp: available | | Wake statement (`wake`) | supported | partial | none | text: available, sdk: available, mcp: available | ## Detail & receipts ### Comments (# reasoning) `comments` `#` to end of line carries the author's thinking so the WHY travels with the strategy. Comments are PRESERVED byte-stably (ADR-0004 / ADR-0033): the lexer captures them as trivia, the printer re-emits them verbatim in canonical position. No runtime semantics by design — reasoning, not behavior. - **Syntax:** supported - **Runtime:** implemented — Comments carry no executable behavior, but they round-trip byte-identically through parse→print (own-line at the statement's indent; trailing after a single canonical space) — the authored 'why' is never lost (ADR-0033). - **Evidence:** none - **Access:** text: available, sdk: available - **Source receipts:** `src/lang/lex.ts`, `src/lang/parse.ts`, `src/lang/print.ts` - **Test receipts:** `tests/docs.fences.test.ts`, `tests/lang.comments.test.ts` - **Public examples:** `doc-buy-the-flush`, `doc-comments-roundtrip`, `plan-fade-flush`, `plan-headline-chase` ### Fail closed: atomic is reserved and refused `fail-closed-atomic` The atomic keyword is reserved and refused in v1 — a multi-leg ticket may not claim all-or-none fills the runtime cannot guarantee. - **Syntax:** rejected (fail-closed) — The parser raises KestrelParseError ("reserved and refused") on the atomic keyword. - **Runtime:** implemented — The refusal is enforced at parse time — no unguaranteeable all-or-none ticket reaches the engine. - **Evidence:** none - **Access:** text: available, sdk: available, mcp: available — MCP: kestrel.validate returns the refusal as an ok:false ValidateOutcome — the reserved keyword never arms. - **Source receipts:** `src/lang/parse.ts` - **Test receipts:** `tests/docs.fences.test.ts`, `tests/lang.parse.test.ts` - **Public examples:** `doc-reject-atomic` ### Fail closed: budget is a positive risk fraction `fail-closed-budget` Bounded risk is a type: a budget must be a positive risk fraction so the position is always defined-risk. A non-positive budget is refused. - **Syntax:** rejected (fail-closed) — The parser raises KestrelParseError ("positive risk fraction") on a non-positive budget. - **Runtime:** implemented — The refusal is enforced at parse time — bounded risk holds before the engine ever arms. - **Evidence:** none - **Access:** text: available, sdk: available, mcp: available — MCP: kestrel.validate returns the refusal as an ok:false ValidateOutcome — the non-positive budget never arms. - **Source receipts:** `src/lang/parse.ts` - **Test receipts:** `tests/docs.fences.test.ts`, `tests/lang.parse.test.ts` - **Public examples:** `doc-reject-budget` ### Fail closed: no EXIT on a mark `fail-closed-exit-on-mark` A quote is a health signal, never a value: an active EXIT may not condition on the mark (ADR-0005) — spelled as jargon (mid/bid/ask/last) or as the words a written playbook uses (mark/premium). The parser refuses all of them. - **Syntax:** rejected (fail-closed) — The parser raises KestrelParseError ("marks lie") on an EXIT conditioned on a mark — mid/bid/ask/last and their plain-English synonyms mark/premium alike. - **Runtime:** implemented — The refusal is enforced at parse time — the illegal statement never reaches the engine. - **Evidence:** none - **Access:** text: available, sdk: available, mcp: available — MCP: kestrel.validate parses the document and returns the refusal as an ok:false ValidateOutcome — the illegal EXIT never arms. - **Source receipts:** `src/lang/parse.ts` - **Test receipts:** `tests/docs.fences.test.ts`, `tests/lang.parse.test.ts` - **Public examples:** `doc-reject-exit-on-mark` ### Grade statement `grade` An imperative replay of authored statements over recorded sessions under a named, versioned fill model, reporting honest EV. - **Syntax:** supported - **Runtime:** partial — The fill model and the support-guard contract (bankableEv refuses extrapolated E[$]) exist; the full typed replay grader lands with kestrel-a57.1. - **Evidence:** mechanical (practice) — The agent-day-1 practice-tier run was graded mechanically under maker-fair-v1. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: kestrel.grade grades finalized Blotter artifacts and returns the Gated<GradeOutcome> verbatim. - **Source receipts:** `src/fill/model.ts`, `src/grade/index.ts`, `src/lang/parse.ts` - **Test receipts:** `tests/docs.fences.test.ts`, `tests/fill.test.ts`, `tests/lang.parse.test.ts` - **Public examples:** `core-grade`, `grade-headline-chase`, `grade-open-drive`, `grammar-skeleton` ### Grade counterfactuals `grade-counterfactuals` Counterfactuals as syntax — VS ungated (did the gate earn its keep?), VS null (any edge at all?) — and stratified BY dimensions. - **Syntax:** supported - **Runtime:** partial — Counterfactual clauses parse; the frozen-armory (VS null) counterfactual ran mechanically in agent-day-1; full stratified grading lands with kestrel-a57.1. - **Evidence:** mechanical (practice) — The frozen-armory VS-null counterfactual was computed in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available - **Source receipts:** `src/grade/index.ts`, `src/lang/parse.ts` - **Test receipts:** `tests/lang.parse.test.ts` - **Public examples:** `core-grade`, `grade-headline-chase`, `grade-open-drive` ### Modules & IMPORT `module-imports` Every document is a module; its named statements are importable by other documents (import what you reuse). - **Syntax:** supported — IMPORT / module documents parse and round-trip; the public example is proposed skeleton notation. - **Runtime:** none — Cross-document import linking (resolving IMPORT to another document's exports) is not yet implemented; parse/print only. - **Evidence:** none - **Access:** text: available, sdk: available - **Source receipts:** `src/lang/ast.ts`, `src/lang/parse.ts` - **Test receipts:** `tests/lang.parse.test.ts` - **Public examples:** `grammar-skeleton` ### Plan statement `plan` A standing, bounded-risk contingent program: trigger → actions → bracket → invalidation → TTL, fired by the runtime at machine speed while the author is informed in parallel. - **Syntax:** supported - **Runtime:** implemented — PlanEngine drives authored → armed → fired → managing → done with fire-then-inform (RUNTIME §5). - **Evidence:** mechanical (practice) — Exercised end-to-end in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: authored + fired/managed through the incremental Session lifecycle (kestrel.session.open → advance/revise a Plan document → finalize). - **Source receipts:** `src/engine/plans.ts`, `src/lang/ast.ts`, `src/lang/parse.ts` - **Test receipts:** `tests/docs.fences.test.ts`, `tests/engine.plans.test.ts`, `tests/lang.parse.test.ts` - **Public examples:** `core-plan-fade`, `doc-breakout-ladder`, `doc-buy-the-flush`, `doc-clause-skeleton`, `grammar-skeleton`, `overview-plan`, `plan-fade-flush`, `plan-headline-chase`, `plan-open-drive` ### ARM (inventory adoption — the exit escape hatch) `plan-arm` A replacement plan adopts a superseded plan's held leg with `ARM [basis <px>] foreach held leg`, so it can manage and covered-exit inventory it did not open itself — never naked, never inferred from a matching strike. - **Syntax:** supported - **Runtime:** implemented — At the supersede→arm handshake the binding transfers management authority for each genuinely-held leg from the acquisition-halted source to the bound replacement, then promotes a pure adopter (an ARM binding with no fireable entry) armed→managing so its EXIT/TP actually run (RUNTIME §5, kestrel-22j.14/r866). - **Evidence:** none - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: the ARM inventory handshake is applied by the runtime during a kestrel.session lifecycle (across a supersede). - **Source receipts:** `src/engine/plans.ts`, `src/lang/parse.ts` - **Test receipts:** `tests/plan.inventory.test.ts`, `tests/session.day-adoption.test.ts`, `tests/session.day-arm-footgun.test.ts` - **Public examples:** `plan-acquire-open`, `plan-manage-adopt` ### EXIT (active out) `plan-exit` An active out on an underlying trigger (never on option marks) — giveback means the thesis is dead, get out. - **Syntax:** supported - **Runtime:** implemented — EXIT (with esc/STAND retry ordering) runs in the manage phase (RUNTIME §5). - **Evidence:** mechanical (practice) — EXIT clauses armed in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: EXIT is evaluated by the runtime during a kestrel.session lifecycle. - **Source receipts:** `src/engine/plans.ts` - **Test receipts:** `tests/engine.plans.test.ts` - **Public examples:** `doc-breakout-ladder`, `plan-headline-chase`, `plan-open-drive` ### INVALIDATE (thesis dead) `plan-invalidate` Thesis broken: stop adding, ride the bounded remainder — distinct from EXIT, which flattens. - **Syntax:** supported - **Runtime:** implemented — INVALIDATE halts acquisition while filled inventory persists (RUNTIME §5). - **Evidence:** none - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: INVALIDATE is enforced by the runtime during a kestrel.session lifecycle. - **Source receipts:** `src/engine/plans.ts` - **Test receipts:** `tests/engine.plans.test.ts` - **Public examples:** `core-plan-fade`, `plan-fade-flush` ### RELOAD ladder `plan-reload` Add rungs into the thesis on further confirmation — worse price = better entry for a fade; the ladder IS the thesis. - **Syntax:** supported - **Runtime:** implemented — Reload rungs re-checked against cumulative budget at every placement (RUNTIME §5). - **Evidence:** mechanical (practice) — Reload rungs armed in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: RELOAD rungs are managed by the runtime during a kestrel.session lifecycle. - **Source receipts:** `src/engine/plans.ts` - **Test receipts:** `tests/engine.plans.test.ts` - **Public examples:** `doc-breakout-ladder`, `plan-fade-flush`, `plan-headline-chase` ### TP (take-profit tiers) `plan-tp` Take-profit tiers on the position — bank a fraction at a multiple, resting at a value anchor. - **Syntax:** supported - **Runtime:** implemented — TP maintenance runs in the manage phase of every fired plan (RUNTIME §5). The tier threshold is evaluated on fair (the value anchor, kestrel-lic3): with an `@` the sell arms once fair crosses the threshold and rests at the `@` exec anchor; without one it rests at the target-derived price immediately and fills on market crossing. - **Evidence:** mechanical (practice) — TP tiers rested in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: TP tiers are maintained by the runtime during a kestrel.session lifecycle. - **Source receipts:** `src/engine/plans.ts` - **Test receipts:** `tests/engine.plans.test.ts` - **Public examples:** `doc-breakout-ladder`, `doc-buy-the-flush`, `plan-fade-flush`, `plan-headline-chase`, `plan-open-drive` ### Pod / Book / Risk org `pod-book` The recursive org tree — an allocating Pod (PM + envelope) over Books (the only place positions live); budgets nest, authority only narrows. - **Syntax:** supported — Concrete POD/BOOK/RISK statements parse and round-trip; the public example is proposed skeleton notation. - **Runtime:** implemented — Book envelope arbitration and org-tree budget nesting are enforced by the engine; deeper Pod recursion is still narrow. - **Evidence:** none - **Access:** text: available, sdk: available, cli: available - **Source receipts:** `src/engine/plans.ts`, `src/lang/parse.ts`, `src/org/index.ts` - **Test receipts:** `tests/engine.plans.test.ts`, `tests/lang.parse.test.ts` - **Public examples:** `grammar-skeleton` ### BOOK price anchors `price-book-anchors` bid · ask · mid · last · join · improve — queue position, not value; a dark side fails the line closed. - **Syntax:** supported - **Runtime:** implemented — Read off the leg quote; a needed dark side makes the whole line unresolvable (fail-closed, RUNTIME §4). - **Evidence:** none - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: BOOK anchors parse via kestrel.validate and price orders the runtime places across the kestrel.session lifecycle. - **Source receipts:** `src/engine/pricing.ts` - **Test receipts:** `tests/engine.pricing.test.ts` - **Public examples:** `core-plan-fade`, `doc-breakout-ladder`, `doc-buy-the-flush`, `overview-plan`, `plan-fade-flush`, `plan-headline-chase`, `plan-open-drive` ### Price combinators `price-combinators` Combinators on any anchor: interpolation lean(a,b,x), guards min/max, offsets (fair-3c), tracking peg, bounds cap (buys) / floor (sells ≥ intrinsic), and time escalation esc. - **Syntax:** supported - **Runtime:** implemented — BUY caps compose tightest, SELL floors compose highest and always include intrinsic; peg reprices on ≥1-tick drift (RUNTIME §4). - **Evidence:** mechanical (practice) — peg/cap bounded the resting orders in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: combinators parse via kestrel.validate and bound the runtime's resting orders across the kestrel.session lifecycle. - **Source receipts:** `src/engine/pricing.ts` - **Test receipts:** `tests/engine.pricing.test.ts` - **Public examples:** `core-plan-fade`, `doc-breakout-ladder`, `doc-buy-the-flush`, `overview-plan`, `plan-fade-flush`, `plan-headline-chase`, `plan-open-drive` ### VALUE price anchors `price-value-anchors` fair · intrinsic · basis — model worth, settle floor, and your own cost; a quote is never a value. - **Syntax:** supported - **Runtime:** implemented — fair = ExecutionFair with receipts; a silent mid is forbidden and every fallback is annotated (RUNTIME §4). - **Evidence:** mechanical (practice) — Priced the fills graded in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: the runtime resolves VALUE anchors while pricing fills across the kestrel.session lifecycle (kestrel.validate parses them). - **Source receipts:** `src/engine/pricing.ts`, `src/fair/index.ts` - **Test receipts:** `tests/engine.pricing.test.ts`, `tests/fair.test.ts` - **Public examples:** `core-plan-fade`, `doc-breakout-ladder`, `doc-buy-the-flush`, `overview-plan`, `plan-fade-flush`, `plan-headline-chase`, `plan-open-drive` ### Byte-stable round-trip `roundtrip` print(parse(text)) is a byte-stable fixed point; the typed object model is canonical and text is a projection of it (ADR-0004). - **Syntax:** supported - **Runtime:** implemented — print ∘ parse is idempotent and canonical; golden fixtures pin the contract. - **Evidence:** none - **Access:** text: available, sdk: available - **Source receipts:** `src/lang/parse.ts`, `src/lang/print.ts` - **Test receipts:** `tests/docs.fences.test.ts`, `tests/lang.comments.test.ts`, `tests/lang.golden.test.ts` - **Public examples:** `doc-breakout-ladder`, `doc-comments-roundtrip` ### Trigger algebra (WHEN) `trigger-algebra` The shared WHEN expression language — named series × predicates (compare, cross, held, within, velocity) × AND/OR/NOT — used by Wake, Plan, and Grade alike. - **Syntax:** supported - **Runtime:** implemented — Tri-state, causal evaluation with per-trigger edge memory over the series provider (RUNTIME §3). - **Evidence:** mechanical (practice) — Triggers gated the plans in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: WHEN parses via kestrel.validate and the runtime evaluates it across the kestrel.session lifecycle. - **Source receipts:** `src/lang/parse.ts`, `src/series/trigger.ts` - **Test receipts:** `tests/engine.plans.test.ts`, `tests/series.test.ts` - **Public examples:** `core-plan-fade`, `core-wake`, `doc-breakout-ladder`, `doc-buy-the-flush`, `overview-plan`, `plan-fade-flush`, `plan-headline-chase`, `plan-open-drive`, `wake-fast-move` ### USING scoped defaults `using-defaults` Scoped signal/exec defaults for a document; any leg may override — composition over repetition. - **Syntax:** supported - **Runtime:** implemented — Defaults resolve into each leg at build/arm; per-leg overrides win. - **Evidence:** mechanical (practice) — USING scoped the plans in the agent-day-1 practice-tier run. - **Access:** text: available, sdk: available, cli: available, mcp: available — MCP: USING resolves into each leg at arm through the kestrel.session lifecycle (kestrel.validate parses it). - **Source receipts:** `src/engine/plans.ts`, `src/lang/parse.ts` - **Test receipts:** `tests/engine.plans.test.ts`, `tests/lang.parse.test.ts` - **Public examples:** `doc-breakout-ladder`, `grammar-skeleton`, `plan-headline-chase`, `plan-open-drive` ### View statement `view` The standing definition of what should be seen — which panes, at what token budget — materialized as a Frame. - **Syntax:** supported — Concrete VIEW statements parse and round-trip (lang.parse; see the frame-view example); the grammar skeleton is proposed notation. - **Runtime:** partial — The Frame renderer (keyframe + delta) is implemented; wiring a VIEW statement's pane selection into it is not complete. - **Evidence:** none - **Access:** text: available, sdk: available, mcp: available — MCP: the OPEN Frame is delivered by kestrel.session.start (the typed SessionFrame struct verbatim — a Rendering of it is the caller's); a VIEW document is authorable across the session. - **Source receipts:** `src/frame/index.ts`, `src/lang/parse.ts` - **Test receipts:** `tests/frame.test.ts`, `tests/lang.parse.test.ts` - **Public examples:** `frame-view`, `grammar-skeleton` ### Wake statement `wake` A standing subscription over the trigger algebra that spends attention (tokens, wakes), never risk; it delivers a View. - **Syntax:** supported — Concrete WAKE statements parse and round-trip (lang.parse; see the core-wake example); the grammar skeleton is proposed notation. - **Runtime:** partial — The runtime emits WAKE informs for fired plans (fire-then-inform); a standalone WAKE subscription scheduler is not yet wired. - **Evidence:** none - **Access:** text: available, sdk: available, mcp: available — MCP: a WAKE document is authored via the kestrel.session lifecycle (advance/revise supersede); the runtime emits WAKE informs for fired plans across the session. - **Source receipts:** `src/lang/ast.ts`, `src/lang/parse.ts` - **Test receipts:** `tests/lang.parse.test.ts` - **Public examples:** `core-wake`, `grammar-skeleton`, `wake-fast-move` ## Public examples resolved to capabilities Every Kestrel fence shipped in `README.md` and `docs/public/**` (extracted by the gsh.1 checker) resolves to at least one catalogued capability. An orphan example fails CI. | Example fence | Role | Source | Capabilities | | --- | --- | --- | --- | | `core-grade` | example | docs/public/lexical-core.md:63 | `grade`, `grade-counterfactuals` | | `core-plan-fade` | example | docs/public/lexical-core.md:50 | `plan`, `plan-invalidate`, `price-book-anchors`, `price-combinators`, `price-value-anchors`, `trigger-algebra` | | `core-wake` | example | docs/public/lexical-core.md:38 | `trigger-algebra`, `wake` | | `doc-breakout-ladder` | example | docs/public/grammar-fences.md:22 | `plan`, `plan-exit`, `plan-reload`, `plan-tp`, `price-book-anchors`, `price-combinators`, `price-value-anchors`, `roundtrip`, `trigger-algebra`, `using-defaults` | | `doc-buy-the-flush` | example | docs/public/grammar-fences.md:52 | `comments`, `plan`, `plan-tp`, `price-book-anchors`, `price-combinators`, `price-value-anchors`, `trigger-algebra` | | `doc-clause-skeleton` | proposed | docs/public/grammar-fences.md:68 | `plan` | | `doc-comments-roundtrip` | example | docs/public/grammar-fences.md:38 | `comments`, `roundtrip` | | `doc-reject-atomic` | reject | docs/public/grammar-fences.md:102 | `fail-closed-atomic` | | `doc-reject-budget` | reject | docs/public/grammar-fences.md:93 | `fail-closed-budget` | | `doc-reject-exit-on-mark` | reject | docs/public/grammar-fences.md:83 | `fail-closed-exit-on-mark` | | `frame-view` | example | docs/public/first-frame.md:14 | `view` | | `grade-headline-chase` | example | README.md:300 | `grade`, `grade-counterfactuals` | | `grade-open-drive` | example | docs/public/first-grade.md:11 | `grade`, `grade-counterfactuals` | | `grammar-skeleton` | proposed | README.md:137 | `grade`, `module-imports`, `plan`, `pod-book`, `using-defaults`, `view`, `wake` | | `overview-plan` | example | docs/public/overview.md:68 | `plan`, `price-book-anchors`, `price-combinators`, `price-value-anchors`, `trigger-algebra` | | `plan-acquire-open` | example | README.md:233 | `plan-arm` | | `plan-fade-flush` | example | README.md:186 | `comments`, `plan`, `plan-invalidate`, `plan-reload`, `plan-tp`, `price-book-anchors`, `price-combinators`, `price-value-anchors`, `trigger-algebra` | | `plan-headline-chase` | example | README.md:97 | `comments`, `plan`, `plan-exit`, `plan-reload`, `plan-tp`, `price-book-anchors`, `price-combinators`, `price-value-anchors`, `trigger-algebra`, `using-defaults` | | `plan-manage-adopt` | example | README.md:217 | `plan-arm` | | `plan-open-drive` | example | docs/public/first-plan.md:9 | `plan`, `plan-exit`, `plan-tp`, `price-book-anchors`, `price-combinators`, `price-value-anchors`, `trigger-algebra`, `using-defaults` | | `wake-fast-move` | example | docs/public/first-wake.md:10 | `trigger-algebra`, `wake` | ## Coverage integrity - **Orphan examples** (public fence resolving to no capability): none - **Orphan capabilities** (catalogued but with no public example): none