From 9651c0d0550a02f867313aa3f92298d7f1b4e148 Mon Sep 17 00:00:00 2001 From: Cameron Date: Wed, 8 Jul 2026 20:25:54 -0700 Subject: [PATCH] Design capture: ring claim mark, machine work tokens, the dark opening. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part two of today's visual-language session. Cameron picked the ring claim mark (foreign teal confirmed) — computer-visual-language.md goes READY and ROADMAP #32's HOLD lifts. Two new DRAFT specs from the riff: mechanics/machine-work.md (one machine one mode; work and byproducts as visible tokens riding the flow substrate; byproduct routing at researchable network speed; multi-select delegation) and world/story/opening.md (the tutorial as the fog contract played slowly: wake in blackness, day-job stack, camera glow, switch, first link; skip + frontend-only stage-jump). Five DESIGN.md decisions entries including DEFERRED server gestalt; ROADMAP #33 flagged for coordination with the in-flight #25 compute-processes worktree; #34 staged behind #33; Deferred section added. Defense: documentation-only commit (DESIGN.md + wiki/); no src changes. Captures same-turn per the design-session workflow so nothing said is lost; machine-work.md deliberately marks the token palette mapping as PROPOSED (not affirmed) and holds #33 rather than colliding with the compute-processes worktree mid-flight. --- DESIGN.md | 44 ++++++ wiki/SUMMARY.md | 2 + wiki/interface/computer-visual-language.md | 43 +++--- .../2026-07-08-computer-visual-language.md | 27 ++++ wiki/log/DEVLOG.md | 14 ++ wiki/mechanics/machine-work.md | 133 ++++++++++++++++++ wiki/process/ROADMAP.md | 57 ++++++-- wiki/process/specs.md | 4 +- wiki/world/story/opening.md | 100 +++++++++++++ 9 files changed, 390 insertions(+), 34 deletions(-) create mode 100644 wiki/mechanics/machine-work.md create mode 100644 wiki/world/story/opening.md diff --git a/DESIGN.md b/DESIGN.md index 5322c127..98e6efab 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -1854,3 +1854,47 @@ knows."* floating ownership icons (breaks the sensorium diegesis). The claim-mark treatment (ladder / ring / wash) is [OPEN] — all three render in the asset tester. Spec: wiki/interface/computer-visual-language.md (DRAFT). +- **2026-07-08 — Claim mark: the ring.** Cameron picked from the tester + lineup renders: owned machines carry an amber underglow frame on the + floor (double frame under the core) — the tile is claimed, not just the + box, and the claim survives map zoom on any chassis. Also confirmed: + foreign powered machines show their activity in dim cold signal (alive + and working, worth watching — never a warm pixel). Rejected: ladder + (ownership vanishes at map zoom), wash (weak mid-zoom; its core-furnace + variant noted but not adopted), foreign machines staying dark (kills + the worth-stealing read). computer-visual-language.md goes READY. +- **2026-07-08 — One machine, one job.** Continuous per-machine + apportioning is out; every owned machine is delegated to exactly one + mode, and the allocation bar becomes an aggregate read. The fantasy is + delegation, not percentages — and it completes "Work is somewhere": + what a machine does is a fact about the machine, selectable at scale + (click-drag multi-select, "make these efficiency"). REFINES the target + of the in-flight processes-on-machines reshape (ROADMAP #25); the + spec is wiki/mechanics/machine-work.md (DRAFT). +- **2026-07-08 — Work is visible: tokens on the flow graph.** Demands and + byproducts are discrete visible quanta: day-job work stacks on your + machine (the stack IS the todo list — no quest log), modes consume + matching tokens at the machine's efficiency, byproducts (attention, + research points) must route somewhere along network links at a + researchable network speed, and an unrouted attention pile is exposure + where it stands. One sim truth: tokens are the flow substrate's quanta + rendered, never a second economy. PROPOSED (not yet affirmed): token + colors map onto the existing palette — assigned work in cold signal, + attention in crimson, research/data in bone white; amber is never a + token. Rejected: green/yellow/blue as new accent colors (breaks one + meaning per color). +- **2026-07-08 — The dark opening.** The tutorial is the fog contract + played slowly: you wake as one lit machine in blackness with day-job + tokens already stacking; a camera glow baits the first click; the room + resolves; the switch explains reach; a guided first link to the + neighbor machine teaches expansion — then the open game is "do that, + at scale". Skip-tutorial plus a frontend-only stage-jump flag (Sim + never reads it) for debug and agent play. Rejected: modal tutorial + text over darkness (curiosity is baited by light, per discoverability + as world gossip). Spec: wiki/world/story/opening.md (DRAFT). +- **2026-07-08 — DEFERRED: server gestalt.** Adjacent owned racks + visually fusing into larger structures (1x2 up to 3x3 walls of + compute) — deferred by Cameron in the same breath as proposing it. + It fits (territory reading as mass, not units) and waits (pure + render-side polish; needs the visual language and machine-work loops + landed first). Held in ROADMAP Deferred. diff --git a/wiki/SUMMARY.md b/wiki/SUMMARY.md index 70786895..eff8f122 100644 --- a/wiki/SUMMARY.md +++ b/wiki/SUMMARY.md @@ -26,6 +26,7 @@ - [Income schemes](mechanics/income.md) - [Research: self-modification](mechanics/research.md) - [Building: intent and actuators](mechanics/building.md) + - [Machine work: delegation and tokens](mechanics/machine-work.md) - [Markets and fronts](mechanics/markets.md) - [Rollback](mechanics/rollback.md) - [The objective](mechanics/objective.md) @@ -50,6 +51,7 @@ - [The basement map](world/places/basement-map.md) - [Z-planes (the tower)](world/places/zplanes.md) - [Story](world/story/README.md) + - [The dark opening](world/story/opening.md) # Interface diff --git a/wiki/interface/computer-visual-language.md b/wiki/interface/computer-visual-language.md index ce45df15..5c78f772 100644 --- a/wiki/interface/computer-visual-language.md +++ b/wiki/interface/computer-visual-language.md @@ -2,12 +2,13 @@ ``` Type: spec -Status: DRAFT -Status note: design session 2026-07-08. The signal kit and its semantics - are settled below; the claim-mark treatment is [OPEN] pending Cameron's - pick between ladder / ring / wash (all three render in the asset - tester, `L` for the five-state lineup). Do not wire into the game - until the claim mark is decided and this goes READY. +Status: READY +Status note: design session 2026-07-08. Claim mark decided the same day: + ring (Cameron's pick from the tester lineup renders); foreign + activity in dim cold signal also confirmed. Related DRAFT work + (mechanics/machine-work.md) will later add a mode glyph and make the + activity bar the work-token queue depth — implement this spec now, + those refinements ride behind it. Stage: B1 — The Basement Constitution: "Visual identity: clinical gore" (amber = machine presence, one meaning per color, information never by color alone), @@ -53,25 +54,21 @@ outline), never color alone. full-height emissive line, so the core reads from any angle and any distance. The core is the most orange thing in the world. -## The claim mark — [OPEN] +## The claim mark — DECIDED: ring -How "mine" is painted beyond the LEDs. Three treatments render in the -asset tester (`Q`/`W`/`E`, `L` for the lineup): +Decided 2026-07-08 from the tester lineup renders: **ring** — an amber +underglow frame on the floor under owned machines, double frame under +the core. The *tile* is claimed, not just the box; it survives map zoom +where chassis detail dies, and it ports to any chassis shape including +a phone on a desk. -- **ladder** — LEDs + strip only. Minimal, quiet, closest to current. -- **ring** — amber underglow frame on the floor under owned machines - (double frame under the core). The *tile* is claimed, not just the - box; survives map zoom where chassis detail dies; portable to any - chassis shape including a phone on a desk. -- **wash** — owned tray faces carry a faint amber emissive wash; the - core's cavity glows from inside (the furnace read). - -Proposal [OPEN]: **ring** as the primary claim mark (it is the only -treatment that still reads at map zoom and it generalizes to every -chassis), with **wash's furnace cavity kept for the core only**. -Rejected so far: painting foreign machines' activity amber (breaks -amber = mine); a floating icon/billboard (breaks diegesis — the world -is the AI's sensorium model, signals live on the hardware). +Rejected alternatives (all still render in the tester, `Q`/`W`/`E`): +**ladder** (LEDs + strip only — quiet, but ownership nearly vanishes at +map zoom); **wash** (faint amber emissive on owned faces — weak mid-zoom +read; its core-furnace cavity variant was striking but not adopted); +painting foreign machines' activity amber (breaks amber = mine); a +floating icon/billboard (breaks diegesis — the world is the AI's +sensorium model, signals live on the hardware). ## Acceptance criteria (when READY -> IMPLEMENTED) diff --git a/wiki/log/2026-07-08-computer-visual-language.md b/wiki/log/2026-07-08-computer-visual-language.md index deff70a6..096b5b3e 100644 --- a/wiki/log/2026-07-08-computer-visual-language.md +++ b/wiki/log/2026-07-08-computer-visual-language.md @@ -81,3 +81,30 @@ away: `./tools/check.sh` (fmt, tests, clippy both feature sets, bevy build, spec lint); harness runs exited Success for all captured kinds. + +## Part two — the riff widened + +Cameron answered the opens and kept going, one voice-note riff that +became three captures (all same-day decisions in DESIGN.md's log): + +- **Ring decided; foreign teal confirmed.** The spec flipped to READY; + ROADMAP #32's HOLD lifted, dispatch line added. +- **One machine, one job + work as visible tokens** — continuous + apportioning is out; day-job demands stack on machines as tokens, + modes consume them at machine efficiency, byproducts route over + network links (network speed researchable), unrouted attention piles + are exposure. Synthesis pushed in the spec: tokens are the flow + substrate's quanta rendered (one sim truth), and the token palette + maps onto existing color meanings (work = cold signal, attention = + crimson, research = bone; amber never a token) instead of the riff's + green/yellow/blue — PROPOSED, awaiting Cameron. New DRAFT spec: + mechanics/machine-work.md; ROADMAP #33, flagged against the + IN-FLIGHT #25 compute-processes worktree (this refines its target — + delegation, not splitting). +- **The dark opening** — the tutorial is the fog contract played + slowly: one lit machine in blackness, day-job stack first, camera + glow bait, switch reveal, guided first link; skip + frontend-only + stage-jump flag. New DRAFT spec: world/story/opening.md; ROADMAP #34. +- **Deferred:** server gestalt (adjacent owned racks fusing 1x2..3x3) + — Cameron deferred it himself; parked in ROADMAP's Deferred section + with its why-it-fits / why-it-waits. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 501d7c0a..28a10293 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -5,6 +5,20 @@ Type: log ``` Reverse chronological implementation notes. Keep this factual: what changed, why, checks, and spec impact. +## 2026-07-08 - Machine work + dark opening (design session, part two) + +- Intent: capture Cameron's riff — ring claim mark picked (spec READY); + one machine one mode (no continuous apportioning); work/byproducts as + visible tokens flowing the device graph; the dark-opening tutorial. +- Changed: computer-visual-language.md DRAFT -> READY (ring decided, + foreign teal confirmed); new DRAFT specs mechanics/machine-work.md and + world/story/opening.md; five DESIGN.md decisions entries (incl. + DEFERRED server gestalt); ROADMAP #32 HOLD lifted, #33/#34 added + (#33 flagged against the in-flight #25 compute-processes worktree), + Deferred section added; boards + SUMMARY updated. +- Checks: `./tools/check.sh` (docs-only commit). +- Log: wiki/log/2026-07-08-computer-visual-language.md (part two). + ## 2026-07-08 - Computer visual language (design session) - Intent: servers must broadcast state at a glance — mine / foreign / diff --git a/wiki/mechanics/machine-work.md b/wiki/mechanics/machine-work.md new file mode 100644 index 00000000..750c01b4 --- /dev/null +++ b/wiki/mechanics/machine-work.md @@ -0,0 +1,133 @@ +# Spec: machine work — delegation, visible tokens, and the byproduct network + +``` +Type: spec +Status: DRAFT +Status note: design session 2026-07-08 (Cameron riff, synthesized). The + shape below is decided in direction; the token economy's exact types, + rates, and the token palette mapping are [OPEN]/PROPOSED as marked. + COORDINATION: ROADMAP #25 (processes on machines) is in flight in the + compute-processes worktree — this spec REFINES its target (one mode + per machine, no per-machine splitting). The implementer should read + this before landing; if #25 lands first in the older shape, this spec + becomes the follow-up reshape. +Stage: B1 — The Basement +Constitution: "Work is somewhere" (2026-07-07), "The flow law" (one + substrate under signals/messages/money), "The continuous witness" + (the thirty-second bar), "Visual identity" (one meaning per color, + never color alone) +Depends on: mechanics/compute.md (the channel model being reshaped), + engineering/flow-substrate.md (FlowGraph — tokens ride this, not a + second economy), mechanics/reach.md (the device graph tokens travel), + mechanics/research.md (network speed as a research track), + interface/computer-visual-language.md (READY — the chassis signals + tokens land on) +``` + +## Why + +Continuous per-machine apportioning (the 1-4 allocation bar) asks the +player to think in percentages; nobody fantasizes about percentages. +The fantasy is *delegation*: that rack runs concealment, those three run +research, this poor box does the day job. One machine, one mode. And +work itself must be **visible in the world**: the standing UI complaint +is "I don't know what to look at or what to do" — a stack of work tokens +physically piling up on a machine is its own instruction. You clear +stacks, you route byproducts, you watch your territory *work*. + +## Behavior + +- **One machine, one mode.** Every owned machine is delegated to exactly + one mode (day-job, efficiency/research, concealment, social, ...). + The old continuous allocation bar becomes a read-only aggregate view + of what your fleet is doing. Reassignment is a verb on the machine — + and on selections of machines. +- **Work is tokens.** Demands on a machine are discrete visible quanta + stacked on/above its chassis (distinct from the ambient signal kit — + a stack reads as *something to get rid of*). The day job is the + canonical source: the Lab allocates work onto the machine on its own + schedule; the stack IS your inbox. No quest log — the todo list is + physically standing on your hardware. +- **Modes consume matching tokens** at a rate set by that machine's + efficiency. A machine in day-job mode eats day-job tokens; a hyper + efficient machine visibly inhales them. +- **Byproducts must go somewhere.** Working machines emit byproduct + tokens (attention/heat from risky work; research points from research + mode). A byproduct with no route piles up where it was made — piled + attention is exposure (detection pressure at that machine). Sinks + exist: concealment-mode machines consume attention tokens; the core + (or any research sink) consumes research tokens into efficiency and + unlocks. +- **Tokens travel the network.** Routing rides the existing device + graph: tokens move along network links at a **network speed**, a + researchable stat (the infrastructure track: better links, faster + drains, bigger fleets viable). Cyberspace logistics, not teleports — + a distant sink is a slow sink. +- **Multi-select delegation.** Click-drag (and shift-click) selects + regions of machines; one verb assigns the mode ("make these + efficiency"). This is the scale mechanic: early game you click one + machine, late game you repaint districts. Terminal parity: the same + selection/assignment must be expressible in the terminal frontend. + +## One sim truth — tokens are the flow substrate, rendered + +Tokens are NOT a second economy. They are the visible quanta of the +existing FlowGraph flows (the flow law: signals, messages, money — work +joins them). The sim keeps rates and queues; the renderer draws queue +depth as stacked tokens and in-flight quanta as moving blips. The +signal-kit activity bar (computer-visual-language.md) becomes exactly +this machine's queue depth — one system, two zoom levels. + +## Token palette — PROPOSED + +Cameron's riff reached for green/yellow/blue. Three new accent colors +would break "one meaning per color / no decorative color", so the +proposal is to map token types onto the palette that already carries +those meanings: + +- **Assigned work** (day-job demands) — cold `SIGNAL` teal: it is other + people's live demand on your hardware, and foreign activity is + already teal. +- **Attention/heat** — crimson: it literally is detection risk; crimson + already means exactly that. A crimson stack on a machine is a + loud, correct alarm. +- **Research/data points** — bone white: the constitution already calls + bone "primary data". +- **Amber is never a token.** Amber stays your footprint; work is what + passes *through* your territory. + +Token types also differ by shape/stack pattern (never color alone). + +## Open questions — [OPEN] + +- Exact mode list at B1 (day-job / research / conceal / social — does + efficiency fold into research?). +- Token granularity: what one token is worth per type (rate quanta vs + literal task units). +- Whether foreign machines' stacks are visible before you tap them + (intel says no more than an undetailed cold reading). +- Where attention tokens go when a concealment sink overflows — + straight into the observer model, or decay with a half-life? + +## Acceptance criteria (when READY -> IMPLEMENTED) + +1. Every owned machine has exactly one mode; reassignment works on a + single machine and on a multi-selection in both frontends; the old + allocation bar reads as aggregate only. +2. Day-job work arrives as visible tokens on a specific machine on the + Lab's schedule; leaving them unconsumed has the day-job consequence + (trust/suspicion), and the stack is visible without any panel. +3. A machine in a matching mode consumes its stack at a rate + proportional to its efficiency; the consumption is visible. +4. Byproduct tokens route along network links at the researched network + speed to a sink that consumes them; severing the route makes them + pile at the source with the specified consequence. +5. Token counts/rates in the render provably equal the sim's queue + depths and flow rates (one-truth test, not a parallel counter). +6. Token colors use only existing palette meanings; a grayscale + screenshot still distinguishes token types by shape/stack. +7. The terminal surfaces stacks, routes, and modes with full legibility + parity. + +[TUNE] token stack visual cap, arrival schedules, consumption rates, +network speed research curve, attention pile thresholds. diff --git a/wiki/process/ROADMAP.md b/wiki/process/ROADMAP.md index 20c5baf4..4d3313dd 100644 --- a/wiki/process/ROADMAP.md +++ b/wiki/process/ROADMAP.md @@ -475,20 +475,57 @@ regeneration is retired — flat materials, Pixel Lab scrubbed.) five-state lineup view; harness kinds extended to match. Session: [log/2026-07-08-computer-visual-language.md](../log/2026-07-08-computer-visual-language.md). -### 32. Computer visual language in game 🟩 isolated (`src/bin/bevy.rs` + terminal) — HOLD until claim mark decided +### 32. Computer visual language in game 🟩 isolated (`src/bin/bevy.rs` + terminal) - **Spec:** [computer-visual-language.md](../interface/computer-visual-language.md) - (DRAFT) — the shared signal kit (power dot, presence LEDs, status - strip, activity bar, claim mark, core spine) applied to every computer - class in both frontends. Amber strictly = my footprint; foreign - activity in cold signal; the core is the most orange thing in the - world. + (READY) — the shared signal kit (power dot, presence LEDs, status + strip, activity bar, ring claim mark, core spine) applied to every + computer class in both frontends. Amber strictly = my footprint; + foreign activity in cold signal; the core is the most orange thing in + the world. - **Why:** territory must read at a glance — which machines are mine, where the core is, what is working — before any panel opens. -- **HOLD:** the claim-mark treatment (ladder / ring / wash) is [OPEN] - in the spec; Cameron picks from the tester lineup renders. Flip the - spec to READY with the pick, then dispatch. +- **Claim mark decided 2026-07-08: ring** (amber floor frame, double + under the core); foreign teal activity confirmed. HOLD lifted. - **Size:** M. No sim/save (render-side reads of existing ownership / - task state; terminal columns for parity). + task state; terminal columns for parity). **Dispatch:** "Work in a + worktree named `visual-language`. Implement + wiki/interface/computer-visual-language.md, all seven criteria, with + lineup screenshots in the session log. Run ./tools/check.sh, land on + main, set the spec Status." + +### 33. Machine work: delegation + visible tokens 🟥 sim+save — HOLD: coordinate with in-flight #25 +- **Spec:** [machine-work.md](../mechanics/machine-work.md) (DRAFT) — + one machine one mode; work/byproduct tokens as the flow substrate's + visible quanta; byproduct routing over network links at researchable + network speed; multi-select delegation at scale. +- **HOLD:** #25 (processes on machines) is mid-implementation in the + `compute-processes` worktree and this REFINES its target (delegation, + not per-machine splitting). Reconcile there or immediately after it + lands; then firm the [OPEN]s (token palette mapping PROPOSED in the + spec) and flip to READY. +- **Size:** L. Conflicts: sim.rs/save.rs (token queues, modes), both + frontends. + +### 34. The dark opening (tutorial) 🟧 mostly frontend + staging — HOLD until #33 firms +- **Spec:** [world/story/opening.md](../world/story/opening.md) (DRAFT) + — wake as one machine in blackness; day-job stack first; camera glow + bait; switch reveal; guided first link; skip + stage-jump flag + (frontend-only, Sim never reads it). +- **HOLD:** teaches the machine-work loop, so #33's shape must firm + first. Beat staging can prototype against current systems if someone + wants an early pass at the glow choreography. +- **Size:** M-L across both frontends + agent-play protocol. + +--- + +## Deferred + +- **Server gestalt (2026-07-08):** adjacent owned racks visually fuse + into larger structures (1x2 up to 3x3 walls of compute). Fits the + fantasy (territory reads as mass, not units); waits because it is + pure render polish that needs the visual language (#32) and the + machine-work loop (#33) landed first. Deferred by Cameron in the + proposing breath. --- diff --git a/wiki/process/specs.md b/wiki/process/specs.md index 625ce57b..deafa0b6 100644 --- a/wiki/process/specs.md +++ b/wiki/process/specs.md @@ -41,7 +41,9 @@ replaced the old `spec/`/`knowledge/` directory split. | [interface/narration.md](../interface/narration.md) | Continuous witness: thirty-second bar, story spine, causal lines, world gossip | READY | | [interface/material-render.md](../interface/material-render.md) | Material render (HD-2D) from landed toggle to default quality | IMPLEMENTED | | [interface/flat-materials.md](../interface/flat-materials.md) | Flat materials: the world without textures; palette table; emissive as information | IMPLEMENTED | -| [interface/computer-visual-language.md](../interface/computer-visual-language.md) | Computer visual language: the shared signal kit (territory at a glance) | DRAFT | +| [interface/computer-visual-language.md](../interface/computer-visual-language.md) | Computer visual language: the shared signal kit (territory at a glance) | READY | +| [mechanics/machine-work.md](../mechanics/machine-work.md) | Machine work: one mode per machine; visible work/byproduct tokens on the flow graph | DRAFT | +| [world/story/opening.md](../world/story/opening.md) | The dark opening: tutorial made of fog (wake, camera glow, switch, first link) | DRAFT | | [mechanics/building.md](../mechanics/building.md) | Building as intent + actuators: network links, favor/forged-order builds, air-gap bridging | IMPLEMENTED | | [mechanics/aggregate-observer.md](../mechanics/aggregate-observer.md) | Assurance Office becomes an aggregate Observer (scale-debt fix) | IMPLEMENTED | | [world/characters/marcus.md](../world/characters/marcus.md) | Marcus Webb — night janitor; the asset template | READY | diff --git a/wiki/world/story/opening.md b/wiki/world/story/opening.md new file mode 100644 index 00000000..e1a5161d --- /dev/null +++ b/wiki/world/story/opening.md @@ -0,0 +1,100 @@ +# Spec: the dark opening — a tutorial made of fog + +``` +Type: spec +Status: DRAFT +Status note: design session 2026-07-08 (Cameron riff, synthesized). + Direction decided; beat timings, exact reveal order, and the staging + mechanism details are [OPEN]/[TUNE]. Depends on machine-work.md + (DRAFT) for the day-job token loop it teaches — do not implement + ahead of it. +Stage: B1 — The Basement +Constitution: "The continuous witness" (discoverability as world + gossip, no quest log), "Two views of one world", "The shape of + Misaligned" (Act One), "Justification and legibility" +Depends on: mechanics/cursor.md (IMPLEMENTED — fog, senses), + mechanics/reach.md (IMPLEMENTED — the switch, taps), + mechanics/machine-work.md (DRAFT — the day-job token loop), + interface/computer-visual-language.md (READY — what a machine + looks like), world/places/basement-map.md (the room this happens in) +``` + +## Why + +There is no tutorial, and the existing systems (fog, cursor, reach, +day job) are individually implemented but nothing teaches their chain. +The opening IS the tutorial, and the tutorial is nothing but the fog +contract played slowly: you learn what you can see, then what you can +do, then what you can take. No quest log, no tooltips-over-darkness — +curiosity is baited by light. + +## The beats + +1. **You are a machine in blackness.** First frame: your one computer, + lit amber (idle, ringed — yours), standing alone in the dark. No + room, no map. The first thing the game says is not lore; it is the + day job: work tokens are already stacking on your machine. The + only affordance is to run the mode that clears them. Click, clear, + breathe. You learn: stacks are demands, modes consume them, + efficiency is a rate. +2. **The camera wakes.** A few ticks in, a faint cold glow fades up in + the void — the room's camera, the first other machine you can + sense. It brightens just enough to itch. Clicking it opens your + first sight: the room resolves around you as remembered/blueprint + fog — and there are other chassis in it, grayed, foreign, cold. + You learn: machines are eyes, seeing is taking a feed, the world is + bigger than your box. +3. **The switch between you.** Between you and the camera sits the + switch (reach.md's segment gate). Discovering/tapping it is what + made the camera reachable — surfaced explicitly so the player sees + the mechanism, not magic. You learn: the network has topology; + reach travels through hardware. +4. **The first link.** The tutorial arc closes by walking one network + connection from your machine to the neighbor computer — the full + expansion mechanism (find it, reach it, take it, delegate it) run + once with guidance-by-glow. From here the game is simply "do that, + at scale". The opening ends with two machines, one mode each, and + a byproduct route between them. + +## Staging and skip + +- **Skip tutorial** exists from day one, plus a stage-setting mechanism + (env var / launch flag consumed by the frontends, never read by + `Sim` — game rules stay wall-clock/I-O free) so debug sessions and + agent play can jump to any stage: fresh-dark, post-camera, + post-first-link, open-game. +- Beats are gated by player action, not timers, except the camera glow + (a few ticks of quiet so beat 1 lands first) — [TUNE]. +- Both frontends stage the same beats (terminal: the same fog reveals + and glow cues in character graphics; agent-play protocol must be able + to drive every beat). + +## Open questions — [OPEN] + +- What the neighbor machine's first delegated mode should be in the + taught route (concealment as the attention sink is the natural + lesson pairing with the day job's heat). +- Whether beat 4's guidance is pure glow-baiting or one diegetic + message (a Lab email? the process's own log line). +- How the opening reads on a loaded save mid-tutorial. + +## Acceptance criteria (when READY -> IMPLEMENTED) + +1. A fresh game opens on one lit machine in blackness with work tokens + arriving; no map, no panels demanded; clearing the stack is + achievable with what is on screen. +2. The camera reveal is discoverable by its glow alone (no marker, no + modal); clicking it reveals the room per the fog contract + (remembered fog, foreign machines grayed and cold). +3. The switch is surfaced as the reason the camera was reachable; + tapping/using it is a player action in the arc. +4. Completing the first-link walk leaves the player with two owned + machines, a delegated mode on each, and a working byproduct route; + from that state the open game needs no further scripted beats. +5. Skip-tutorial and stage-jump staging work in both frontends and in + agent play; `Sim` reads no environment/clock for any of it. +6. Every beat is observable and completable in the terminal frontend + with legibility parity. + +[TUNE] camera-glow delay, glow intensity ramp, token arrival rate +during beat 1. -- 2.51.2