RELEASE
planning/2.8.0/slates/DESIGN_OVERHAUL_SLATE.md
sha256 2aacb026d5920647 · 72913 bytes ·
original held in the private archive
# DESIGN_OVERHAUL_SLATE.md — RobCo U.O.S. Total Transformation Idea Slate
> **IDEATION ONLY.** Nothing here is implemented, committed, or pushed. This is a pick-from
> menu for the owner. Lives in gitignored `planning/`. Grounded in the live `dev` build
> @ `cd8a824` (v2.7.0, cache `-r38`, 1903 tests / 157 suites) — every surface named below was
> read out of the actual code, not imagined.
>
> **The bar:** `planning/mockups/module-bay-mockup.html` — "I am operating real 2077 RobCo
> hardware." This slate takes that feeling and makes it the *entire site*, **2–3× bolder**.
---
## 0. HOW TO READ THIS
### 0.1 The North Star (owner, re-confirmed verbatim spirit)
When this is done it should **not look like the same site** — a *total transformation, not a
reskin*. The current app is the **foundation** (data, systems, correctness, save integrity) but
**not the destination**. The Module Bay is the floor, not the ceiling. And it is **per-game**:
every part of the UI — settings included — becomes *that machine's own version*.
- **New Vegas** = a **salvaged, jury-rigged wasteland terminal** (RobCo desk unit wired into a
Pip-Boy uplink — scavenged, warm-amber-capable, held together with courier grit).
- **Fallout 3** = a **Pip-Boy 3000 on the wrist** (Vault-Tec issue, grimy Capital-Wasteland
green, dented casing, the device *strapped to you*).
- **Fallout 4** = an **Institute holo-terminal** (clean, cold, synthetic-blue, floating glass and
projected light — the "too-perfect" machine). **Design-only this cycle; refined at 3.0.**
### 0.2 The 6 UNLOCKS (all greenlit — the slate assumes them)
1. **The AI/Overseer has a FORM.** Not a text box — a diegetic *presence* (a CRT face, a voice
readout, a character), different per game.
2. **Navigation is an EXPERIENCE, not tabs.** You move *through* the machine like a place.
3. **Per-game differs STRUCTURALLY, not just visually.** The three machines can be organized and
operated differently.
4. **First-boot / game-switch is a real CEREMONY** — powering on 2077 hardware.
5. **The whole app is a physical DEVICE** — bezel, screen curvature, chrome, custom cursor.
6. **Break webapp conventions for immersion** — **HARD GUARDRAIL: the PWA must not break**
(installable, offline, service worker, standalone all keep working).
### 0.3 HELD CONSTRAINTS (design *within* these — non-negotiable)
- **Player authority.** The AI is opt-in and *never* authoritative over durable state. Nothing
here changes that. Every atmospheric idea writes **nothing** to the campaign save.
- **Free + offline + PWA-intact.** No paid infra, bring-your-own AI key, works in airplane mode.
- **The campaign save/data layer is SACRED.** The visual overhaul never touches save integrity or
the atmosphere↔save boundary. Skin the terminal all you like; the `robco_v8` container and its
migrate/sanitize path are untouchable.
- **Mobile AND desktop both fully work** (they may *differ* — and should).
- **Accessibility floor still holds** (reduced-motion, AA contrast, ≥16px inputs, ≥28px targets,
literal ARIA) even though it's back-burner as a *driver*.
### 0.4 STANDING DESIGN RULES (apply everywhere in this slate)
- **★ THE CENTERING RULE (NEW — now a standing rule).** *Nothing sits visibly off-center.* Any
incomplete final row in any grid **centers** its leftover items — 1 leftover → centered; 2 →
centered as a pair; never left-aligned against an empty gap. This applies to **every** grid and
layout in the overhaul (chip grids, tube racks, macro pads, save slots, map cells, tool trays,
the whole IA). Where a grid can't center cleanly, choose a column count that divides evenly for
the common case. Treat "off-center = a bug" as a design principle. *(Implementation-agnostic:
`justify-content:center` on the wrapping flex/grid, or a `:last-child:nth-child(odd)` centering
rule — the DECISION is what's locked here, not the mechanism.)*
- **Diegetic-first, literal-safe.** Visible chrome obeys HOUSE_STANDARD voice (`> ` prompts,
ALL-CAPS, `[BRACKETED]` status, `⚠` faults, "OPTICS" not "dark mode"). ARIA/alt text stays
plain and literal underneath.
- **Reduced-motion is a first-class variant, not an afterthought** — every animated idea names its
reduced-motion resting state.
- **One house feel under N skins.** The three machines share a *motion language* and *interaction
grammar* (§L) so the site feels like one family of hardware, not three websites.
### 0.5 RATING KEY (every idea carries this line)
`⏱ Effort: S | M | L | XL` · `⚡ Impact: ★ (nice) → ★★★★★ (defines the overhaul)` ·
`⚑ Risk: [perf] [scope] [mobile] [a11y] [pwa] [save-boundary] [none]` ·
`✅ Alignment: which held-constraints it must clear`
- **Effort:** S = hours / one file. M = a unit. L = a chapter. XL = a multi-unit program.
- Ideas are **not** all recommended — recommendations are called out explicitly per area, and the
cut-list (§N) trims scope. This is a menu.
---
## 1. THE DESIGN LANGUAGE — the "one house, three machines" spine (§cohesion anchor)
Before the per-area ideas: the through-line that makes 2–3× bolder *cohere* instead of
fragmenting. Every later section references this.
### 1.1 The physical model: "You are holding the device"
Today the app is a webpage with a CRT overlay. The overhaul reframes the **entire viewport as the
screen of a physical machine**, with the machine's *body* rendered around it:
```
┌─────────────────────────────────────────────┐
│ ▓▓ BEZEL ▓▓ [device chrome — per game] ▓▓ │ ← physical casing: rivets (FO3),
│ ┌─────────────────────────────────────────┐ │ scavenged plates (NV),
│ ▓│ │▓ │ seamless glass (FO4)
│ ▓│ (( curved CRT glass — the app )) │▓ │
│ ▓│ slight barrel distortion at edges │▓ │ ← screen curvature (subtle,
│ ▓│ phosphor bloom, scanlines, vignette │▓ │ reduced-motion-safe)
│ ▓│ │▓ │
│ ▓└─────────────────────────────────────────┘▓ │
│ ▓▓ [ dial ] [ latch ] [ lamps ● ● ● ] ▓▓ │ ← hardware controls live ON the bezel
└─────────────────────────────────────────────┘
```
- The **bezel is where hardware controls live** — the Module-Bay dial, the power lamp, the
cartridge slot, hardware-life indicator LEDs. This is the single biggest "it's a device"
multiplier and it *unifies* the three games (same bezel *grammar*, different bezel *material*).
- **Screen curvature**: a very subtle CSS barrel/vignette on the content frame so the "glass" reads
as convex. Reduced-motion and low-power keep it static; it never distorts *text legibility* (the
curve lives on the frame + a corner-darkening layer, not a transform on the text).
- **Custom cursor** per machine: NV = a chunky amber block caret / crosshair; FO3 = a Pip-Boy
selection reticle; FO4 = a thin Institute pointer with a soft glow. Falls back to system cursor
on coarse-pointer (touch) — no cursor cost on mobile.
`⏱ Effort: L · ⚡ Impact: ★★★★★ · ⚑ Risk: [perf][mobile][a11y] · ✅ must clear reduced-motion +
no-text-distortion + mobile (bezel becomes a thin band, §G)`
### 1.2 The motion language (shared grammar, per-game tuning)
One vocabulary of motions, re-tuned per machine so they feel related:
| Motion verb | What it is | NV (salvaged) | FO3 (Pip-Boy) | FO4 (Institute) |
|---|---|---|---|---|
| **SEAT** | a thing installs/commits | mechanical *thunk*, slight overshoot | firm click, dust-settle | frictionless glide + soft chime |
| **SWEEP** | focus/selection moves | amber phosphor smear | green scanline wipe | blue light travels a rail |
| **WAKE** | screen powers/returns | flickery warm-up | tube warm + jitter | instant, too-clean fade-in |
| **FAULT** | error/alert | hard red glitch + static | rad-shudder | calm blue "ANOMALY" pulse |
| **BREATHE** | idle/standby life | slow phosphor drift | dim tube hum | glass shimmer |
- The **verbs are constant**; the **texture** changes. That's what makes three machines feel like
one company's product line. Every micro-interaction in §I is one of these verbs.
`⏱ Effort: M (as a token/class system) · ⚡ Impact: ★★★★ · ⚑ Risk: [scope] · ✅ reduced-motion
resting state per verb`
### 1.3 The interaction grammar (structural cohesion)
Two rules that hold across all three machines even when they're organized differently (Unlock 3):
1. **Everything is a component you operate, not a control you set.** A toggle is a *chip you
pull*, a mode is a *dial you turn*, a screen is a *cartridge you load*. (The Module Bay already
proves this; the overhaul extends it site-wide.)
2. **State reads at a glance, physically.** Lit LED = on, dark socket = off, dashed = removed,
solid = seated. A technician reads the board without reading labels. Carry this to *every*
surface — quests, inventory, map, factions all get a "physical state at a glance" pass.
---
## 2. AREA A — LAYOUT / IA & NAVIGATION REINVENTION
**Current reality (from inventory):** 4 tabs — `STAT` / `INV` / `DATA` / `CAMPG` — driving a
two-column desktop shell (panel list left, Comm-Link right) that collapses to a single stacked
column on mobile. ~25 `<details>` panels distributed across the tabs. Tab bar + uptime clock +
version in a pulsing header. This is a competent webapp IA. It is also the single biggest "still
looks like a website" tell. **The panel/tab layout is NOT fixed — this is the area to be boldest.**
### (a) EXPANDED IDEAS
**A-1 · "THE MACHINE HAS ROOMS" — navigation as moving through the device.**
Replace the abstract tab bar with **spatial movement through named subsystems** of the terminal.
Instead of STAT/INV/DATA/CAMPG, you traverse a machine:
```
ROBCO U.O.S. — SUBSYSTEM MAP [ you are here: ▸ OPERATIONS ]
┌────────────┬────────────┬────────────┬────────────┬────────────┐
│ OPERATOR │ OPERATIONS │ DATABANK │ UPLINK │ CHASSIS │
│ (bio/spec)│ (inv/craft)│ (quest/map)│ (comm-link)│ (settings) │
└────────────┴────────────┴────────────┴────────────┴────────────┘
▲ the "tab bar" becomes a subsystem selector on the BEZEL,
rendered as illuminated hardware buttons, not web tabs.
```
The move: the selector lives on the **device bezel** (§1.1), each subsystem is a *place* with its
own boot-in transition (a SWEEP, §1.2), and switching feels like re-tuning the machine to a
channel rather than clicking a tab. Deep, but the underlying `switchTab()` routing is preserved
(Unlock-3 structural freedom rides on top of the working router — Protocol 22/25).
**A-2 · The COMM-LINK stops being a right column and becomes the machine's "face."**
Right now chat is a co-equal blue column. In the overhaul, the **Overseer presence** (§C) is the
*center of gravity* — the thing you're talking to *is* the machine — and the data subsystems orbit
it. On desktop the Overseer face/readout sits central with subsystems as bezel-accessible drawers;
on mobile the Overseer is the home screen and subsystems slide over it.
**A-3 · Filesystem as a real navigable place (the OS fantasy).**
The parked plan already wants a `DIR`/`OPEN` filesystem skin (F2). Go bolder: make it a *primary*
navigation affordance, not a novelty — `ARCHIVES/` (saves), `INTERCEPTS/` (inbox), `MANUALS/`
(help), `LOGS/` (record+errors), `SYSTEM/` (Module Bay), `USER/` (notes+exports). A power user
navigates by typing a path; a casual user taps the illuminated subsystem buttons. Both routes hit
the same surfaces. This is the "it's an operating system, not a site" proof.
**A-4 · Diegetic wayfinding — the machine tells you where you are.**
A persistent bezel readout: `▸ SUBSYSTEM: OPERATIONS · 3 ACTIVE DIRECTIVES · RAD NOMINAL`. The
"breadcrumb" is a *status telemetry line*, not a web breadcrumb.
### (b) RECOMMENDATIONS
- **Adopt A-1 (subsystem model) as the spine, but keep the 4-way muscle memory as an alias.**
Rename/reframe the tabs into subsystems on the bezel, keep `[1]`–`[4]` hotkeys and the same
routing underneath. This is the highest-leverage single change in the whole overhaul and it's
*the* thing that stops it looking like the same site.
- **Do A-2 in tandem** — the Overseer-as-face reframe is what makes the subsystem model feel like a
machine you commune with rather than a nav menu. These two are the headline.
- **Ship A-3's filesystem as a SECONDARY power-route in this cycle** (command-driven), and consider
promoting it to primary at 3.0 once MANUALS/INTERCEPT exist. Don't force it as the only nav —
that risks discoverability and mobile ergonomics.
- **A-4 is a quick win** — it's a text line on the bezel; ship it early.
### (c) NEW FEATURES / ELEMENTS
- **Bezel subsystem selector** (illuminated hardware buttons + LEDs).
- **Subsystem SWEEP transition** (the per-game motion verb on nav change).
- **`GOTO`/`DIR`/`OPEN` command grammar** extending the existing TERMINAL-mode command router.
- **"You are here" telemetry line** on the bezel.
- **Per-subsystem ambient identity** — each subsystem can carry its own faint hum/scanline
character (Operations busier, Databank quieter), a §D/§F tie-in.
### (d) BUILDING ON CURRENT IDEAS
- The parked **B1 Command Language** + **F2 filesystem** already exist as plans — this area
*promotes* them from "nice command aliases" to "the actual navigation model." Reuses
`NATIVE_COMMAND_ROUTER`, `PANEL_NAV_ALIASES`, `COMMAND_REGISTRY`, `switchTab`, and
`expandPanelForCategory` — no parallel router (Protocol 22).
- The just-shipped **Module Bay** *is* the CHASSIS subsystem already — it proves the room model
works. The overhaul makes every subsystem a room to the Bay's standard.
`⏱ Effort: XL (spine) / S–M (A-4, aliases) · ⚡ Impact: ★★★★★ · ⚑ Risk: [scope][mobile][a11y]
[pwa] — nav is load-bearing; must keep hotkeys, deep-links, tab ARIA, and back-button/PWA routing
intact · ✅ mobile+desktop both, keyboard order preserved, offline`
> **★ SIGNATURE MOMENT (Area A):** the tab bar dies; in its place, **illuminated hardware
> subsystem buttons on the machine's bezel**, and switching subsystems *sweeps* the screen like
> re-tuning a channel. You navigate a machine, not a menu.
---
## 3. AREA B — PER-GAME IDENTITY (NV / FO3 / FO4 as three distinct MACHINES)
**Current reality:** per-game is data-driven but *shallow* — `GAME_DEFS[ctx].theme` swaps default
optic (FNV `green #14fdce` / FO3 `green3 #4fb05a`), `framing` string (`vegas`/`capital`), Pip-Boy
model string, boot flavor, save label. `data-game` CSS hooks are speced (GT-4) but not built. The
architecture is *ready* for deep per-game identity; almost none of it is *spent* yet. This is where
"go 2–3× bolder" has the most runway.
### (a) EXPANDED IDEAS — the three machines, structurally
**B-1 · NEW VEGAS — the salvaged desk terminal + Pip-Boy uplink.**
- **Material:** scavenged steel, mismatched panels, a courier's field-repairs (tape, a hand-etched
serial). Warm bias — amber is *native*, not just an optic.
- **Structure:** feels *jury-rigged* — the Overseer (§C) is a **scratchy uplink to the Lucky 38**,
intermittent, characterful. Boot is grimier. The bezel has *extra scavenged toggles* that do
real things (they're the Module Bay controls, surfaced as field-wired switches).
- **Signature:** the "MOJAVE UPLINK" handshake — the terminal *dials into* the wasteland network on
boot with a modem-handshake SFX and a flickery connection-establishing readout.
**B-2 · FALLOUT 3 — the Pip-Boy 3000 strapped to your wrist.**
- **Material:** Vault-Tec injection-molded casing, dented, Capital-Wasteland grime. The green is
*duller, heavier* (`green3`), scanlines thickest.
- **Structure:** this is the **most "device on your body"** machine. The bezel wraps like a wrist
unit; the subsystem selector is the Pip-Boy's rotary knobs. The Overseer here is **colder /
Vault-Tec institutional** — a Vault computer, not a companion.
- **Signature:** the **wrist-mounted framing** — on mobile especially (§G), the FO3 machine reads
as a device *held up to your face*, casing filling the screen edges.
**B-3 · FALLOUT 4 — the Institute holo-terminal (design-only this cycle).**
- **Material:** seamless white glass, projected blue light, no rivets, no grime — *unsettlingly
clean*. The "too perfect" machine.
- **Structure:** **structurally different** — instead of physical boards/chips, the FO4 machine
uses **floating holographic panes** you summon and dismiss; the Overseer is a **synthetic
Institute intelligence**, smooth and disquieting. Settings aren't a "Module Bay hatch" — they're
a **holographic configuration lattice** that assembles in mid-air.
- **Signature:** boot isn't a CRT warm-up — it's a **holographic projection assembling from
nothing** (light coalescing into the UI). Cold, silent, precise.
- **Status:** fully *designed* now (below), *built/refined at 3.0*. Its existence as a spec proves
the architecture is N-game and forces the abstraction to be right.
### (b) RECOMMENDATIONS
- **Make per-game a `GAME_DEFS[ctx].identity` block that owns FAR more than today** — not just
colors, but: bezel material, boot ceremony flavor, Overseer persona + presence style, motion-verb
texture (§1.2), cursor, ambient character, empty-state voice, and *structural mode* (physical
boards vs. holographic panes). One data block per machine; zero feature-code branching
(Protocol 38). This is the make-or-break architectural call and it's worth doing right.
- **Ship NV + FO3 fully this cycle; ship FO4 as the data block + design spec only** (its
`identity` entry exists and validates, but the holographic renderer is a 3.0 build). This keeps
the N-game promise honest and de-risks the cycle.
- **Lean into the structural difference for FO4** — if all three machines are just recolors, the
overhaul under-delivers. FO4 being *organized differently* (panes vs boards) is the proof of
Unlock 3 and the thing that makes the owner's "each is its own version" real.
### (c) NEW FEATURES / ELEMENTS
- **`GAME_DEFS[ctx].identity`** — the expanded per-machine data contract (material, ceremony,
persona, motion texture, cursor, structural mode, voice bank).
- **Per-game bezel materials** (CSS `[data-game]` skins on the §1.1 chrome).
- **Per-game Overseer persona** (§C) sourced from `identity.persona`.
- **Per-game structural mode flag** (`bay` vs `lattice`) — the hook FO4 needs.
- **Per-game cursor + motion texture.**
- **A per-game "hero object"** on each machine — NV's etched serial plate, FO3's Vault-Tec decal,
FO4's floating logo — the thing you see and instantly know which machine you're on.
### (d) BUILDING ON CURRENT IDEAS
- Directly extends the shipped **WU-T1/T2/T3** theming seam (`THEMES` table +
`GAME_DEFS.theme`) — the overhaul *widens* `theme` into `identity`, it doesn't replace it.
- Absorbs the parked **GT-4 (framing CSS)** and **GT-5 (game-styled saves)** and
**IMMERSION #12 (per-game EXPERIENCE as data)** — all become facets of `identity`.
- The **`data-game` root attribute** (already speced) is the CSS switch for all of it.
`⏱ Effort: XL (NV+FO3 machines) / L (FO4 spec) · ⚡ Impact: ★★★★★ · ⚑ Risk: [scope][mobile][a11y]
— 3 machines × 3 breakpoints × render-check is the real cost · ✅ game-agnostic (Protocol 38),
mobile+desktop, AA contrast per machine`
> **★ SIGNATURE MOMENTS (per machine):**
> - **NV** — the **MOJAVE UPLINK modem-handshake** on boot: your salvaged terminal dialing into the
> wasteland.
> - **FO3** — the **Pip-Boy wrist casing** wrapping the screen; a device held to your face.
> - **FO4** — the **holographic assembly boot**: the UI coalescing from projected light, silent.
---
## 4. AREA C — THE AI / OVERSEER DIEGETIC PRESENCE (Unlock 1)
**Current reality:** the AI is a blue COMM-LINK text column — a chat box. Input via textarea +
OVERSEER/TERMINAL mode pill + macro pad + `> TRANSMIT PROTOCOL`. The AI is GEM / THE DIRECTOR in
fiction, locked to Tri-Node JSON, opt-in, offline-degrading. **The FORM is now reimaginable.** This
is the most exciting unlock and the one that most changes "what the app *is*."
### (a) EXPANDED IDEAS
**C-1 · THE OVERSEER GAINS A FACE — a CRT presence, not a chat log.**
Give the AI a **diegetic on-screen presence**: an oscilloscope face / phosphor waveform / vault-boy
-style CRT avatar that *reacts* — idles with a slow scan when quiet, spikes and animates while
"thinking" (during an API call, riding the existing `startThermalLoad()` hum), settles when it
replies. The text response still appears (it's the transcript), but the *entity* you're talking to
is now visibly present and alive.
```
┌─────────────────────────────┐
│ ▁▂▃▅▇▅▃▂▁ DIRECTOR LINK │ ← waveform "face": idle = gentle sine,
│ ∿∿∿∿∿∿∿∿∿ [ LISTENING ] │ thinking = jagged spikes, speaking = pulse-to-text
│ │
│ > ...transcript appears │
│ below the presence... │
└─────────────────────────────┘
```
**C-2 · PER-GAME OVERSEER PERSONAS (ties to §B).**
- **NV** — the **Lucky 38 uplink**: a scratchy, intermittent, characterful signal. Static bursts,
dropped-carrier moments, a scavenger's-network feel. Warm but unreliable.
- **FO3** — the **Vault-Tec overseer computer**: cold, institutional, clipped. Green monochrome
face, bureaucratic cadence. "PROCESSING. STAND BY, RESIDENT."
- **FO4** — the **Institute synthetic**: smooth, disquietingly calm, *too* helpful. A clean blue
waveform that never jitters — which is its own kind of unsettling.
**C-3 · VOICE READOUT (opt-in, offline-safe).**
Optional **Web Speech synthesis** of the Overseer's replies (device SpeechSynthesis API — free,
offline on most platforms, no infra). A per-game voice character (pitch/rate). Strictly opt-in
behind a Module-Bay "VOX" chip, reduced-motion/quiet-hours aware, and *never required* — pure text
still works. This is a huge presence multiplier for ~zero cost.
**C-4 · THE THINKING STATE IS AN EVENT.**
Right now an API call is a spinner-ish wait. Make it a **diegetic transmission**: the presence
animates, the hum ramps (existing `startThermalLoad`), a `> ESTABLISHING DIRECTOR LINK…
DECRYPTING TELEMETRY…` readout ticks. The wait *becomes* immersion instead of dead time. Ties to
§J (loading states).
**C-5 · THE OVERSEER IS PRESENT EVEN WHEN OFFLINE / SILENT.**
When there's no key or the player isn't prompting, the presence still *idles* — a living face on a
powered machine (§D/§E ambient tie-in). It occasionally emits a diegetic status blip (not AI, a
template) so the machine never feels dead. This is the bridge between "the AI" and "the living
terminal."
### (b) RECOMMENDATIONS
- **Build C-1 (the waveform presence) + C-4 (thinking-as-event) as the core** — they're the
highest-impact, lowest-risk pieces (pure CSS/canvas animation over existing hooks, no new AI
behavior, no save touch). This is what turns "a chat box" into "an entity."
- **Wire C-2 personas through `GAME_DEFS[ctx].identity.persona`** — the presence's *texture* and
the diegetic status-line voice are per-game data. Big payoff, rides §B's data block.
- **Ship C-3 (voice) as an opt-in chip, clearly optional** — it's a wow-feature but must never be
load-bearing or on-by-default (accessibility + annoyance + battery). Great quick-win *after* the
presence exists.
- **C-5 is the tie that binds §C to §D/§E** — recommend it, but it's a consumer of the Ambient
Runtime, so it lands after that substrate.
### (c) NEW FEATURES / ELEMENTS
- **Overseer presence canvas** (waveform/oscilloscope face; idle/think/speak states).
- **Per-game persona pack** (visual texture + cadence + status-blip bank).
- **VOX chip** (opt-in speech synthesis, per-game voice).
- **Transmission choreography** for the thinking state.
- **Presence idle-life** (ambient blips when unprompted).
- **Reframe the input:** `> TRANSMIT PROTOCOL` stays, but the textarea becomes a **"hail the
Director" console** framed as talking *to the face*, not typing into a box.
### (d) BUILDING ON CURRENT IDEAS
- Reuses `startThermalLoad()`/`stopThermalLoad()` (the API-call hum already exists — the presence
just *visualizes* it), `appendToChat(…, 'sys')` for status blips, the OVERSEER/TERMINAL mode pill,
and the whole Tri-Node contract **unchanged** (Protocol 14/24 — the AI's *behavior* and JSON
shape don't move; only its *presentation* gains a body).
- Consumes the parked **INTERCEPT inbox / incoming-transmission** ideas (§D) — the presence is where
an incoming transmission visibly *arrives*.
`⏱ Effort: L (presence+personas) / S (voice chip) · ⚡ Impact: ★★★★★ · ⚑ Risk: [perf][a11y] — canvas
animation must be reduced-motion-safe + not spam aria-live; voice must be opt-in · ✅ player-authority
(presentation only, AI still opt-in + non-authoritative), offline (presence works with no key),
save-boundary (writes nothing)`
> **★ SIGNATURE MOMENT (Area C):** the AI **grows a face** — a living phosphor waveform that
> listens, spikes while it thinks, and pulses as it speaks, *in that game's voice*. You're no
> longer typing into a box; you're hailing the Director.
---
## 5. AREA D — LIVING WORLD / WASTELAND UPLINK IMMERSION
**Current reality:** the app is *reactive* — it only comes alive when you prompt the AI or change a
stat. Between prompts it's inert (standby just dims). The **Ambient Runtime** (`runtime.js`,
`OFF→COLD_BOOT→READY→ACTIVE→IDLE→STANDBY→SHUTDOWN`, one heartbeat, tier-gated observers) is *built
and live* — it's the substrate the parked WASTELAND UPLINK / IMMERSION plans need, and it's already
here. This area is *ready to build on*.
### (a) EXPANDED IDEAS
**D-1 · THE WASTELAND UPLINK — the machine is plugged into a living world.**
The parked MEGA idea, greenlit in spirit: a deterministic, **offline**, no-durable-write ambient
engine (runtime observers) that periodically emits diegetic world-life through *existing* channels:
- **Ambient broadcasts** — unsolicited `> [WASTELAND UPLINK] CARAVAN LOST NEAR NIPTON · TRADE
ADVISORY` sys-lines, templated from real state (loc, nearest faction, active-quest count),
per-game via `identity` banks. No AI, no network.
- **Rad-storm weather** — occasional storms drive the existing `body.rad-warning` CRT interference
+ a geiger tick-up, then clear. **Visual/audio only — never mutates `state.rads`.** (Owner
ruling: **weather yes, day/night NO** — no dusk/dawn cycle.)
- **INTERCEPT inbox** — rare `> UNKNOWN FREQUENCY DETECTED` nudges that arrive at the Overseer
presence (§C) and can pre-fill the input, inviting you back in.
**D-2 · YOUR DEEDS BECOME WASTELAND NEWS (read-only personal legend).**
Templated "news" that **reads** the Terminal Record / `eventLog` and echoes your actual deeds back
as wasteland chatter — "`> RADIO NEW VEGAS: A COURIER WAS SEEN LEAVING GOODSPRINGS…`". Never writes
state; pure read + template. Deep continuity for ~zero cost, and it makes the world feel like it
*noticed* you.
**D-3 · LOCATION-AWARE AMBIENCE.**
The terminal *sounds and reads different where you stand* — zone-type (from registry location
`type`) tunes the ambient character: a settlement is calmer, a ruin is tenser/geiger-ier, a Vault
hums. Rides §F sound + the §A per-subsystem ambient idea.
**D-4 · THE UPLINK AS A VISIBLE SUBSYSTEM.**
Rather than only sys-lines, give the living world a *home* — an `UPLINK` / `INTERCEPTS` subsystem
(§A) showing the frequency scanner, the inbox, broadcast history, the current "weather." A place to
*tune in*, not just passive noise.
### (b) RECOMMENDATIONS
- **Build the UPLINK on the existing Ambient Runtime as tier-gated observers** — this is the
correct, low-risk architecture and the runtime is already live. Every consumer declares an
immersion tier; Minimal = silent. **Hard invariant: writes nothing durable to the campaign**
(gate-guarded).
- **D-2 (deeds-as-news) is the emotional core** — recommend it strongly. It's the single idea that
makes the world feel *aware of you* and it's a pure read of data you already log.
- **Honor the owner ruling: weather yes, day/night no.** Rad-storms stay; no dusk/dawn.
- **Keep intensity conservative + dial-gated + off-lean at Minimal.** The failure mode is "noisy
gimmick" — mitigate with cooldowns and the immersion dial.
### (c) NEW FEATURES / ELEMENTS
- **UPLINK engine** (runtime observers, seeded rolls, device seed, template banks).
- **INTERCEPT inbox + frequency scanner** subsystem.
- **Rad-storm weather** (transient CRT + geiger, no state write).
- **Deeds-as-news** template layer (reads `eventLog`).
- **Per-zone ambient tuning.**
- **App-badge for unread intercepts** (reuses existing Badging API single-source).
### (d) BUILDING ON CURRENT IDEAS
- This is the **WASTELAND_UPLINK_SPEC + IMMERSION_AUDIT #1/#3/#4/#8/#10 + RECREATION #4**, all of
which are already written and consolidated — the overhaul is their *home*. It reuses
`appendToChat`, `body` CRT classes, geiger/hum, `RobcoEvents`, `_logEvent` (read-only), the app
badge, and `GAME_DEFS`.
- The **Ambient Runtime (A1)** shipped exactly to carry this — nothing new to invent at the
substrate level.
`⏱ Effort: L–XL · ⚡ Impact: ★★★★★ · ⚑ Risk: [perf][scope][save-boundary] — the no-durable-write
invariant is load-bearing and easy to breach; battery on the ambient loop · ✅ save-boundary
(writes nothing), offline (deterministic, no AI/network), player-authority (changes nothing you
didn't do), dial-gated`
> **★ SIGNATURE MOMENT (Area D):** the machine **echoes your own deeds back as wasteland news** —
> you walk out of Goodsprings and, an hour later, Radio New Vegas mentions a courier was seen
> leaving town. The world noticed you.
---
## 6. AREA E — HARDWARE LIFE (the terminal as salvaged, aging, personal hardware)
**Current reality:** boot has three flavors (normal / cold-first-boot / rare 1% degraded), the
Overseer's Log tracks boot count + power-on hours + longest session (device telemetry, local-only),
and there's a `robco_booted_before` gate. The bones of "this machine has a history" exist but are
buried in a DATA-tab panel almost nobody opens.
### (a) EXPANDED IDEAS
**E-1 · THE GLASS SHOWS THE MILES.**
Cosmetic **emergent wear** driven by *device* telemetry (boot count, power-on hours — data already
logged): a long-running terminal accrues faint, *purely cosmetic* CRT character — a slightly warmer
tube, a hair more scanline grime, a phosphor burn-in ghost of the header. **Always loses to real
hazards** (a rad-storm's effect overrides wear), reduced-motion-honored, never color-only. Your
machine ages *with you* and no two operators' terminals look identically worn.
**E-2 · THE MACHINE HAS A PERSONALITY / QUIRKS.**
Rare, characterful hardware *quirks* — an occasional flicker on wake, a tube that takes a beat to
warm, a relay that clicks. Deterministic, gentle, dial-gated. This is what makes it feel like *your
specific salvaged unit* rather than a fresh install. **Per-game:** NV's quirks are scavenger-jank,
FO3's are Vault-Tec-institutional wear, FO4's machine is *too clean to quirk* (its "quirk" is that
it never does — uncanny).
**E-3 · SYSTEM STATUS as a real machine-health readout.**
Consolidate Overseer telemetry + the `[LOGS]` error ring + a `RUN DIAGNOSTIC` self-test into one
**SYSTEM STATUS** surface framed as reading the machine's vitals — bus voltage, tube hours, memory
integrity, uptime. The machine reports its own health like real hardware.
**E-4 · THE COLD-BOOT HANDSHAKE (first power-on ceremony) — see §H.**
Hardware Life owns the once-per-device "this unit was just salvaged and powered on for the first
time" ceremony.
### (b) RECOMMENDATIONS
- **Ship E-1 (emergent wear) at a WHISPER.** The risk is gimmick; the win is a machine that feels
lived-in. Keep it *subtle*, dial-gated, and always subordinate to real hazards. Recommend, but
discipline the intensity hard.
- **E-3 (SYSTEM STATUS) is a clear win and mostly consolidation** — recommend as a solid,
lower-risk unit that also gives the CHASSIS/§A subsystem more to *be*.
- **E-2 quirks: ship a tiny, tasteful set, per-game, dial-gated.** Lean minimal — a little goes a
long way; overdone reads as "broken app."
- **Keep Hardware Life strictly DEVICE state** (MetaStore / IDB `meta`), surfaced as a *read-only*
view over device data — it must **not** write the campaign `eventLog` (the atmosphere↔save
boundary).
### (c) NEW FEATURES / ELEMENTS
- **Emergent-wear CRT layer** (telemetry-driven cosmetic classes).
- **Hardware quirk bank** (per-game, deterministic, dial-gated).
- **SYSTEM STATUS subsystem** (vitals + error ring + self-test).
- **Device hardware-condition log** (read-only view; boot count/hours already exist).
### (d) BUILDING ON CURRENT IDEAS
- Directly builds on **WU-F6 (degraded/cold boot)**, **WU-F7 (Overseer's Log)**, the `[LOGS]`
error ring, and **IMMERSION #7 (emergent CRT condition) + #11 (cold-boot onboarding) + #14
(chassis feedback)** — all already written.
- The existing `robco_booted_before` + boot-count telemetry are the exact data E-1/E-2 need.
`⏱ Effort: M–L · ⚡ Impact: ★★★ (subtle by design; ★★★★ cumulatively as "it's MY machine") ·
⚑ Risk: [perf][a11y][scope] — gimmick risk; must lose to hazards + honor reduced-motion ·
✅ save-boundary (device state only), reduced-motion, dial-gated`
> **★ SIGNATURE MOMENT (Area E):** after many sessions, a faint **phosphor burn-in ghost** of the
> header lingers on the glass — your terminal wears the hours you've put into it, and it's *yours*.
---
## 7. AREA F — SOUND DESIGN (per-game + hardware + ambient)
**Current reality (strong foundation):** ~23 fully-synthesized, zero-byte WebAudio sources —
geiger, tinnitus, CRT hum (with thermal-load ramp during API calls), radio station bed, boot drone,
heartbeat, wake/sync tones, limb/quest/faction SFX, panel clicks, level-up jingle, and the B2c
hardware SFX (chip-click, board-thunk). 13-channel mute grid + master mute + servo-click relay,
all in the Module Bay. This is genuinely excellent and *under-exploited* per-game.
### (a) EXPANDED IDEAS
**F-1 · PER-GAME SONIC IDENTITY.**
The synthesis params become `identity` data: NV's hum is warmer/scratchier (uplink static), FO3's
is a duller institutional 60Hz, FO4's is a clean high sine with no grit. Boot drones, wake tones,
and the radio bed all get per-game character. Same instruments, three voices — the audio analogue of
§1.2's motion language.
**F-2 · THE MACHINE'S OWN SOUNDS (hardware foley) extended site-wide.**
The B2c chip-click/board-thunk proved hardware foley. Extend it: subsystem navigation (§A) gets a
*channel-tune* sound, the cartridge/save load (§K) gets a *seat-and-spin*, the dial a *detent
click*, the bezel latch a *thunk*. Every §1.2 SEAT/SWEEP verb has a sound. Behind the existing
`hardwareSfx` channel + master mute (Protocol 7 guards).
**F-3 · THE OVERSEER HAS A VOICE (ties §C-3).**
Opt-in speech synthesis + a per-game "transmission" audio bed under the Overseer presence (carrier
static for NV, clean tone for FO4).
**F-4 · AMBIENT SOUNDSCAPE tuned by location + weather (ties §D).**
Zone-type and rad-storms drive the geiger/hum/tinnitus mix so *where you are* and *what the world is
doing* is audible, not just visible.
### (b) RECOMMENDATIONS
- **F-1 (per-game sonic identity) is a HIGH-VALUE quick-ish win** — the synth already exists; this
is mostly parameterizing it into `identity` data. Recommend early; it makes the three machines
*sound* different, which is half of feeling different.
- **F-2 (site-wide foley) rides the nav/cartridge work** — build the sounds alongside those
interactions so every physical action is *felt*. Recommend.
- **Everything stays behind the existing channel/mute architecture** — no new always-on audio, all
opt-in-respecting, master-mute-first (Protocol 7).
### (c) NEW FEATURES / ELEMENTS
- **`identity.audio` param block** (per-game synth tuning).
- **Navigation/cartridge/dial/latch foley** (new `hardwareSfx` sources).
- **Overseer transmission bed + optional VOX.**
- **Location/weather-tuned ambient mix.**
### (d) BUILDING ON CURRENT IDEAS
- Reuses the *entire* existing audio engine (`ensureAudioCtx`, `AudioSettings`, the 13-channel grid,
master mute, servo-click relay) — this is parameterization + a few new sources, **not** a rewrite
(Protocol 22). Each new source follows the Protocol 7 checklist.
- Consumes **WU-F5 radio**, **B2c hardware SFX**, and the **thermal-load hum** already wired to API
calls.
`⏱ Effort: M (F-1) / M–L (F-2, per verb) · ⚡ Impact: ★★★★ · ⚑ Risk: [a11y][scope] — must respect
master-mute + per-channel opt-out + not become always-on · ✅ offline (all synth), opt-in-respecting`
> **★ SIGNATURE MOMENT (Area F):** each machine **sounds like itself** — NV's hum crackles like a
> scavenged uplink, FO4's is an unnervingly clean tone — and every physical action (seat a
> cartridge, tune a subsystem, turn the dial) has its own foley. You can tell which machine you're
> on with your eyes closed.
---
## 8. AREA G — MOBILE-NATIVE IMMERSION (the phone AS the device)
**Current reality:** the desktop shell is gated on `(min-width:1000px) and (hover:hover) and
(pointer:fine)`; mobile is a stacked single column with a sticky tab bar. Mobile *works* but is
"the desktop app, narrower." The phone is the biggest opportunity in the whole overhaul: **held in
the hand, it can literally BE the Pip-Boy / terminal.**
### (a) EXPANDED IDEAS
**G-1 · THE PHONE IS THE DEVICE.**
On mobile, the machine's **casing fills the screen edges** — the bezel (§1.1) becomes the phone's
frame, so you're literally holding the terminal. FO3 especially: the Pip-Boy wrist casing wraps the
viewport; you're holding a Pip-Boy. This is the single most powerful mobile idea and it's *native
to a phone in a way it can't be on desktop*.
**G-2 · HARDWARE CONTROLS AS THUMB-ZONE PHYSICAL BUTTONS.**
The bezel's subsystem selector, dial, and latches sit in the **thumb reach zone** at the bottom —
operated like real device buttons, not tapped like web links. Big tap targets (≥28px), no
hover-dependence.
**G-3 · DEVICE-MOTION & HAPTICS AS INPUT (the Pip-Boy fantasy).**
- **Haptics** (already wired, WU-F2) do more: a *seat* thunks, a *fault* buzzes, an *incoming
intercept* pulses.
- **Optional device-tilt** parallax on the bezel/glass (DeviceOrientation, opt-in, reduced-motion
off) — the light on the casing shifts as you tilt the phone. Pure wow, strictly optional.
- **Wake Lock** (WU-F1) keeps the "device" lit — already there.
**G-4 · MOBILE NAV = SLIDE-OVER SUBSYSTEMS.**
Subsystems slide over the Overseer home (§A-2) like drawers on a handheld, not stacked panels. One
subsystem visible at a time, swipe/tap between — a *handheld* interaction, not a scroll-a-long-page
webpage.
### (b) RECOMMENDATIONS
- **G-1 (casing fills the edges) is the mobile signature** — recommend strongly. It's what makes
the phone build feel like the *actual device* and it's the biggest differentiator from "responsive
webapp."
- **G-4 (slide-over subsystems)** should be the mobile expression of the §A nav model — recommend
as the mobile IA.
- **G-3 device-tilt is a delightful opt-in** — ship it as a Module-Bay chip, off by default,
reduced-motion/perf aware. Don't make anything depend on it.
- **HARD: none of this may break the PWA** — installable, standalone, offline all intact. The
casing is CSS chrome, not a new shell.
### (c) NEW FEATURES / ELEMENTS
- **Edge-filling per-game casing** (mobile bezel).
- **Thumb-zone hardware control cluster.**
- **Extended haptic vocabulary** (per §1.2 verb).
- **Opt-in device-tilt parallax** chip.
- **Slide-over subsystem drawers.**
### (d) BUILDING ON CURRENT IDEAS
- Builds on the shipped mobile invariants (Protocol 17: ≥16px inputs, ≥28px targets, no 360px
overflow), **WU-F1 wake lock**, **WU-F2 haptics**, and the existing responsive breakpoints.
- The **centering rule (§0.4)** matters most here — narrow grids (chips, macro pad, save slots)
must center their last-row remainder so mobile never shows an off-center gap.
`⏱ Effort: L · ⚡ Impact: ★★★★★ (on mobile) · ⚑ Risk: [mobile][perf][pwa][a11y] — must not overflow
360px, must not break standalone/offline, tilt must be opt-in + reduced-motion · ✅ mobile+desktop
both work (differ intentionally), PWA-intact, ≥28px targets`
> **★ SIGNATURE MOMENT (Area G):** on a phone, the **casing fills the screen edges** and you are
> physically holding the Pip-Boy / terminal — tilt it and the light plays across the chassis.
---
## 9. AREA H — FIRST-BOOT / GAME-SWITCH CEREMONIES (Unlock 4)
**Current reality:** boot is a ~2–3s POST sequence (3 flavors), and `onGameContextChange()` does a
hard `location.reload()` on game switch. First-boot is gated by `robco_booted_before`. The Module
Bay has a first-visit hatch ceremony (the proof-of-concept that ceremonies work). Game-switch is
currently a *jarring reload* — the biggest wasted ceremony opportunity in the app.
### (a) EXPANDED IDEAS
**H-1 · COLD-START: "THIS UNIT HAS NEVER BEEN POWERED ON."**
The once-per-device first boot becomes a real **salvage-and-power-on ceremony**: a cold tube warming
up, a RobCo corporate handshake, memory count, a "NO PRIOR OPERATOR ON RECORD — INITIALIZING" — then
the machine *chooses/greets its operator*. This is the "unboxing a 200-year-old terminal" moment.
Per-game flavored (§B signatures: NV modem-handshake, FO3 Vault-Tec POST, FO4 holo-assembly).
**H-2 · GAME-SWITCH AS A CARTRIDGE SWAP (kill the raw reload).**
Switching FNV↔FO3 stops being a white-flash reload and becomes **ejecting one data cartridge and
seating another**: the current machine powers down (§I SHUTDOWN motion), a cartridge ejects with a
*clunk*, the new game's cartridge seats with a *thunk-and-spin*, and the *new machine boots in its
own identity* (§B). The reload still happens under the hood (data-layer requirement) — it's just
*wrapped* in a ceremony so it reads as swapping hardware, not refreshing a page.
**H-3 · THE OPERATOR HANDSHAKE.**
First boot (or new campaign) does a brief diegetic "operator clearance" beat — not real auth
(Protocol 30/31 untouched), just a roleplay handshake that seats you as the Courier / Lone Wanderer
/ Sole Survivor. Skippable, persistent (never nags after the first).
**H-4 · NEW-CAMPAIGN CEREMONY.**
`WIPE TERMINAL → NEW CAMPAIGN` currently double-confirms and wipes. Wrap the *aftermath* in a
purge-and-reinitialize ceremony (the machine scrubs itself and cold-boots fresh) so starting over
*feels* like a fresh unit, not a form submit. (The destructive confirm gate stays exactly as-is —
ceremony is cosmetic, on top.)
### (b) RECOMMENDATIONS
- **H-2 (cartridge-swap game-switch) is the highest-impact ceremony** — it turns the app's ugliest
transition (a raw reload) into a signature moment, and it *sells* the per-game-machine concept
every time you switch. Recommend strongly.
- **H-1 (cold-start) is the emotional front door** — recommend; it's the first thing a new user
sees and it sets the entire fiction. Build on the existing cold-boot flavor.
- **Keep all ceremonies SKIPPABLE + reduced-motion-instant + never-nag.** A ceremony that can't be
skipped becomes friction on the 100th boot. Persist "seen it" (device pref).
- **The data-layer reload/save paths are untouched** — ceremonies wrap them, never alter them
(save layer is sacred).
### (c) NEW FEATURES / ELEMENTS
- **Cold-start salvage ceremony** (per-game).
- **Cartridge eject/seat game-switch** wrapping `onGameContextChange`.
- **Operator handshake** (roleplay, non-auth).
- **New-campaign purge-and-reinit** cosmetic wrapper.
- **"Seen ceremony" device flags** (skippable/never-nag).
### (d) BUILDING ON CURRENT IDEAS
- Builds on **WU-F6 boot flavors**, the **Module Bay hatch** (ceremony proof), the existing
first-boot gate, and **IMMERSION #11 (diegetic cold-boot onboarding)**.
- H-2 wraps the *existing* `onGameContextChange()` reload — no change to the switch mechanics or the
per-game data load, just choreography around it.
`⏱ Effort: M–L · ⚡ Impact: ★★★★★ · ⚑ Risk: [scope][a11y][pwa] — must be skippable, reduced-motion
-instant, and must not delay/replace the real reload+data-load · ✅ save-boundary (cosmetic only),
reduced-motion, PWA (reload path intact)`
> **★ SIGNATURE MOMENT (Area H):** switching games is a **cartridge swap** — the current machine
> powers down, a data cartridge *ejects with a clunk*, the next seats with a *thunk*, and a
> *different machine boots up* in front of you.
---
## 10. AREA I — MOTION & MICRO-INTERACTIONS
**Current reality:** ~20 `@keyframes` (flicker, refresh-bar, header-pulse, rad-pulse, vats-scan,
map-blink, badge-pop, karma flashes, crit-hp-flash, boot type-out) — all now reduced-motion-gated
(WU-C1). Panel toggles, tab switches, chip pulls, dial cycles all have some feedback. The motion is
*present* but *generic* — it doesn't yet speak the §1.2 per-game language.
### (a) EXPANDED IDEAS
**I-1 · EVERY INTERACTION SPEAKS A MOTION VERB (§1.2).**
Systematize it: seating a chip, loading a cartridge, committing a stat, adding an item, completing a
quest — each maps to SEAT / SWEEP / WAKE / FAULT / BREATHE, tuned per game. No more generic
transitions; every action *feels* like operating that specific machine.
**I-2 · PHYSICAL STATE TRANSITIONS.**
When a value changes it *moves like hardware*: HP bar drains with a phosphor lag, a level-up *sweeps*
the screen, a faction cross *jolts*, a limb cripple *sags* (the weight-sag keyframe already exists —
extend the vocabulary). Reduced-motion collapses each to its instant final state.
**I-3 · FOCUS AS A TRAVELING LIGHT.**
Keyboard/selection focus is a *phosphor sweep that travels* between elements (per-game texture) —
not a static outline. (Keep the literal `:focus-visible` outline underneath for a11y.)
**I-4 · THE CENTERING RULE AS MOTION-SAFE (§0.4 tie-in).**
When a grid's last row re-centers (e.g., after deleting an item leaves an odd remainder), the
re-center *animates* gently (items glide to center) rather than snapping — so the centering reads as
intentional, not a reflow glitch. Reduced-motion → instant recenter.
### (b) RECOMMENDATIONS
- **I-1 (verb systematization) is the cohesion payoff** — recommend building it as a small
class/token system so all three machines share the grammar. This is what makes 2–3× bolder feel
*designed* rather than *busy*.
- **I-2/I-3 are polish that punches above its weight** — recommend, but sequence after the
structural areas.
- **Discipline: motion serves legibility.** Never animate text into illegibility; every verb has a
reduced-motion resting state; low-power/coarse-pointer can dial motion down.
### (c) NEW FEATURES / ELEMENTS
- **Motion-verb token/class system** (SEAT/SWEEP/WAKE/FAULT/BREATHE × per-game texture).
- **Physical value-transition set** (HP lag, level sweep, faction jolt, limb sag).
- **Traveling-light focus.**
- **Animated re-center** for the centering rule.
### (d) BUILDING ON CURRENT IDEAS
- Extends the existing keyframe library + WU-C1 reduced-motion gating + WU-C2 `:focus-visible`.
- Ties every §A/§C/§H/§K interaction into one motion vocabulary (§1.2).
`⏱ Effort: M (system) / S each (per verb) · ⚡ Impact: ★★★★ · ⚑ Risk: [perf][a11y] — reduced-motion
+ legibility discipline · ✅ reduced-motion resting states, AA legibility`
> **★ SIGNATURE MOMENT (Area I):** focus **travels as a phosphor sweep** and every commit
> *seats with a thunk* — the whole interface moves like hardware, in each machine's own hand.
---
## 11. AREA J — EMPTY / LOADING STATES
**Current reality:** empty states are being canonized (`ARCHIVE EMPTY` / `NO ENTRIES IN MEMORY` /
`NO ACTIVE DIRECTIVES`) but many are still sentence-case generic ("No perks acquired", "Loading
saves…", "No matches"). Loading is mostly instant (offline) except AI calls (a wait) and cloud
pulls (`RETRIEVING ARCHIVES…`). These are the *seams* where the fiction most often slips.
### (a) EXPANDED IDEAS
**J-1 · EMPTY STATES ARE THE MACHINE TELLING YOU IT'S EMPTY, in character.**
Not "No items" — `> BACKPACK SENSOR RETURNS NO MASS · ARCHIVE EMPTY`. Per-game voiced (`identity`
bank): NV wry, FO3 institutional, FO4 clinically precise. An empty screen is a chance for character,
not a dead end.
**J-2 · LOADING IS A DIEGETIC PROCESS.**
Every wait (AI call §C-4, cloud pull, save load, cartridge swap) becomes a *machine process readout*
— `DECRYPTING TELEMETRY……… [OK]`, period-leader progress, the Overseer presence animating. No
spinners; the machine is *doing work you can watch*.
**J-3 · FIRST-TIME EMPTY = AN INVITATION.**
A brand-new campaign's empty panels *invite* the first action in character — `NO DIRECTIVES ON
FILE · AWAITING FIRST TRANSMISSION FROM THE DIRECTOR`. Onboarding hidden inside empty states, no
tutorial modal needed.
### (b) RECOMMENDATIONS
- **J-1 + J-2 are cheap, high-consistency wins** — recommend as an early sweep. They close the most
frequent "looks like a webapp" leaks and they ride the existing `emptyState()` helper (one place
to reframe) + the period-leader loading convention already in boot.
- **Per-game voice via `identity`** — same data block as everything else.
### (c) NEW FEATURES / ELEMENTS
- **Per-game empty-state voice bank** (`identity.emptyStates`).
- **Diegetic loading-process readouts** (period-leader, presence-linked).
- **Empty-as-onboarding** invitations.
### (d) BUILDING ON CURRENT IDEAS
- Reuses the shared `emptyState()` helper, the canon empty vocabulary (HOUSE_STANDARD §4), the boot
period-leader progress style, and the §C Overseer presence for loading.
- Absorbs **DIEGETIC_AUDIT MN-7 / MJ-3** (the empty/loading reframes already catalogued).
`⏱ Effort: S–M · ⚡ Impact: ★★★ · ⚑ Risk: [none] (copy + a helper) · ✅ diegetic, offline`
> **★ SIGNATURE MOMENT (Area J):** an empty backpack says `> SENSOR RETURNS NO MASS` and a loading
> screen *decrypts telemetry you can watch tick* — the machine is never idle-blank, it's always
> *doing something*.
---
## 12. AREA K — DEVICE CHROME / PHYSICALITY (Unlock 5)
**Current reality:** a `.crt-overlay` (scanlines + refresh bar + flicker + vignette) over a
flat webpage. No bezel, no casing, no device body — the "physicality" is a screen filter, not a
machine. This is §1.1 made concrete and it's where "the whole app is a physical device" lives.
### (a) EXPANDED IDEAS
**K-1 · THE BEZEL / CASING (the core of §1.1).**
Render the machine's *body* around the screen — per-game material (NV scavenged plates, FO3
Vault-Tec molding, FO4 seamless glass), with real hardware *on* it: the subsystem selector, the
immersion dial, the power lamp, the cartridge slot, hardware-life LEDs. The single biggest "device
not webpage" move.
**K-2 · SCREEN CURVATURE + GLASS DEPTH.**
Subtle convex glass (frame vignette + edge barrel), a faint reflection sheen, the phosphor sitting
*behind* glass. Reduced-motion/low-power static. Never distorts text.
**K-3 · THE CARTRIDGE SLOT (ties §H-2, §K, saves).**
A physical slot on the bezel where the *game cartridge* seats (per-game), where *save cartridges*
load/eject, and where the game-switch ceremony (§H-2) plays out. Saves stop being a list of buttons
and become *cartridges you handle*.
**K-4 · CUSTOM CURSOR (§1.1).**
Per-machine cursor (amber block / Pip-Boy reticle / Institute pointer); system-cursor fallback on
touch.
**K-5 · THE POWER STATE IS PHYSICAL.**
The existing SHUTDOWN→OFF + power-on button becomes a real *powered-off device* — dark glass, a
single standby LED, the `▶ PRESS TO POWER ON` as a physical button on the bezel. (The A3 shutdown-crt
+ power-on affordance already exist — this dresses them as hardware.)
### (b) RECOMMENDATIONS
- **K-1 (bezel/casing) is THE physicality investment** — recommend as a flagship, desktop-first
(where the space exists) with a disciplined mobile expression (§G-1, casing → edge band/frame).
Heavy Protocol-10/17 render burden (3 machines × 3 breakpoints); budget for it.
- **K-3 (cartridge slot) unifies saves + game-switch + physicality** into one satisfying object —
recommend; it makes §H-2 land and gives saves a diegetic home.
- **K-2/K-4/K-5 are the finishing coats** — recommend, all reduced-motion/perf/touch-aware.
- **HARD guardrail: none of the chrome may break the PWA or overflow mobile.** Chrome is CSS around
the app, not a new container; standalone/offline/installable stay intact.
### (c) NEW FEATURES / ELEMENTS
- **Per-game bezel/casing chrome** (with live hardware controls on it).
- **Curved-glass frame + reflection layer.**
- **Cartridge slot** (game + save cartridges).
- **Custom cursor set.**
- **Physical power-off/standby dressing.**
### (d) BUILDING ON CURRENT IDEAS
- Builds on the `.crt-overlay`, the A3 SHUTDOWN/power-on affordance, the Module Bay (which becomes
the CHASSIS accessed *through the bezel*), and the per-game `identity`/`framing` hooks.
- The **centering rule** governs how hardware controls array on the bezel (an odd control count
centers).
`⏱ Effort: XL · ⚡ Impact: ★★★★★ · ⚑ Risk: [perf][mobile][a11y][pwa][scope] — heaviest render-verify
surface in the overhaul; must not overflow 360px or break standalone · ✅ mobile+desktop (differ),
PWA-intact, reduced-motion, no-text-distortion`
> **★ SIGNATURE MOMENT (Area K):** the webpage disappears — you're looking at a **physical machine
> with a body**: a bezel you can read at a glance, a dial you turn, a cartridge slot, glass with
> depth. The "site" is gone; the *device* is all that's left.
---
## 13. RE-EXAMINING EVERY REMAINING SURFACE (nothing left behind)
The areas above are the big movements. Per the brief, **every** surface from the inventory gets an
overhaul touch — including the just-shipped Module Bay (baseline, not frozen). Compact treatment
here; each rides the §1–§12 language.
### 13.1 THE MODULE BAY / SETTINGS (re-examined — baseline, not frozen)
- **It's already the bar — so make it the CHASSIS subsystem (§A) accessed through the bezel (§K),
not a tab-buried panel.** Keep the boards/chips/dial exactly (they're perfect); reframe *entry* as
opening the machine's service hatch *from the device body*.
- **Apply the centering rule to the chip grid + tube rack + tool tray** — the 13-chip grid's last
row and the 7-tube rack must center their remainder (7 tubes = one leftover → centered).
- **Per-game bezel material** flows into the bay's chassis view.
- `⏱ S–M · ⚡ ★★★ · ⚑ [none] · ✅ Protocol 25 (reframe entry, don't relocate controls)`
### 13.2 BIO-METRICS / SPECIAL / BIO-SCAN & LIMB STATUS (the OPERATOR subsystem)
- The `[████] OK / [▒▒▒▒] CRIPPLED` limb readout is already diegetic gold — extend it: the whole
BIO-METRICS panel becomes a **medical telemetry readout** on the machine, SPECIAL as *tuning
gauges*, HP/rads as *live meters* with physical drain motion (§I-2).
- Limb cripple already sags + sounds — tie to §I/§F verbs.
- `⏱ M · ⚡ ★★★★ · ⚑ [a11y] · ✅ ARIA literal underneath`
### 13.3 SKILL MATRIX / SKILL BOOKS / MAGAZINES / PERKS / TRAITS
- Skills become a **tuning matrix** (physical sliders/gauges); the tracker rows stay but read as
*punch-card / index-card* records seated in the machine. Books/magazines = *microfiche* you file.
- Centering rule on the skills grid.
- `⏱ M · ⚡ ★★★ · ⚑ [none] · ✅ game-agnostic (FNV/FO3 skill sets differ)`
### 13.4 BACKPACK INVENTORY / AMMO / COLLECTIBLES / CRAFTING / BARTER (the OPERATIONS subsystem)
- Inventory = a **cargo manifest** on the machine; type badges become physical tags; USE/DELETE are
*hardware actions*. Ammo = *reserve gauges*. Collectibles = *display case*.
- BARTER (§already native) + CRAFTING get diegetic "workbench terminal" framing.
- Centering on the inventory filter row + collectible grid.
- `⏱ M–L · ⚡ ★★★ · ⚑ [mobile] (dense lists) · ✅ mobile overflow discipline`
### 13.5 SQUAD STATUS
- Companion rows become **crew-manifest cards** with the affinity bar as a *signal-strength meter*;
the +/- affinity nudges are physical dials. `⏱ S–M · ⚡ ★★★ · ⚑ [none]`
### 13.6 FACTION STANDING / KARMA CENTER (per-game)
- Faction rep = a **standing board** with physical fame/infamy meters; the ±5 nudges are dials.
Karma (FO3) = a single centered gauge. Reputation crossings jolt (§I-2) + sound (§F).
- Centering rule: FO3 shows Karma (one gauge → centered); FNV shows the faction board.
- `⏱ M · ⚡ ★★★ · ⚑ [none] · ✅ game-agnostic (FNV factions vs FO3 karma)`
### 13.7 QUEST LOG / DATABANK / CAMPAIGN NOTES (the DATABANK subsystem)
- Quests = **active-directive strips** with physical status flags (ACTIVE lit / COMPLETE / FAILED).
Databank = the machine's **reference terminal** (already a good native surface). Notes = an
*operator's logbook*. `⏱ M · ⚡ ★★★ · ⚑ [none]`
### 13.8 OVERSEER'S LOG / SESSION STATS (→ SYSTEM STATUS, §E-3)
- Fold into the SYSTEM STATUS machine-vitals surface (§E-3): device telemetry + campaign stats as
*hardware gauges + a running log*. `⏱ M · ⚡ ★★★ · ⚑ [none] · ✅ device/save boundary preserved`
### 13.9 WORLD MAP / WORLD GRID
- The parked **RECON GRID rework** (radar sweep, coord-placed cells, tap-to-travel, fog-of-war) is
the right move — a real **spatial recon screen**, not a scroll list. Radar sweep = a §1.2 SWEEP
verb. Centering rule on the grid's last row.
- `⏱ L · ⚡ ★★★★ · ⚑ [mobile][a11y] — 6×6 tap grid at 360px is the known hard problem; needs
zoom-to-region · ✅ mobile tap targets ≥28px`
### 13.10 CAMPAIGN CONFIGURATION (game/playstyle/RNG/wipe)
- Campaign config **stays campaign-side** (not device hardware — boundary), reframed as the
*cartridge's configuration plate*. Game-switch → §H-2 cartridge ceremony. WIPE → §H-4 (confirm
gate untouched). `⏱ M · ⚡ ★★★ · ⚑ [save-boundary] · ✅ confirm gates intact`
### 13.11 ACCOUNT / CLOUD (UPLINK framing)
- Reframe auth copy diegetically (DIEGETIC_AUDIT MJ-2: `ESTABLISH GOOGLE UPLINK` / `UPLINK ACTIVE`)
— **mechanics untouched (Protocol 30/31, popup-only, redirect banned)**. Cloud saves = *remote
archive cartridges*. `⏱ S–M · ⚡ ★★ · ⚑ [auth] — copy only, no mechanic change`
### 13.12 SAVES / IMPORT / EXPORT / BACKUP / EJECT HOLOTAPE
- Saves become **cartridges in the slot (§K-3)**; export/import = *holotape eject/insert*; backup =
*redundant archive*. The `.txt/.md/.html` exports = *printouts*. **Save integrity path
untouched** — pure reframing over the sacred layer. `⏱ M · ⚡ ★★★ · ⚑ [save-boundary] · ✅ sacred
save layer not touched`
### 13.13 COMM-LINK CHAT / MACRO PAD / NATIVE TERMINALS (VATS/THREAT/TRADE/LOOT/CONSULT/BIO-SCAN/TERMLINK)
- The chat becomes the **Overseer presence (§C)**; the macro pad + native terminals become the
machine's **console command deck** (physical labeled keys). VATS/THREAT/etc. modals get diegetic
"subsystem overlay" framing. Centering rule on the 2×2 macro grid + terminal button rows.
- `⏱ M–L · ⚡ ★★★★ · ⚑ [none] · ✅ Protocol 22 (reuse routers)`
### 13.14 MODALS (sysModal / update / help / changelog / save-help)
- All modals become **machine dialog overlays** (the machine surfacing a subsystem), per-game
framed. The **update modal** stays a deliberate blocking exception (Suite 65). Changelog =
*FIRMWARE REVISION LOG* (already framed). `⏱ S–M · ⚡ ★★ · ⚑ [none]`
### 13.15 HEADER / UPTIME / VERSION / TAB BAR
- The header + uptime + version migrate onto the **bezel telemetry line (§A-4/§K)**; the tab bar
becomes the **bezel subsystem selector (§A)**. This is where "the chrome stops being a web
header" happens. `⏱ M · ⚡ ★★★★ · ⚑ [mobile] · ✅ keep hotkeys + a11y`
---
## 14. CROSS-CUTTING — QUICK WINS SHORTLIST (low-effort, high-payoff, land early)
Order = build-early candidates that de-risk and *show* the direction fast:
1. **Per-game sonic identity (§F-1)** — parameterize the existing synth into `identity.audio`.
`⏱ S–M · ⚡ ★★★★`. The three machines instantly *sound* different.
2. **Per-game empty-state + loading voice (§J-1/J-2)** — one `emptyState()` reframe + period-leader
loaders. `⏱ S–M · ⚡ ★★★`. Closes the most frequent "webapp" leaks.
3. **Bezel telemetry "you are here" line (§A-4)** — a status line. `⏱ S · ⚡ ★★★`.
4. **VOX opt-in voice chip (§C-3)** — SpeechSynthesis behind a Module-Bay chip. `⏱ S · ⚡ ★★★★`
(huge wow-per-byte) *once the presence exists*.
5. **Custom cursor per machine (§K-4)** — CSS, touch-fallback. `⏱ S · ⚡ ★★★`.
6. **Motion-verb tokenization (§I-1) as a class system** — front-load the grammar so every later
area inherits it. `⏱ M · ⚡ ★★★★`.
7. **Centering-rule sweep (§0.4)** — apply to existing chip/tube/macro/save/map grids. `⏱ S · ⚡
★★★` (owner-locked rule; cheap, visible correctness).
8. **Deeds-as-news templates (§D-2)** on the live Ambient Runtime — read-only, no new substrate.
`⏱ M · ⚡ ★★★★`.
---
## 15. CROSS-CUTTING — CUT / SIMPLIFY LIST (trim, don't only add)
Being bold means also *removing* scope that's redundant, over-engineered, or gimmick-risk:
1. **CUT day/night / dusk-dawn cycle entirely** — owner already removed it; don't let it creep back
into §D. Weather (rad-storms) only.
2. **SIMPLIFY the FO4 machine to design-spec + data block this cycle** — do NOT build the
holographic renderer now. Prove the abstraction; build at 3.0. (Charter-aligned.)
3. **CUT the standalone SESSION STATISTICS surface** — already merged into Overseer's Log; fold
fully into SYSTEM STATUS (§E-3), don't maintain two telemetry homes.
4. **SIMPLIFY emergent-wear (§E-1) to a whisper** — a long, subtle ramp with 2–3 stages, not a
granular per-hour system. The gimmick risk outweighs granularity's value.
5. **DON'T over-build the filesystem nav (§A-3) as the ONLY route this cycle** — ship it as a
power-user command layer; promoting it to primary IA is a 3.0 decision (discoverability/mobile
risk).
6. **CUT device-tilt parallax (§G-3) from the critical path** — keep it as an off-by-default chip;
never let anything depend on it.
7. **SIMPLIFY hardware quirks (§E-2) to a tiny curated set** — a handful of tasteful quirks, not a
quirk engine. Overdone = "the app is broken."
8. **DON'T re-open the Module Bay's internal board/chip/dial design** — it's the bar; re-frame its
*entry* and *housing* (§13.1), leave the boards themselves alone (Protocol 25 muscle memory).
9. **AVOID per-game FONTS** (GAME_THEMING SKIP) — fragments the diegetic voice; phosphor + framing +
material carry identity, not typefaces.
10. **RESIST making the Overseer presence heavy** — a canvas waveform, not a rigged 3D avatar. The
presence's *behavior* (idle/think/speak) matters more than fidelity, and it must stay
reduced-motion + perf-safe.
---
## 16. CROSS-CUTTING — SIGNATURE MOMENTS (one per area/game, at a glance)
| Area / Machine | THE defining moment |
|---|---|
| **A · Navigation** | Tab bar dies → **illuminated bezel subsystem buttons**; switching *sweeps* like tuning a channel. |
| **B · NV machine** | The **MOJAVE UPLINK modem-handshake** — a salvaged terminal dialing into the wasteland. |
| **B · FO3 machine** | The **Pip-Boy wrist casing** wrapping the screen — a device held to your face. |
| **B · FO4 machine** | The **holographic assembly boot** — UI coalescing from projected light, silent (3.0 build). |
| **C · Overseer** | The AI **grows a face** — a waveform that listens, spikes, and speaks in each game's voice. |
| **D · Living world** | The machine **echoes your deeds back as wasteland news** — the world noticed you. |
| **E · Hardware Life** | A faint **phosphor burn-in ghost** of the header — your terminal wears your hours. |
| **F · Sound** | Each machine **sounds like itself**; every physical action has its own foley. |
| **G · Mobile** | The **casing fills the screen edges** — you're physically holding the Pip-Boy. |
| **H · Ceremony** | Game-switch is a **cartridge swap** — eject, seat, a different machine boots. |
| **I · Motion** | **Focus travels as a phosphor sweep**; every commit *seats with a thunk*. |
| **J · Empty/Loading** | Empty backpack: `> SENSOR RETURNS NO MASS`; loading *decrypts telemetry you watch tick*. |
| **K · Physicality** | The webpage vanishes — you're looking at a **physical machine with a body**. |
---
## 17. CROSS-CUTTING — INTERCONNECTIONS & COHESION (how it all reinforces)
The overhaul is not 12 features — it's **one machine** with parts that feed each other:
- **`GAME_DEFS[ctx].identity` is the spine** (§B). Every area reads from it: bezel material (§K),
Overseer persona (§C), motion texture (§I), audio params (§F), empty-state voice (§J), boot
ceremony (§H), structural mode (§B FO4). *One data block per machine → the whole site re-skins
coherently.* This is the architectural keystone; get it right and everything else is a consumer.
- **The Ambient Runtime is the heartbeat** (§D/§E/§C-5). The living world, hardware life, and the
Overseer's idle presence are all *observers* on the one runtime that already ships — dial-gated,
no-durable-write. One substrate, many atmospheric consumers.
- **The motion-verb grammar (§1.2) + the bezel (§1.1) are the cohesion glue.** Three machines feel
like one product line because they share SEAT/SWEEP/WAKE/FAULT/BREATHE and the same bezel
*grammar* — only the *texture/material* differs.
- **The cartridge slot (§K-3) unifies** game-switch (§H-2), saves (§13.12), and physicality (§K) into
one object you handle.
- **The Overseer presence (§C) is where the AI, the living world, and loading states all
visibly converge** — it listens (§C), it receives intercepts (§D), it animates while thinking
(§J), it idles alive when quiet (§E). It's the emotional center that ties reactive and ambient
layers together.
- **The centering rule (§0.4) is a house-wide correctness pass** touching every grid — a small,
constant discipline that makes the whole thing read as *designed*.
- **HOUSE_STANDARD voice + the diegetic/literal split** run under everything so cohesion never costs
accessibility.
**The through-line in one sentence:** *one company's hardware, three salvaged machines, each alive,
each with a face and a body and a voice — and it all runs on the systems already built.*
---
## 18. CROSS-CUTTING — ALIGNMENT + RISK LEDGER (every area, checked against the held constraints)
| Area | Player-authority | Free/Offline | PWA-intact | Mobile+PC | Save-sacred | Diegetic | Top risk |
|---|---|---|---|---|---|---|---|
| A · Nav | ✅ router reuse | ✅ | ⚠ must keep deep-links/back/hotkeys | ⚠ mobile slide-over | ✅ | ✅ | **[scope]** load-bearing IA |
| B · Machines | ✅ | ✅ | ✅ | ⚠ 3×3 render matrix | ✅ | ✅ | **[scope][mobile]** |
| C · Overseer | ✅ presentation only; AI still opt-in | ✅ presence works keyless | ✅ | ✅ | ✅ writes nothing | ✅ | **[perf][a11y]** canvas + aria |
| D · Living world | ✅ changes nothing you didn't | ✅ deterministic | ✅ | ✅ | ✅ **no-durable-write invariant** | ✅ | **[save-boundary][perf]** |
| E · Hardware Life | ✅ | ✅ | ✅ | ✅ | ✅ device state only | ✅ | **[a11y]** gimmick/reduced-motion |
| F · Sound | ✅ | ✅ all synth | ✅ | ✅ | ✅ | ✅ | **[a11y]** opt-in/master-mute |
| G · Mobile | ✅ | ✅ | ⚠ **must not break standalone** | ✅ native | ✅ | ✅ | **[pwa][mobile][perf]** |
| H · Ceremony | ✅ cosmetic | ✅ | ⚠ wraps reload, mustn't replace it | ✅ | ✅ save paths intact | ✅ | **[a11y]** skippable/never-nag |
| I · Motion | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | **[a11y]** reduced-motion/legibility |
| J · States | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | **[none]** |
| K · Chrome | ✅ | ✅ | ⚠ **CSS around app, not a new shell** | ⚠ no 360 overflow | ✅ | ✅ | **[perf][pwa][mobile][scope]** |
**Legend:** ✅ clean · ⚠ needs explicit care (named). No area is red; every ⚠ has a stated mitigation
in its section. The two constraints to watch hardest across the whole overhaul: **PWA-intact**
(§G/§K/§A — chrome and nav are CSS/routing over the working shell, never a replacement) and the
**atmosphere↔save boundary** (§D/§E — gate-guarded no-durable-write, as the parked plans already
require).
---
## 19. TOP RECOMMENDATIONS (if the owner builds a subset, build these)
In priority order — the spine that delivers "total transformation" with the least wasted motion:
1. **`GAME_DEFS[ctx].identity` — the expanded per-machine data spine (§B).** Everything else is a
consumer; do this first and right. *Without it the overhaul fragments.*
2. **The bezel / device chrome (§K-1) + the subsystem-nav reframe (§A-1/A-2).** Together these are
what make it *stop looking like the same site* — the headline transformation.
3. **The Overseer presence (§C-1/C-4) with per-game personas (§C-2).** Turns "a chat box" into "an
entity." The emotional center.
4. **The cartridge-swap game-switch ceremony (§H-2) + cartridge slot (§K-3).** Sells the per-game
fantasy every time you switch and gives saves a home.
5. **The Wasteland Uplink deeds-as-news + weather on the live runtime (§D-1/D-2).** The world comes
alive; already-built substrate.
6. **Per-game sonic identity (§F-1) + motion-verb grammar (§I-1) + centering-rule sweep (§0.4).**
The cohesion layer — relatively cheap, makes the bold moves feel *designed*.
7. **Mobile casing (§G-1).** The phone becomes the device — the single biggest mobile win.
**Sequencing logic:** land `identity` (1) → chrome + nav (2) → Overseer (3) as the three structural
pillars; then ceremonies (4) and the living world (5) as the atmosphere; then the cohesion/polish
layer (6) and mobile physicality (7) throughout. FO4 stays design-only, validating the spine.
---
## 20. WHAT STAYS SACRED (the "do not touch" list, restated for the builder)
- The `robco_v8` container, migrate/sanitize path, and every save/cloud mechanic — **skinned, never
altered.**
- The Tri-Node AI contract + opt-in/non-authoritative posture — **presented, never changed.**
- Popup-only auth (redirect banned), guarded anonymous sign-in — **reframed in copy only.**
- The PWA (installable / offline / service worker / standalone) — **wrapped in chrome, never
replaced.**
- The accessibility floor — **carried under every diegetic skin.**
- The Ambient Runtime's no-durable-write boundary — **the load-bearing invariant of the whole
atmospheric layer.**
---
*END — DESIGN_OVERHAUL_SLATE.md. Ideation only. No app code written, nothing committed or pushed.
`planning/` is gitignored. This is a menu for the owner — nothing here is decided.*
STAMP · generated for RELEASE v2.8.5 commit 06e5180 (06e51801b38a) · archive input-tree hash c07fbfbdd2e1ddeb · 754 files · no wall-clock timestamp (regenerates identically when nothing changed).