# appshell-scope-5 — THE sweep (no fences, mechanical oracle)

> Kickoff: Fable, 2026-07-22. Operator correction, verbatim: "when I say
> sweep, I mean a sweep." Previous sweeps (appshell-scope-4 and earlier)
> were fenced and gated on eyeballs; Overview and Settings still carry old
> tokens, old styles, and off-scale typography. **This package supersedes
> every fence.** The orchestration failure is ledgered in DECISIONS.

## Operator findings (Agent Overview + Settings, live)

1. Old design tokens and old-design styling still present on Agent
   Overview AND Settings (screens never named in his earlier steers — he
   found them himself; assume more screens hide the same).
2. Text sizing "all over the place" — the typography rules
   (design/tokens.md scale) are ignored on half the page.
3. Noisy text on Overview (violates the simplify law).
4. Overview's redirect applies INVISIBLE filters that need a refresh to
   remove (functional bug — Seat H).
5. Channels are missing on Overview (Seat H).

## Seat G — conformance oracle + repo-wide style sweep

**Build the oracle FIRST, as a permanent test, then sweep to zero.**

1. Inventory the legacy: every class prefix, token name, raw color, font
   size, and style idiom that predates the approved sheet
   (`apps/web/src/styles/tokens.css` is the ONLY sheet; `design/tokens.md`
   is its law). Sources: the old css files' git history, `so-*` prefixes,
   raw hex/rgb outside tokens.css, font-size/weight values not from the
   scale variables, shadows/radii not from tokens.
2. Write `apps/web/src/styles/conformance.test.ts` (vitest): scans ALL
   web source + css and FAILS listing every violation (file:line). No
   allowlist entries without a `ponytail:`-style justification comment.
   This test runs in the normal web suite forever — a regression can
   never ship silently again.
3. Sweep EVERY screen to zero violations. No fences: Agent, Settings,
   Inbox, Contacts, Campaigns, Templates, Flows, everything routable —
   dormant screens included (they render from the same bundle).
4. Evidence: the conformance test passing (0 violations) + screenshots of
   Overview and Settings at 320/768/1440 into
   `plans/rethink/evidence/appshell-scope-5/`.

Gate bar: `conformance.test.ts` green with zero allowlist entries beyond
justified ones; full web suite green; vite build; published.

## Seat H — Agent Overview content + behavior

1. **Invisible-filter redirect bug**: root-cause it (likely: Overview
   links navigate to Activity/other screens with query/preset filters
   that persist without any visible chip). Fix = filters applied by
   navigation must be VISIBLE and clearable in place — never require a
   refresh. Debug-issue discipline: repro test first.
2. **Channels missing**: Overview must show all live channels
   (WhatsApp, Instagram, Facebook) wherever it breaks down by channel —
   derive the channel list from the shared registry (Seat B's
   `channel-cases.ts` precedent), never hardcode.
3. **Noise-text diet**: apply the simplify law to every string on the
   screen — short, plain, no engineering vocabulary, fewer visible
   concepts. Also fix the boarded 320px overflow ("Canary (1)" pill,
   pre-existing).
4. Typography from the token scale only (coordinate: Seat G's checker is
   the oracle; your screen must pass it).

Gate bar: repro test for the filter bug red→green; channel list pinned to
registry; Overview passes the conformance test; web suite green.

## Shared rules

Both seats: `corepack pnpm` (pnpm not on PATH); per-package vitest forks
pool maxForks=2; atomic pathspec commits, rebase with backoff, pushed
state must build; tokens are law; publish pre-authorized (orchestrator
sequences the final publish). Seat H owns Overview.tsx content/behavior;
Seat G owns styles/classes everywhere — overlap on Overview resolves by
rebase, both must leave the conformance test green.

## Stage log

- 2026-07-22: kickoff written; Seats G+H dispatched.
