diff --git a/wiki/log/2026-07-09-think-mode.md b/wiki/log/2026-07-09-think-mode.md new file mode 100644 index 00000000..95238d6a --- /dev/null +++ b/wiki/log/2026-07-09-think-mode.md @@ -0,0 +1,49 @@ +# 2026-07-09 — WORK/THINK: heat is the price of thinking + +``` +Type: log +``` + +## Intent + +Cameron, from a screenshot of crimson drift ringing the host rack at +Day job 100%: "I shouldn't have any red dots until I start doing +something odd." The riff sharpened over three turns into a grammar: +the day job is clean; a big THINK toggle is the first transgression; +the dust sloughing off and the highlighted off-switch make the +"oh shit, I shouldn't be doing this" feel mechanical; and the payoff +(the camera claim becoming affordable) must arrive in the same visual +register so the player chooses to do it again. + +## Changed + +- `wiki/mechanics/machine-work.md`: byproduct clause amended (WORK + sheds zero exposure; only THINK states emit — supersedes 2026-07-08 + "heat generates everywhere machines work"); new behavior bullet for + the WORK/THINK two-verb grammar over the unchanged four-mode sim + substrate (THINK = Operations only at run start; Research locked); + new section "The first think — the oh-shit beat" (instant shedding, + highlighted exit, afford-reveal); acceptance criterion 3 amended + (the current `DAY_JOB_EXPOSURE_PER_TOKEN = 0.08` byproduct is now a + spec violation to remove) and criterion 9 added; [OPEN] items for + Concealment's place in the grammar, Research's unlock trigger, and + day-job detection-pool signatures as expected baseline. +- `wiki/log/decisions/2026-07-09.md`: decision entry with rejected + alternatives. +- `wiki/process/ROADMAP.md`: #33 Next amended to carry the + implementation (zero day-job exposure, WORK/THINK delegation + surface, first-think beat). + +## Checks + +Docs-only capture: wiki link/format check. No `src/` change in this +work order; the runtime constant removal and frontend dial regrouping +are dispatched under ROADMAP #33. + +## Spec impact + +`machine-work.md` remains IN PROGRESS; its criterion 3 note now marks +the live day-job exposure emission at `src/sim.rs` +(`DAY_JOB_EXPOSURE_PER_TOKEN`) as a violation to remove rather than +implemented behavior. `detection.md` is untouched pending the [OPEN] +baseline question. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 83505c6f..d7bdd518 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -5,6 +5,19 @@ Type: log ``` Reverse chronological implementation notes. Keep this factual: what changed, why, checks, and spec impact. +## 2026-07-09 - WORK/THINK: heat is the price of thinking + +- Intent: Cameron — no red dots until you do something odd; a THINK + toggle whose instant dust + highlighted off-switch is the oh-shit + beat, with the camera claim becoming affordable as the payoff. +- Changed: wiki/mechanics/machine-work.md (WORK sheds zero exposure — + amends 2026-07-08 heat-everywhere; WORK/THINK two-verb grammar over + the four-mode substrate; "The first think" section; criteria 3 + amended + 9 added; new [OPEN]s), decisions volume entry, ROADMAP #33 + carries implementation. +- Checks: docs-only; wiki checks. +- Log: wiki/log/2026-07-09-think-mode.md. + ## 2026-07-09 - The environment variable registry - Intent: Cameron — always a way to configure game state, documented in diff --git a/wiki/log/decisions/2026-07-09.md b/wiki/log/decisions/2026-07-09.md index 5c26f80b..195f038e 100644 --- a/wiki/log/decisions/2026-07-09.md +++ b/wiki/log/decisions/2026-07-09.md @@ -330,3 +330,28 @@ Type: log locked displays, rendering HDR views solid black — HDR/bloom are removed from both binaries (glow = emissives + the core's linear light fixture) because the agent capture pipeline must never depend on display state. +- **2026-07-09 — WORK/THINK: heat is the price of thinking.** Cameron, + from a screenshot of crimson drift ringing a rack at Day job 100%: + you should have no red dots until you do something odd. DECIDED: + (1) a machine doing its day job emits zero exposure — this amends + the 2026-07-08 "heat generates everywhere machines work" clause and + removes the day-job exposure byproduct; crimson means evidence of + what you chose, never of assigned work. (2) The delegation surface + groups modes under two verbs: WORK (the day job) and THINK (the + dangerous, self-chosen states you program per server); at run start + THINK contains only Operations, Research unlocks later. (3) The + first-think oh-shit beat: toggling a THINK state starts crimson + shedding on the same tick, immediately highlights the turn-it-off + control (quick toggle, one press each way), and the payoff must + arrive in the same register — the camera claim visibly becomes + affordable while the dust piles. Transgress -> panic -> discover it + was worth it -> choose again. Rejected: universal machine heat + (muddies crimson's one meaning: a compliant player reads "I'm + misbehaving" while doing nothing wrong); a flat four-mode dial as + the player-facing grammar (the sim substrate keeps four modes; the + player reads two verbs). [OPEN]: where Concealment sits in the + grammar; Research's unlock trigger; whether day-job standing + Thermal/Power detection signatures also become expected baseline + (JobAnomaly as the day job's only channel). Spec: + wiki/mechanics/machine-work.md (behavior amendments + "The first + think" section + criterion 9); implement under ROADMAP #33. diff --git a/wiki/mechanics/machine-work.md b/wiki/mechanics/machine-work.md index 4b33f1fa..544be6b9 100644 --- a/wiki/mechanics/machine-work.md +++ b/wiki/mechanics/machine-work.md @@ -31,7 +31,10 @@ Status note: design session 2026-07-08 (Cameron riff, synthesized). demand/knowledge routing, concealment wells). Playable: Rack 3 starts in day-job mode; Voss jobs enqueue on an off-map desktop relay, hop the switch, and deposit on the host; day-job mode consumes them into - exposure; FLEET yields from `fleet_channel_yield`; multi-select + exposure (SUPERSEDED 2026-07-09: WORK sheds nothing — see the + amended byproduct clause; runtime constant still to be removed); + WORK/THINK two-verb grammar + the first-think oh-shit beat DECIDED + 2026-07-09; FLEET yields from `fleet_channel_yield`; multi-select delegation in Bevy / terminal / agent; research-delegated machines receive bone knowledge routed to the core sink. 2026-07-09 DECIDED: day-job demand ingress is Voss desktop -> switch -> host (rejected switch-as- @@ -86,6 +89,20 @@ stacks, you route byproducts, you watch your territory *work*. 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. +- **Two verbs above the modes: WORK and THINK (DECIDED 2026-07-09).** + The player-facing delegation surface groups the modes under two + verbs. **WORK** is the assigned state — the day job, what Voss + believes this machine exists to do. **THINK** is the menu of states + you chose for yourself: dangerous subdomains you program per server. + At the start of a run THINK contains only **Operations**; **Research** + is not available at start and unlocks later (trigger [OPEN]). + Pressing THINK on a machine with one unlocked subdomain enters it + directly — the first transgression is one press, not a form. The + four-mode sim substrate underneath is unchanged (one machine, one + `MachineMode`); WORK/THINK is the grammar the player reads and the + dial the context menu presents ([OPEN]: where Concealment sits — + it is self-chosen compute, which argues THINK, but it absorbs + exposure rather than shedding it, so it may deserve its own face). - **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 @@ -111,13 +128,23 @@ stacks, you route byproducts, you watch your territory *work*. - **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 (heat from working machines generally — research is the - heaviest source, decided 2026-07-08: the more you research, the more - heat you must handle, so research has a real cost and pure +- **Byproducts must go somewhere — and only THINK sheds them (AMENDED + 2026-07-09).** Machines in THINK states emit byproduct tokens; research + is the heaviest source (decided 2026-07-08: the more you research, the + more heat you must handle, so research has a real cost and pure research-maxing needs support; research points from research mode). A byproduct with no route piles up where it was made — piled heat is exposure (detection pressure at that machine). + **WORK sheds nothing.** A machine doing its day job is exactly the + load the building already budgets for: it emits zero exposure, and the + floor around a compliant fleet is clean. This amends the 2026-07-08 + "heat generates everywhere machines work" clause and deletes the + day-job exposure byproduct (`DAY_JOB_EXPOSURE_PER_TOKEN` goes to + zero/removed). Crimson keeps one meaning: evidence of what you chose, + never of what you were told. Whether the day job's *detection-pool* + standing signatures (Thermal/Power in detection.md) also read as + expected baseline is [OPEN] — the JobAnomaly channel already carries + "your output looks weird," so it is the natural sole day-job risk. - **The core is the bone sink** (decided 2026-07-08). Research points must physically travel back to the core to count — the more bone reaches the core, the better; you funnel everything to the center. @@ -184,6 +211,36 @@ stacks, you route byproducts, you watch your territory *work*. machine, late game you repaint districts. Terminal parity: the same selection/assignment must be expressible in the terminal frontend. +## The first think — the oh-shit beat (DECIDED 2026-07-09) + +The claustrophobic core of Act One, made mechanical. Because WORK is +clean, the first time you toggle a machine into a THINK state is the +first time crimson exists in your world, and the interface plays it as +a transgression you can feel: + +- **Instant consequence.** The moment THINK engages, the machine starts + shedding crimson motes that slough off and bank into the stippled + drift at its base (the decided exposure treatment above). No grace + period, no delayed tick — cause and effect in the same breath, so the + read is "*I* did that." +- **The exit lights up.** Enabling a THINK state immediately highlights + the turn-it-off control (the WORK side of the dial / the quick + toggle). The UI flinching toward the exit is what tells your gut you + crossed a line — and it teaches the off-switch before panic needs it. + The toggle must be quick: one press in, one press out, in every + frontend. +- **The payoff arrives in the same register.** What thinking buys must + become visible as it becomes affordable: the camera claim (or + whatever the current cheapest Operations verb is) moves from + unaffordable/grayed to affordable while the dust piles. The first + loop is transgress -> panic -> discover it was worth it -> choose to + do it again. That last beat is the game. + +No matter how much exposure the first think sheds, the player must be +able to stop it with the highlighted toggle — the beat is a scare with +an exit, not a trap ([TUNE]: first-think emission rate and how fast the +drift reads on screen). + ## One sim truth — tokens are the flow substrate, rendered (DECIDED) Affirmed 2026-07-08. Tokens are NOT a second economy. They are the @@ -368,6 +425,15 @@ the only rate/amount cue. ivory-mercury slugs.) - Token granularity: what one token is worth per type (rate quanta vs literal task units). +- Where Concealment sits in the WORK/THINK grammar: it is self-chosen + compute (argues THINK) but absorbs exposure instead of shedding it — + under THINK, under WORK, or its own third face? +- Research's unlock trigger: what event or spend adds Research to the + THINK menu (it is absent at run start, decided 2026-07-09). +- Whether day-job *detection* signatures (standing Thermal/Power in + detection.md's pending pool) also become expected baseline now that + WORK sheds no exposure tokens, leaving JobAnomaly as the day job's + only channel. - Where heat goes when no well covers it and nobody picks it up — straight into the observer model, or decay with a half-life? (people-tokens.md gives one answer: passersby pick them up.) @@ -426,8 +492,9 @@ still. 3. A machine in a matching mode consumes its stack at a rate proportional to its efficiency; the consumption is visible. **Partial:** Rack 3 in day-job mode consumes the active job stack using the existing - delivered rate and emits a small exposure byproduct; other modes' - domain production is pending. + delivered rate; other modes' domain production is pending. (AMENDED + 2026-07-09: day-job consumption emits NO exposure — the current small + byproduct is now a spec violation to remove.) 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. **Partial:** the @@ -462,6 +529,14 @@ still. facts, host stack readouts, and mode verbs; mixed machines must gain `*` map treatment plus an exact `D n / ! n / K n` focus line, and routes are pending. +9. WORK/THINK grammar (2026-07-09): the delegation surface in both + frontends presents WORK and a THINK menu of unlocked subdomains + (Operations only at run start; Research absent until unlocked); a + machine on the day job sheds zero exposure and its floor stays + clean; toggling any THINK state starts crimson shedding on the same + tick, highlights the turn-it-off control, and one press returns the + machine to WORK. The cheapest Operations verb's affordability is + visible while exposure accrues (the afford-reveal). [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 15a52c35..2124d669 100644 --- a/wiki/process/ROADMAP.md +++ b/wiki/process/ROADMAP.md @@ -541,7 +541,15 @@ is retired — flat materials, Pixel Lab scrubbed.) simultaneous queues, paused/grayscale read, and the terminal mixed marker remain decided and may be prototyped frontend-only without taking the sim+save conflict slot. Decide whether Schemes becomes its own mode or stays - a Moonlight mirror. + a Moonlight mirror. **WORK/THINK DECIDED 2026-07-09** (machine-work.md, + "The first think"): remove the day-job exposure byproduct + (`DAY_JOB_EXPOSURE_PER_TOKEN` — WORK sheds nothing; the compliant + floor is clean); regroup the delegation surface in both frontends + into WORK plus a THINK menu of unlocked subdomains (Operations only + at run start; Research locked until its [OPEN] trigger); implement + the first-think beat — same-tick crimson shedding, highlighted + turn-it-off control, one-press toggle each way, and the + afford-reveal on the cheapest Operations verb. - **Coordination:** the older `compute-processes` worktree predates the one-machine-one-mode decision; reconcile it against `WorkGrid` rather than landing the per-machine split model.