# Scanner View (/docs/views/scanner)





The **Scanner** is the PM's discovery half. A **Scan** is a Wake whose scope is a whole
*universe* rather than a single Coverage — all of NYSE and NASDAQ at `move(1d) > p99`, say —
wide and slow. When one fires on a name, the Scanner does the single-name deep read that decides
whether the PM should author a new leaf — a Book with its Coverage, thesis, and budget — into the
pod, or leave the name alone.

## The seat [#the-seat]

**Task.** Read one name deeply on a minutes-latency budget; separate a real move from a
head-fake; and hand the PM a leaf worth authoring — or ignore it. The Scanner is a filter on the
pod's attention: most scan fires should end in "leave it," and the screen is built to make that
call quickly and honestly.

**Timescale.** Minutes, single-name. Slower than the Watcher's seconds, faster than the
Strategist's session framing — a distinct budget for a distinct job, which is why it reads its own
screen rather than the framer's.

**When it fires.** On a **scan-fire wake**: a universe-scoped trigger, not a Coverage on a name
the pod already holds. It is a wake View, seated to the PM — the discovery counterpart to the PM's
allocation cockpit (see the [PM View](/docs/views/pm)).

## The View [#the-view]

```kestrel
VIEW scan-fire
  levels
  series-summary
  prior-context
  tape 5m
```

The order is built for the "real move or head-fake?" question. `levels` fixes where the name is
in its own day. `series-summary` gives the numeric trend directly — drift, slope, close-vs-VWAP,
and a velocity distribution — a machine-legible read of the move that a bar-chart alone cannot
convey to an embedding. `prior-context` sizes the move against the prior close. `tape 5m` shows
the recent shape. There is deliberately no chain and no acting kernel: the Scanner holds nothing
and prices nothing, so a screen weighted toward positions would be noise. It reads to *decide
whether to engage*, not to manage an engagement.

With `seatViews: "founder"` set, a scan-fire wake seated to the PM resolves to this View; an
authored View still wins, and with no seat the wake falls back to the phase default.

## The screen [#the-screen]

<PerceptScreen title="scan-fire · wake 1" caption="renderWakeDelta · kestrel-renderer/8 · byte-real" text="scanFire" />

## Open vs wake [#open-vs-wake]

The Scanner's screen is a **wake** screen with a discovery slant. Like every frame it leads with
the safety kernel — here flat, holding nothing — but its market panes are trend-and-context, not
inventory: `series-summary` and `prior-context` where the Watcher's screen carries `delta` and a
chain. The difference is the task. The Watcher manages a position it holds; the Scanner decides
whether a position should exist at all. Both are wakes; the seat is what makes them different
screens.

The Scanner reads the **equity-index** variant here — a single US equity name on `equity-rth`. The
same discovery read extends to futures, perpetuals, and FX through the same View grammar as those
variants ship (see [the variant axis](/docs/views#the-variant-axis)); a perpetual's screen, for
instance, names the absence of a daily close in `prior-context` rather than inventing one.
