# Views (/docs/views)





A **View** decides *what* an agent sees when the runtime wakes it; the agent decides *what to
do* with it. A Kestrel pod is not one agent but a small organization of **seats** — roles
distinguished by the deliberation budget they can afford — and each seat reads a different
screen because each seat does a different job at a different speed.

This section is the library of those screens. It is organized on two axes, the same two the
engine's own template-cell key turns on:

* **By seat / role** — one page per View, each explaining its layout in terms of the seat's
  task and timescale: the [Strategist View](/docs/views/strategist), the
  [Watcher View](/docs/views/watcher), the [Scanner View](/docs/views/scanner), and the
  [PM View](/docs/views/pm).
* **By market variant** — instrument class, timescale, and strategy archetype. The Views you
  see today are the equity-index options variant; the same View grammar carries the other
  instrument classes, described under [The variant axis](#the-variant-axis) below.

## What a View is [#what-a-view-is]

A seat's screen is not a monolith. It is assembled through four layers, each answering a
different question, each authored on its own:

1. **Seat** — &#x2A;who is this?* A role in the pod org, fixed by its affordable deliberation
   budget: a PM and a Strategist are slow, deliberate, frontier-class judgment (dollars, a few
   times a day); a Watcher is the fast reflex (pennies, seconds); a Trigger is a non-LLM reflex
   below even the Watcher. Seats' latency envelopes differ by **orders of magnitude**, which is
   why no single model fills them all well.
2. **Tasks** — &#x2A;what must it decide?* The seat's job: allocate an envelope, author a leaf,
   manage held inventory, summon a bigger brain. The tasks fix what information is
   decision-relevant.
3. **View config** — &#x2A;what does it see?* The role-keyed View — the panes, in order, at the band
   the wake zooms to. This is the layer this section is about. Perception is tuned here.
4. **Persona / Brief** — &#x2A;how does it lean?* The soft, directional English the seat reasons
   *from* (a "disciplined risk manager," a "momentum chaser"). Personas tune **policy**; Views
   tune **perception** — different channels, both role-attachable, and the Brief never enters
   admission (it directs, it never authorizes).

The seat and its persona are policy; the View is perception. This section fixes layer 3 and
leaves layers 1, 2, and 4 to their own documents.

## The pod [#the-pod]

<PerceptScreen variant="diagram" title="pod tier stack" text="tierStack" />

Reading the stack: **Risk is the L0 layer**, not a seat — strictly subtractive, above everyone.
The **PM** runs a Pod (allocates children's envelopes, arms and de-arms, assigns Coverage,
watches aggregates) and splits into an **Allocator** half and a **Scanner** half. The
**Trader** runs a Book (a leaf, the only place positions live) and splits into a **Strategist**
and a **Watcher**. The **Trigger** is the pod's third live tier below the Watcher — a non-LLM
reflex that *summons*, never decides, and so reads the frozen Frame's features directly rather
than a screen. The **Historian** works off-tape after the close, reading Blotters and Grades
rather than a live Frame; it curates the pod's memory and evolves the Brief. Trigger and
Historian have no View by construction, for opposite reasons — one reads below language, the
other reads after the session.

The pod-seat roster is closed — `pm`, `strategist`, `watcher` — and it is the `role` axis of
the engine's evidence cell key. A seat is admitted only where its sub-job genuinely diverges:
by latency of at least an order of magnitude, by a typed boundary a document crosses, and by
being independently measurable. That filter is why Risk stays a mechanism, the Grader stays an
engine, and the Trigger stays a tier — none of them a seat.

## How a View is chosen [#how-a-view-is-chosen]

Every wake resolves to exactly one View through a strict precedence:

```
explicit authored View  >  seat founder View  >  phase default
```

* An &#x2A;*explicit `view`** — one an agent authored, scheduled, or a Wake forced — always wins. A
  seat never overrides an authored lens.
* Otherwise, when the driver knows the acting **seat**, that seat's founder View for the frame
  kind is used (the Strategist's at the open, the Watcher's and the Scanner's on a wake).
* Otherwise the frame kind's **phase default** panes render — byte-identical to a run with no
  seat at all.

Seat Views are **opt-in**. By default a Session runs the phase-default panes and consults no
seat; set `seatViews: "founder"` on the `AgentConfig` to have each acting seat read its View.
The two settings are distinct experimental subjects and fold into the run's `ConfigId`
automatically, so a `founder` run and a `phase-default` run are always separable in the record.
Where a seat has no View for a frame kind — a Strategist at a wake, a Watcher at the open, the
PM's allocation half — resolution falls through to the phase default; absence is a first-class
value, never a silently fabricated screen.

Every rendered screen in this section is **byte-real** — generated from the live renderer, never
hand-typed, so a renderer change re-pins the screens or CI goes red. Every View block is written
in real Kestrel syntax and round-trips byte-stable against its golden corpus.

## The seat axis [#the-seat-axis]

| View                                      | Seat                 | Task                                                                      | Timescale                            | Frame |
| ----------------------------------------- | -------------------- | ------------------------------------------------------------------------- | ------------------------------------ | ----- |
| [Strategist View](/docs/views/strategist) | Strategist           | Frame the session, author the plans, price the exits                      | A few times a day, at dollars a call | OPEN  |
| [Watcher View](/docs/views/watcher)       | Watcher              | Manage held inventory inside its plans; escalate at the edge of certainty | Seconds, at pennies a call           | WAKE  |
| [Scanner View](/docs/views/scanner)       | PM (discovery half)  | Read one name deeply when a universe-wide scan fires                      | Minutes, single-name                 | WAKE  |
| [PM View](/docs/views/pm)                 | PM (allocation half) | Allocate children's envelopes; watch aggregate exposure                   | Slow, aggregate                      | —     |

The Strategist and the Watcher are the two halves of the Trader that runs a Book; the Scanner
and the PM's allocation cockpit are the two halves of the PM that runs a Pod. Each half is a
distinct layout because each does a distinct job at a distinct speed — which is exactly the
"different layout by task and timescale" this section is organized around.

## The variant axis [#the-variant-axis]

A View is composed once and rendered against whatever market the instrument declares. The market
a screen speaks is set by the instrument's **SessionScheme** — the registry attribute that
declares an instrument's boundary stream (its opens, closes, and session splits). Four schemes
ship today:

| Variant                          | SessionScheme       | Status                                  |
| -------------------------------- | ------------------- | --------------------------------------- |
| US equity & index options (0DTE) | `equity-rth`        | **Shipped** — the Views in this section |
| CME futures                      | `cme-rth-overnight` | On the same View grammar                |
| Crypto perpetuals                | `perp-utc-day`      | On the same View grammar                |
| Spot FX                          | `fx-week`           | On the same View grammar                |

The founder Views documented here are the **equity-index options** variant, and their panes are
options-native: the chain pane with its intrinsic-floored fair, the pin, the expiry-relative
session ordinals, the theta the Watcher pays to hold. They render against `equity-rth`, the
default scheme every equity and index instrument resolves to.

The other three schemes ride the **same View grammar and the same seats**. A perpetual's rolling
UTC day has no daily close, so its `prior-context` pane names that absence instead of inventing a
midnight bar; a CME instrument splits its RTH session from the overnight; spot FX runs a
Wellington-open-to-NY-Friday-close week. As each variant's panes land, its layouts join this
section as those Views — futures, perpetuals, and FX pages slot onto the variant axis without
disturbing the seat axis, because a variant changes the market a View speaks, not the seat that
reads it.
