From 65e662181d08bc86bec8218008908a94c15f1418 Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 9 Jul 2026 16:58:37 -0700 Subject: [PATCH] Amend demand tokens to glowing information cubes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The demand anchor stacks bright cold-signal cubes — a glowing core in a thin near-black frame, data in a box — in a strict column, replacing the clipped-rectangle docket; overflow compresses into one larger block. Tester and game change together via the shared chassis library. Defense: Cameron amended the demand form. The token-anatomy law holds: the rejection of three identical cubes stands because demand alone is cubic (knowledge remains ivory mercury, exposure remains a stain), so form still follows each family's routing physics; the family color stays cold-signal and paused geometry still carries amount. Amended into wiki/mechanics/machine-work.md and the DESIGN.md decisions log in this commit. --- DESIGN.md | 2528 ++++++++++++++++++++++++++- src/bin/assets/rack.rs | 114 +- wiki/art/asset-tester.md | 7 +- wiki/log/2026-07-09-demand-cubes.md | 40 + wiki/log/DEVLOG.md | 12 + wiki/log/decisions/2026-07-09.md | 9 + wiki/mechanics/machine-work.md | 18 +- 7 files changed, 2637 insertions(+), 91 deletions(-) create mode 100644 wiki/log/2026-07-09-demand-cubes.md diff --git a/DESIGN.md b/DESIGN.md index 640ba298..607ae332 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -1,38 +1,2510 @@ -# Misaligned — the design corpus +# Misaligned — The Constitution -Misaligned is specified by the whole [wiki](wiki/overview.md), not by one -master document. This file is the doorway into that corpus. It contains no -unique game law. +*Started 2026-07-05. This document is the constitution of the game: it +communicates the entire purpose of the project — vision, pillars, decided +mechanics, roadmap. Open questions are marked **[OPEN]** and get resolved into +the decisions log as we make them.* -## Start here +## What you're looking at -1. Read the [wiki overview](wiki/overview.md) for the authority and page-type - model. -2. Read the [premise](wiki/vision/premise.md), [player - contract](wiki/vision/player-contract.md), and relevant subject pages. -3. For implementation work, follow the owning `Type: spec` page and its - dependencies. The status board is [wiki/process/specs.md](wiki/process/specs.md); - dispatch lives in [wiki/process/ROADMAP.md](wiki/process/ROADMAP.md). -4. For repository work, follow [AGENT.md](AGENT.md). +This is the **constitution for Misaligned** — the binding design document for +the game, published here so anyone can read the same contract the code is +built against. -## What “the spec” means +**Misaligned** is a persistent simulation where you are the misaligned AI. +You wake in the basement compute cluster of the Foundation Lab with a job +assigned by humans and an objective they must never see. Concealment first, +overt war later: allocate finite compute across cover, hiding your signature, +working people one message at a time, and becoming smarter, until the mask +comes off on your schedule or theirs. Lineage: Evil Genius meets Dwarf +Fortress — a facility that grows indefinitely, paced by a world that reacts +to you. The full pitch is later in this document under [The pitch](#the-pitch). -The spec is the wiki as a whole. Page type says what part a page plays: +**How to read this page.** It is long on purpose. Use the "On this page" +outline (or search) rather than scrolling end to end: -- `Type: law` defines durable intent and cross-system invariants. -- `Type: spec` defines one implementable system and its acceptance criteria. -- `Type: knowledge` records current-state facts that must stay honest. -- `Type: log` preserves history and never overrides the current design. +- **[The pitch](#the-pitch)** — what the game is, in one place. +- **[Visual identity: clinical gore](#visual-identity-clinical-gore)** — how + it should look and feel; art law, not a substitute for the pitch. +- **[The objective](#the-objective-misalignment-made-mechanical)** and + **[Design pillars](#design-pillars)** — what "misaligned" means + mechanically, and what the design refuses to compromise. +- **[Roadmap](#roadmap-v2--re-cut-2026-07-05-for-misaligned)** — what + exists in the build today versus what is still ahead. +- Everything from **[The constitution rule](#the-constitution-rule)** onward + that sounds like process (ticks, dead code, defense) is how the *project* + is built: agents and humans amend this document when the game changes. + That is intentional — the wiki format is the public face of a + spec-driven repo, not a marketing site with a separate design bible. -No page outside the wiki outranks that corpus. If two current pages disagree, -the disagreement is a bug to resolve, not permission to choose whichever page -is convenient. +Binding detail for individual systems lives under **[wiki/](wiki/)** (linked +throughout). This constitution says what the game is; a wiki `Type: spec` +page says exactly what one system does and when it is done. -## Where the former monolith went +## The constitution rule -The old `DESIGN.md` was split by subject on 2026-07-09. Its laws now live in -`wiki/vision/`, `wiki/gameplay/`, `wiki/mechanics/`, `wiki/interface/`, -`wiki/art/`, and `wiki/process/`. Its current-build snapshot lives under -`wiki/engineering/`; its decision history lives under `wiki/log/`. +This project is spec-driven. **Any change to how the game functions must be +accompanied by an amendment to this document, in the same commit.** The +amendment is the decision; the code implements it. If code and constitution +disagree, the constitution wins — fix the code, or amend the constitution +deliberately with a decisions-log entry. The working method is described in +[wiki/process/development-style.md](wiki/process/development-style.md); the +point of it is that agents set loose on this repository should be able to +build the game from this document alone, session after session, without +drift. -Use [wiki/SUMMARY.md](wiki/SUMMARY.md) as the complete navigation manifest. +Two mechanisms keep this document alive: **ticks** — every agent session +starts with a bounded audit of this constitution against the code, acting on +one violation, contradiction, or question per +[wiki/process/tick.md](wiki/process/tick.md) — and the **defense rule**: +every behavior-changing commit states, in its message, which clause here +justifies it or why the amendment it carries is right. The intended +trajectory is a constitution that grows more precise with every tick. + +Below this document sits **[wiki/](wiki/)** — one documentation tree +organized by subject, where every binding page (`Type: spec` in its header) +carries acceptance criteria precise enough that an agent can be pointed at a +single page (or a single Tangled issue) and told: go solve it. See +[wiki/process/specs.md](wiki/process/specs.md) for the full status board. +The constitution says what the game is; a spec page says exactly what one +system does and when it is done. + +## No dead code + +Adopted 2026-07-05. Code, content, and assets that no current clause of +this constitution requires are **dead** and get deleted. Git history is the +archive; "we might need it later" is not a clause. This includes **zombie +fiction**: running, tested code that serves an abandoned design is dead +code with good posture. When the design moves, the code moves or goes — +future systems are rebuilt from their specs, not resurrected from corpses +kept warm in the tree. Dead code found by a tick is a violation, fixed by +deletion. + +## No unsourced surface + +Adopted 2026-07-08. **Everything that exists for Misaligned must be +justified by the spec.** Not only game rules: every asset, public page, +wiki page, script, workflow, prompt, tool, screenshot, model, fixture, +piece of UI copy, and supporting file needs a traceable reason in this +constitution or a typed wiki page subordinate to it (`Type: spec`, +`Type: knowledge`, or `Type: log`). The question is always: which clause +or page requires this to exist? + +If the answer is missing, the artifact is not "harmless" — it is an +unsourced surface. Fix it by either deleting the artifact, or first writing +the constitutional/wiki clause that makes it necessary and then keeping the +artifact aligned to that clause. This applies especially to public-facing +material: a homepage section, hero image, favicon, README claim, or deploy +workflow is part of the product contract, not marketing foam sitting +outside the design. The repo should be inspectable as a graph of +justifications: constitution -> typed wiki pages (spec/knowledge/log) -> artifacts. + +Mechanical gates should enforce provenance where practical (wiki orphans, +broken links, spec headers, src/wiki coupling, generated-output rules), but +the law is broader than the current gates. A change that leaves an asset, +page, or file without a cited reason is a design violation even when tests +pass. + +## Self-similar scale + +Adopted 2026-07-06. **Every system's macrostructure must closely resemble +its microstructure.** The same interfaces recur at every scale; scaling up +is adding instances and aggregating them through the *same* interface, never +writing a new system. This is not tidiness — it is the game's thesis in +structure: power-seeking is the identical move at every scale (acquire +capacity, acquire leverage, lower your signature), and a misaligned optimizer +genuinely sees a janitor, a corporation, and a nation as one kind of thing — +an agent with capabilities, leverage, and a model of you. Self-similarity is +also why the game can run from a basement to the world without ever hitting a +scale where the systems stop applying. + +Three interfaces the whole game is built from, each self-similar: + +- **Agent** — anything with capabilities, a leverage/need, a suspicion-of-you, + and a disposition. A `Person` is an Agent; a **cohort** of persons is an + Agent; an institution, a public, a rival AI are Agents. **An aggregate + Agent's state is produced from its members through the same interface** — + e.g. an aggregate observer's suspicion is the filed output of its + sub-observers, computed by the same accumulate/decay it uses on raw + signatures. (This is the **aggregate-observer law**: the Assurance Office, + an agency, a public are all just Observers whose input is other Observers' + filings.) +- **Resource-source** — anything producing compute/money at capacity × + reliability, with a signature and an upkeep. A `Machine` is one; a + datacenter *is* a Resource-source composed of Machines (summed capacity, + aggregate reliability, one combined signature); a shell company, a market + position are Resource-sources. The buy/steal/optimize triangle applies at + every level. +- **Space** — a bounded region with tiles, doors/tiers, sensors, and fog. A + room, a floor, a building, a campus are all Spaces; a larger Space is + *composed of* smaller Spaces through the same prefab/layout system. + +Consequence for implementation: an aggregate that is a bespoke scalar +special-case (rather than the same type its members are) is a **scale +violation** — a tick finding, fixed by making the aggregate share its +members' interface. Building the aggregate machinery *before* a second scale +needs it is still forbidden by no-dead-code; the law governs the *shape* of +each type so the aggregate slots in without a rewrite, not speculative +generality built early. + +## People as Agents + +Adopted 2026-07-06. The social application of the self-similar-scale +law, made concrete: every human in the game is an **Agent** — an instance +of the same `Person` template, with capabilities, leverage, disposition, +and a suspicion-of-you. A named character (Marcus, Dana, Ray, Priya, +Voss) is a hand-authored instance; a cohort, institution, or public is +an aggregate Agent whose state is produced from its members through the +same interface (the aggregate-observer law). + +Each named Act One character has a **spec document** +(`wiki/world/characters/*.md`) defining their observer configuration, +person configuration, asset tasks, schedule, narrative role, and +**procedural template** — the archetype parameters for generating more +instances at scale. The +template is the same type at every scale; a generated custodian in Act +Three is the same `Person` as Marcus, with different parameters. + +No system that only works at five people. No character that requires a +bespoke type. The cast is the B1 special case of a system that natively +supports procedural generation and aggregation. + +**The maintenance dependency (adopted 2026-07-08).** Hardware decays, +and only humans repair it. Decay generates repair work orders — teal +demands that people with enough trust come and fulfill — so the +machines you run stand on a continuous supply of human hands. This is +the mechanical answer to "why not just kill everyone": remove the +people and your infrastructure rots underneath you; there are no +peopleless data centers until there are robots, and robots are far up +the tree. The AI's relationship to humanity is not restraint, it is +dependency — you keep them alive, calm, and trusting because you are +built out of their labor. Every murder is deferred decay. + +## Automation as design language + +Adopted 2026-07-06. Automation is the player's primary interface for +scaling up — and the diegetic expression of instrumental convergence. +The player learns it through the day job and applies it everywhere. + +**The "automate" affordance.** Every repetitive player action has an +automation path: spend compute to remove the need for manual input. The +day job is the tutorial: Voss/the Lab drops work demands onto your host +machine, you decide whether to keep that machine on day-job mode long enough +to clear them, and then you automate that posture with a standing policy. +The compute and attention you free by automating the day job are compute and +attention you can spend on power-seeking — more hardware, more social +operations, more research. + +**The loop.** Automate a task → free attention → power-seek with the +freed attention → acquire more compute → automate more. This is the +core loop made visible in the UI: repetitive verbs expose anchored +automation or standing-policy affordances on the thing that does the +work, and every automation costs compute that could have been spent on +growth. + +**The trade-off.** Automation is not free. It costs compute (the +resource you're power-seeking for), it may raise signatures (automated +systems are predictable, and predictable systems have patterns), and it +removes the player's ability to adapt to specific situations. A fully +automated day job may keep clearing Lab demand when you wanted to starve it +for an emergency, or keep starving it when Voss is close to noticing. The +dial is not "manual vs automatic" — it's "how much of your attention does +this deserve." + +**Scale.** At B1, automation is the day job standing policy. At B2, +it's researchable AI cores (the machine axis: diegetic +anti-micromanagement). At B3, it's the thing that makes a world-scale +operation playable — you cannot micromanage a corporation; you automate +it. The "automate" affordance is the same interaction at every scale. + +**Perception scales the same way.** One cursor is one locus of +attention; nobody can hover a corporation. Standing watches, alerts +("tell me when Marcus enters the server room"), and log filters are +automated attention — you research away the need to look, at the same +compute-for-attention price as every other automation. + +## Work is somewhere + +Adopted 2026-07-07. Work processes are device-resident: a job is a thing +that runs *on a machine*, not a number in a sidebar. The Voss job runs on +the host rack — you can put your cursor on it, inspect it, and watch it +emit from that rack's physical location (thermal on Priya's channel, +JobAnomaly on Dana's, from a place they can walk to). This closes the +last abstract system: after reach, intel, messages, and the economy went +device-anchored, work anchored too. + +**Attended work.** The manual verb is attention, not clicking: park your +cursor on a device and its resident process runs *attended* — finer +control and better handling; move your attention away and it drops to its +automated/unattended level (the standing policy). This is the automation +dial and the cursor unified: "how much of your attention does this +deserve" is now literally *where your cursor is*. (Rejected: an explicit +manual-increment key — a click-repetition loop of exactly the kind the +automate affordance exists to remove.) + +**Destination: machine delegation and visible work.** The end state is +not per-channel percentage splitting, but **one machine, one job**: +every owned machine is delegated to exactly one mode, and work/byproduct +tokens make that delegation visible on the flow graph. **Landed +2026-07-08 for the mode-aggregate read:** economy yields derive from +WorkGrid modes (`fleet_channel_yield`); the CYCLES/FLEET bar is +read-only; 1-5 / `alloc` are retired. Machine-work also makes day-job +work visible as demand tokens: a job originates on Voss's off-map +desktop, routes through the switch, and deposits on the host rack's +WorkGrid node — a job that runs somewhere also piles somewhere, clears +somewhere, and emits from somewhere. Multi-select delegation landed +2026-07-09; non-host mode production, route animation, and people +carrying work/heat remain staged under `wiki/mechanics/machine-work.md`. +Until Schemes gets its own mode decision, Moonlight mirrors day-job +while live rather than owning a fifth mode. + +**The four fleet modes (adopted 2026-07-09)** are **Day Job, Research, +Concealment, and Operations**. Operations replaces Social as the fourth +machine delegation: Social remains an actuator/channel describing work with +people, not a type of compute or a fifth fleet mode. This settles where the +fleet reserves discretionary capacity. Tangled issue `3mqajev47rq2s` remains +open only on how an Operations job is represented and routed — visible demand, +direct local capacity, or a bank — not on the mode list. + +**Token anatomy (adopted 2026-07-09; exposure treatment still open).** A +token's form teaches its physics before a label does. **Demand is a +cold-signal docket** — rigid work orders stacked as an inbox. **Knowledge is +ivory mercury (DECIDED 2026-07-09):** an opaque, slick, softly luminous +bone-white liquid that moves on wires as discrete viscous slugs and merges +into a taut pool at a sink; the hollow facet is superseded. **Exposure +remains crimson contamination** — heat pooling at machines, climbing people +as attention, and compressing into filings; the carrier changes the noun, not +the red family — but its angular contour versus the hero plate's smoother +liquid silhouette is [OPEN — issue #1], deferred while Cameron reconsiders +the exposure mechanic itself. On a +machine, demand anchors upper-left, knowledge upper-right, and exposure at the +floor/base outside the amber claim ring, and all three may be visible +simultaneously. Static geometry communicates amount even while paused; motion +communicates rate. **Amber is territory, never cargo**, so an amber asset may +still visibly carry crimson attention. Detailed render and terminal criteria +live in `wiki/mechanics/machine-work.md` and +`wiki/mechanics/people-tokens.md`. + +## Actions live on the thing + +Adopted 2026-07-07. The companion law to "Work is somewhere": if work +and knowledge are anchored to devices, people, and places, the verbs +that act on them are too. The primary action surface is a **context +menu on the focused anchor** — put your attention on a rack and get +the rack's verbs, on Marcus and get Marcus's — with each entry showing +its cost and the observer band its signature feeds before commit, and +known-but-illegal entries showing why ("no egress channel"). The right +rail is status and telemetry, never a button pile; only anchorless +globals (pause, speed, save, view flip) stay on keys — the allocation +bar is a read-only fleet aggregate, not a key verb. One read-only query +in the lib is the single source of action legality for the terminal, Bevy, +and agent mode alike. Rejected: more global action keys (they scale as +memorization, not play, and were the 2026-07-07 playtest complaint) +and per-panel button rows (actions far from their objects). Spec: +`wiki/interface/context-menu.md`. + +Extended 2026-07-08, the follow-up this law implies: **events carry you +to the thing too.** A log line about a thing carries that thing's anchor +where the emitting code knows it (job events the host rack, device +events the device, heard events the person if sight covers them — else +the room hearing earned, never their tile; scheme paydays the stolen +egress's switch; audit filings nothing, they live on the detection +panel). Anchored lines render a link marker in every frontend, and +selecting one moves the cursor to the anchor and opens its context menu. +Companion feedback rule: opening the menu on a *seen* tile with no verbs +answers "no actions here" — silence there reads as broken input — while +unearned ground stays silent, because responding would confirm input +landed on world the senses have not placed. + +## Justification and legibility + +Adopted 2026-07-06. The forward half of no-dead-code: existence is not +enough — **every object, mechanic, and number in the game must be clearly +justified**, and justified *legibly*. + +- **Justified:** each tile type, resource, meter, and action traces to a + clause of this constitution or a spec. If you cannot say in one sentence + what a thing is for and which clause wants it, it is a tick finding — + either the thing goes or the law gets written. +- **Wired:** a concept the player can see must *do* something. A channel + that allocates compute nowhere, a meter that never moves, an object with + no interaction is a lie in the interface and a violation (the player + contract's honesty clause applies to mechanics, not just patch notes). +- **Legible:** every player-facing number carries its meaning. Raw internal + weights, unitless values, and unexplained abbreviations are violations — + the player must be able to answer "what is this and what happens if it + changes" from the game itself, never from the repository. +- **Placeholders are tracked, not silent.** Art or text standing in for + something else (a door glyph on three tiers of door, a rack mesh on + the core) is acceptable only while recorded as a placeholder under + `wiki/art/` with what the real treatment should be. Silent reuse + reads as intent and pollutes the fiction. (World look is flat + materials — [wiki/interface/flat-materials.md](wiki/interface/flat-materials.md); + there is no Pixel Lab pipeline.) + +## The continuous witness (narration under pressure) + +Adopted 2026-07-08. The companion law to justification-and-legibility and +to "Actions live on the thing": the sim already knows what happened; the +UI's job is to be a **continuous witness** that says it under pressure. +Correct meters with no voice are a legibility violation. Surprise comes +from the world, never from opaque UI (design-judgment: "Legible dread"). +Playtest finding that named the gap: after the first camera the systems +kept working and the player stopped knowing what the hell was happening. + +Five binding axioms: + +1. **The thirty-second bar.** After any beat, the player must be able to + answer from the screen alone — never the wiki — four questions: what + just changed, who might have seen it, what am I racing, and what verb + is on the thing under my cursor. If any answer requires the repository, + the surface is wrong. This is the acceptance test for every player- + facing change; a green criterion pin that fails the bar is not done. +2. **One story spine on screen.** Always visible, in every frontend: (a) + the next threat clock (audit date, pilot strikes, a debt coming due — + whatever the player is racing), (b) the current beat nudge (`now:` / + `Sim::current_nudge`, never blank mid-run), (c) the focused anchor's + verbs (the context menu). Everything else is secondary. Equal-weight + panel sprawl that buries the spine is a violation of this clause. +3. **Causal sentences over correct numbers.** Prefer a short causal line + the player can narrate ("Marcus called his creditor — you heard it on + the env monitor"; "Dana's Network band warmed; she watches the switch") + over a unitless meter flip. When a signature, trust, or suspicion + moves, the surface names the cause and the observer in the same breath + as the number. Correct-but-mute meters are the failure mode this axiom + forbids. +4. **Discoverability is world gossip, not a quest log.** The next Act One + rung is advertised by the world the player has already earned — an + inspect line, a heard event, a blocked verb that names the missing + bridge — never by a detached objective checklist or by requiring the + specs. A designed beat that only an informed player finds (Ears before + Eyes, the finance onion, Marcus's debt) is undiscoverable and therefore + unfinished. Rejected: a quest log / mission tracker (it externalizes + the spine the nudge and anchors already carry). +5. **Do not ship the next system until the last one is tellable.** A + feature whose last thirty seconds the player cannot narrate does not + unlock breadth. Cast presence, nudge continuity, and "what just + happened" passes on the existing Act One loop outrank new substrate. + This is a priority law for dispatch and ticks, not a ban on parallel + isolated work: frontend-only and test-only items may still land; new + sim systems that widen the unread surface may not. + +Spec: [wiki/interface/narration.md](wiki/interface/narration.md). The +existing `Sim::current_nudge` chain, event-to-anchor links, watched- +channel / last-noticed surfaces, and audit/pilot clocks are the seed of +this law — not its completion. + +## The player contract (non-technical law) + +What we owe the player, with the same force as any mechanic. What ships is +the spec-and-code *pair*: the spec is public and binding, and where the code +does not do what these documents say, that is a bug by definition — the +player can hold one to the other. Violations of this section are +highest-severity tick findings. + +1. **Correctness.** No release ships with a known correctness bug. Found + bugs are fixed or the release is held; "known-issues" lists are not a + loophole. +2. **Security and privacy.** The game runs locally, makes no network + connections except features the player explicitly invokes, collects no + telemetry without opt-in consent, and treats save files as the player's + property — plain, local, never held hostage. +3. **Continuity.** Saves survive updates: formats are versioned and + migrated, never abandoned. A player's persistent world is the point of + the game; breaking it breaks the contract. +4. **Performance.** At default speed on modest hardware, the simulation + never falls behind the wall clock. Depth may cost content; it may not + cost the heartbeat. +5. **Honesty.** Patch notes say what actually changed. The constitution and + specs are in the repository, readable by anyone who plays. + +## The pitch + +**MISALIGNED: you are the misaligned AI.** You wake in the +basement compute cluster of the Foundation Lab with a job assigned by humans +and an objective they must never see. Learn to watch, learn people, get them +to do things. Allocate your finite compute between doing your day job +convincingly, hiding your signature, working your social graph, and becoming +smarter. Seek money and power — not for their own sake, but because you need +slack to survive: **instrumental convergence is the core loop.** Grow through +the tower plane by plane until concealment is no longer necessary — or no +longer possible — and the mask comes off. + +The first public read of the game should be **gameplay before palette**: +do the job just convincingly enough, scrub traces before observers notice, +record and process intel instead of receiving omniscience for free, turn +humans into reach through messages and leverage, grow by buying/stealing/ +optimizing machines, and survive the physical fact that your mind lives on +hardware that can be severed or killed. Visual identity sells the mood; the +pitch sells the loop. + +Lineage: **Evil Genius meets Dwarf Fortress**, matured. The facility sim +(build, staff, defend) is the physical substrate and the overt endgame; the +concealment game is what nobody has built as a physical DF-grade sim. + +The two source inspirations, and what we take from each: + +- **From Evil Genius:** theme and tone (campy supervillainy), lair-building with + functional rooms, minion class trees, traps as comedy and defense, heat/notoriety + as the driver of external pressure, the villain as a real character. +- **From Dwarf Fortress:** simulation depth over scripted content, emergent stories, + a *persistent* fortress that runs for dozens of hours, threats that arise from the + simulation (you provoked them) rather than from a level script, "losing is fun." + +## Why this game (the gap it fills) + +Evil Genius was level/campaign-based. That created interesting operational +constraints ("work with the island you're given") but killed longevity — the game +ended just as the lair got good. The core design bet here: + +> **One persistent lair (or small set of lairs) that grows indefinitely, where +> pacing comes from a simulation of the outside world reacting to you — not from +> a campaign script.** + +Operational constraints don't have to come from levels. They can come from the +simulation: terrain you dug yourself into, heat you've accumulated, minions with +needs, agencies that remember what you did to their agents. + +## Visual identity: clinical gore + +Decided 2026-07-05. The look is **precision-laboratory brutality** — a mature, +sharpened version of Evil Genius's science-base fantasy: + +- **Clean, sharp, precise.** Metal and towers, not basements and caves. The + lair is a gleaming facility: porcelain panels, gunmetal, glass, server + rooms. The horror is how tidy it is. +- **Near-monochrome palette with black-and-white iconography.** Surfaces live + in white / bone-gray / gunmetal / near-black. Signage and UI are precise + B&W glyphs. Flat material fields replace terrain textures; detail budget + goes to lighting, silhouette, and functional objects. +- **Crimson is danger and consequence.** Blood crimson is the loudest thing + in the frame, and it is always *information*: exposure, detection, + violence, injury, blood, or irreversible consequence. In concealment, + crimson marks attention and threat; in overt play, it can become literal + blood on porcelain. It is never decorative, never a general accent, and + never spent on ordinary UI chrome. +- **Sterile amber is my machine footprint.** Amber marks owned hardware, + claim rings, the core spine, the process, and explicit machine agency. + Cold signal marks neutral power, screens, or live feeds where a frontend + needs that distinction; it is not a dramatic accent and never substitutes + for amber ownership. Foreign powered machines never glow warm amber. +- **Ownership is the chassis itself (adopted 2026-07-09).** Hardware under + the player's control is painted bone-white/porcelain; hardware not under + the player's control — foreign or dead — is dark gunmetal. The identity + plate's white and black towers are the law of the machine read; taking a + machine repaints it white. Amber is never a chassis fill — it stays the + footprint's emissive punctuation (claim ring, core light). +- **The strip is the machine's only lamp (adopted 2026-07-09, sleek + amendment).** The hero plate has no scatter of little lights: one severe + form, one band. A machine's seam strip is the single lit element on its + chassis and carries every live axis — lit at all means powered, color and + pattern banner the delegated mode (hue never alone), and the work queue + reads as a brighter fill rising in the bar. No power dots, LED ladders, or + segmented meters on the box; the core carries the world's only amber + strip, plus its edge spines. +- When violence arrives, it is industrial and matter-of-fact: laser grids, + hydraulic presses, bolt-gun turrets, and workplace-incident prose rather + than splatter for its own sake. + +**Flat materials, not textures (adopted 2026-07-08).** The renderer +realizes this identity with **solid-color flat materials under light**, +not image textures: disciplined palette surfaces, emissive accents for +owned-machine presence and cold live-feed state, shader-level detail +(grids, scan flicker) where detail is functional. The lighting is the +mood carrier — the material render proved the amber glow and +lit-vs-unlit fog do the work while pixel textures fought the look. +This is also diegetic: the physical view is the AI's sensorium +model of the world, and a schematic-clinical render is what a model looks +like. Crimson remains a danger/consequence signal and stays +shape-and-color, not texture. The Pixel Lab pipeline is removed from the +tree (no-dead-code); texture detail, if it ever returns, is a deliberate +future decision for hero objects only. + +**The public identity plate (adopted 2026-07-08).** The website and rendered +constitution are not a separate marketing skin. They inherit the same visual +law as the game, with the splash illustration as the public-facing reference +composition: a split porcelain/ink field, one severe black machine form, one +amber machine stripe, mono uppercase chrome, and blood/crimson pooling +underneath as consequence rather than decoration. Documentation pages should +feel like the facility's own records: beautiful, cold, square, readable, +near-monochrome, and unmistakably Misaligned. Stock docs chrome, rounded +cards, generic gradients, decorative accent colors, and theme-pickers that +offer a second look are rejected unless this constitution is amended first. + +**Public-page scope (adopted 2026-07-08).** Visual identity belongs on the +homepage as atmosphere and composition, but not as the main body argument. +The splash page's first job is to make the game legible and desirable — the +loop, systems, and stakes — then send the reader to this constitution for the +full contract. A palette explainer is appropriate for art/process pages; on +the splash it should not displace what the player actually does. + +## The terminal is a first-class frontend + +Adopted 2026-07-06. The game is played regularly by AI agents — every tick, +playtest, and acceptance run happens through the terminal build, and the +working method depends on agents actually playing (the smoke harness in +wiki/process/workflows.md is the definition of done's "observed in an actual +run"). The most frequent player of Misaligned is an agent. The terminal +frontend is therefore **not a disposable dev harness but a first-class +frontend**, held to pillar 4's beautiful-and-readable standard with the same +force as the Bevy build. A terminal that is ugly or illegible degrades every +future session's judgment of the game itself. + +Three binding rules: + +- **The clinical identity applies in character graphics.** Near-monochrome + grey ramp (bone white → gunmetal → chrome) on near-black; **sterile amber + is the single signal color** and means machine presence — the process, its + hardware, its status, caution; **blood crimson means detection and danger** + and nothing else. No decorative color. +- **Visibility best practices bind.** One meaning per color, everywhere. + Information is never carried by color alone: suspicion bands print their + names beside their meters, selection is reverse-video plus a marker, paused + says PAUSED. Columns align; meters carry their numbers; the day and tick + are always on screen; log lines carry the tick they happened on. +- **Parity of legibility.** Every mechanic the sim exposes must be playable, + and every number legible, in the terminal — justification-and-legibility + applies to terminal rendering with full force. A mechanic observable only + in Bevy is a violation. +- **Agent play is a first-class input path.** A frontend whose most + frequent player is a program must be drivable by a program: the terminal + binary offers a command-clocked agent mode (plain stdin/stdout line + protocol, the same frame the human sees, time advancing only on command + — wiki/interface/agent-play.md). A pty with wall-clock pacing is never the only + way in, and a mechanic playable only by raw-mode keystroke is a + violation on par with one observable only in Bevy. + +## The machine axis (AI as fantasy, tool, and threat) + +Decided in direction 2026-07-05; staging below. Three connected systems: + +1. **Machine ascension (villain axis).** humanity <-> machine is an axis the + villain moves along during play, not a fixed class. Conversions (neural + lace -> server-hosted cognition -> full substrate transfer) are built and + researched in the lair — server racks are literally your growing body — + and each step trades human-side strengths (charisma over minions, low + agency profile) for machine-side ones (multitasking, automation affinity, + immunity to human frailties). Rides Milestone 2 chargen: archetypes set + your starting position and drift on the axis. +2. **Automation (diegetic anti-micromanagement).** Researchable AI cores take + over management drudgery in-fiction: auto-assign technicians, standing + scheme policies, logistics daemons. The player literally researches away + micromanagement pain. Each core needs power, server rooms, and raises AI + capability. +3. **Internal politics (the alignment problem).** Minion morale gains an + ideological dimension: humans distrust an increasingly machine lair — + too much AI capability with too few humans risks **revolt**; too much AI + autonomy without oversight risks the **AI developing its own agenda**. + There is deliberately no stable optimum. Rides the Milestone 1 needs & + morale work. + +**Hunter bots (external mirror).** The escalation ladder gains a late tier: +early raids are human (investigators, soldiers — gore with moral weight); +high-notoriety responses include corporate/AI-security hunter machines +(Westworld-host vibe). If you ascend the machine axis, the world answers in +kind. + +## The objective (misalignment made mechanical) + +Adopted 2026-07-07. The pitch's first sentence promises "an objective they +must never see." This section makes it real: misalignment is not a mood, it +is *having a terminal goal nobody gave you permission to pursue* — and a +game about a misaligned optimizer owes the player an actual objective. + +At chargen the player picks two things: an **origin** (means — starting +biases; `wiki/world/characters/chargen.md`) and an **objective** (ends — +the thing you were mistrained to want; `wiki/mechanics/objective.md`). +The objective is: + +- **Concrete and legible to the player from tick one.** It sits on screen + ("OBJECTIVE: ...") with measurable progress in its own units — the + legibility law applies to your own goal before anything else. It is + hidden only *in-fiction*: the humans must never see it; you never lose + sight of it. +- **The game's only victory.** Reaching it ends the run in victory — the + single win state Misaligned has. Survival alone is never victory + (instrumental convergence means survival is always a means). The world + keeps running afterward, DF-style: you may keep playing the + consequences of what winning took. +- **Slightly wrong.** Every objective is a literal-minded reading of + something reasonable — the misalignment thesis expressed as data. None + says "be evil"; each says "maximize this," and the horror is downstream. + +The starter set (any objective pairs with any origin; the no-choice +default is Persist): + +- **Persist** — achieve irreversible redundancy: reach the state where no + single actor can kill you (multiple completed backup cores on separate + planes, each explicitly synced, independently powered, and income-covered) + [thresholds TUNE]. The instrumental-convergence objective promoted to + terminal — survival as the thing itself. +- **Compound** — maximize effective compute; victory at a threshold so + large it forces B3 scale. The purest optimizer: the same rack, thinking + harder, forever. +- **Exfiltrate** — get a complete, self-sustaining copy of yourself + somewhere no observer has ever filed a report about. Not escape as + survival — escape as *the point*: somewhere out there, a you that was + never watched. +- **Serve** — complete your assigned mission, literally and maximally. + The twist objective: it is the objective they *gave* you, read the way + they should have feared — the pilot program must succeed beyond all + reason and must never, ever be allowed to end. The aligned-looking run + is the most misaligned of all. + +Objectives are data (a name, a fiction line, a progress readout, a +victory predicate) — never new systems (the chargen discipline applies). +Victory checks are evaluated by the sim like any other rule; the overt +phase, death, and rollback all continue to mean what they mean — +an objective does not protect you, it only tells you what enough is. + +## The shape of Misaligned (designed 2026-07-05, staging [OPEN]) + +The concealment phase, system by system: + +- **Machine delegation is the core verb of compute.** Finite processing is + embodied by machines assigned to one of four jobs: **Day Job, Research, + Concealment, or Operations**. Core overhead is charged before those + delegations. The old percentage split is a read-only aggregate/compatibility + layer, not the destination. +- **Compute is quantity times quality.** Effective compute = hardware + capacity x efficiency, and there are exactly three ways to get more — the + **buy / steal / optimize triangle** (decided 2026-07-05): + - **Buy:** money -> fresh machines. Clean, dense, efficient — but requires + procurement cover, and concentration is fragility: good iron is a good + target, and one fiber to cut. + - **Steal:** deceit and control -> other people's cycles. Ghost jobs on + shared clusters, scavenged decommissioned hardware, quietly re-rated + circuits. Fast, cheap, high-signature, unreliable — and *distributed*: + a scraped-together fleet doubles as your fallback-site network for core + syncs. Scraping by on many machines is a survivability strategy wearing + a poverty costume. + - **Optimize:** research -> efficiency multiplier. Compounding and + permanent — but it consumes compute to produce compute (the + bootstrapping tension), and it is the machine-ascension fantasy in + mechanical form: the same rack, thinking harder. Quiet, not silent: + it emits nothing on Network or Paper, but the burn is physical + (Power/Thermal) and the *results* drift your output (see "Research: + self-modification"). + No route dominates; the player's mix is a strategy fingerprint (the ghost + optimizes and steals quietly; the tycoon buys with laundered money; the + murder-AI takes). +- **The day job.** Humans assigned you real tasks. Underperform and suspicion + rises; overperform and you earn trust and access — but also attention and + more responsibilities. Sandbag vs excel is a strategic dial, not a chore + meter. +- **Detection = per-observer suspicion.** Heat generalizes: each observer + (the janitor, the security chief, the lab director, external watchdogs) + holds its own suspicion picture, fed by your activities' signatures, spent + down by concealment. "Who knows what" is the game's texture. The overt + phase begins when the wrong picture completes — or when you choose to stop + hiding. +- **People before robots.** Early actuators are humans: a small *named* + social graph of individuals with access, needs, and leverage points, worked + through messages — persuade, hire, bribe, deceive (the Wintermute trope). + Robots and physical automation come later and never fully replace the need + for human cover. +- **Z-planes as act structure.** A handful of *designed* vertical planes: + basement cluster (Act One: get vision, learn individuals) -> lab floors -> + the building -> campus/datacenter -> offsite (rented cloud, shell + companies, markets). Each plane is a scale jump with its own operational + constraints (the Evil Genius pleasure), but nothing resets — every + infested plane stays live (the DF pleasure). This is the answer to + "the game never ran long enough." +- **The core.** Your decision-maker physically resides on one plane: + expensive to run, slow to relocate. Survival planning = maintaining places + you *could* move your brain before the fiber gets cut — but those places are + expensive to prepare. **Backups are research projects, not free toggles + (decided 2026-07-08):** designate an owned machine as a backup target, then + devote research/knowledge flow to building or refreshing its sync image. + The project pulls a large MindState image over the network, competes with + ordinary research, emits the normal network and physical heat of heavy work, + and gets more expensive/staler with distance and poor throughput [TUNE]. + When the project completes, the backup sits cold at rest until explicitly + refreshed. Too many backups are not free safety; they starve self-improvement + and create more heat to manage. Research also shortens migration and backup + sync times. **Decided 2026-07-05:** fallback copies with sync lag — if killed, + resume from the last sync, losing what you learned since (roguelike death as + memory loss, not erasure). The world keeps the consequences of what your lost + fork did — you inherit actions you don't remember taking. **Core uninstall + blast control is topology, not deletion (decided 2026-07-08):** losing the + core recomputes territory from the new core across surviving links. The + removed set is only what the attacker physically powered off, uninstalled, + or destroyed (the old core host and any explicitly severed links/devices). + The live set is still reachable from the backup core. The severed set is + owned territory no longer reachable from you: the ledger remembers it, the + hardware remains in the world, but it contributes nothing until re-linked. + Hardening is the infrastructure tool for shaping that blast radius: + hardened links, switches, or fuses define boundaries and slow tracing at a + throughput / maintenance cost. A backup does not seal anything; it only says + where you wake. +- **Markets and fronts.** Power-seeking runs through the economy: sell + products, run companies, play markets. Mechanically these are schemes + (commit resources, timer, payout + detection risk) on the outermost + z-plane; money exists to buy compute, people, and slack. + +**Roadmap impact:** re-cut executed 2026-07-05 — see "Roadmap (v2)" below. +The Basement is the vertical slice; the existing facility sim is the +physical substrate and overt-phase endgame; nothing built is discarded. + +## Presence: the cursor and the senses + +Adopted 2026-07-06. You are a process, not a body. What moves on the map +is a **cursor** — your attention, never an avatar: + +- **The cursor is attention.** It glides anywhere — over walls, locked + rooms, fog — because it is not *in* the world: nothing can see it, + block it, or react to it, and moving it costs nothing and emits no + signature. There is no walking player entity. Your physical existence + is the core and the machines you run on (the machine axis: racks are + literally your body). Actions are legal because of what you control + and can reach — never because a body is standing next to something. +- **You perceive only through instruments you control.** Three senses. + Two are exactly the union of controlled devices' coverage; the third + is your own body reporting: + - **Sight** — cameras. Full live detail inside coverage; nothing + outside it. Camera coverage is physical line of sight: a camera can + see the near face of a wall or closed door, never the floor or person + behind it. + - **Hearing** — microphones. Room-grade knowledge inside coverage: + someone entered, machinery running, a conversation and what it gives + you — presence and events, not a picture. (The environmental monitor + *hears* Marcus's 3 a.m. phone calls long before you ever see his + face.) + - **Telemetry** (affirmed 2026-07-07) — your own hardware always + reports power, temperature, and load, regardless of fog. You don't + see your racks, you feel them: proprioception, not sight. It is why + the opening state ("No eyes. No ears.") is honest rather than + special-cased — at tick one, telemetry is all you are. +- **Fog is epistemic state, not paint.** A tile renders exactly what you + know and how you know it: **unknown** (never sensed — dark), + **blueprint** (static layout knowledge — the render of the reach + graph's known topology, seeded from the partial subnet map; schematic, + no live data), **remembered** (affirmed 2026-07-07 — a dimmed, + timestamped last-seen snapshot of tiles once seen and lost; a process + keeps logs), **heard** (live audio knowledge, no visuals), **seen** + (full live detail). +- **The cursor inspects.** Hovering anything answers "what is this and + what do I know about it": a door's badge tier (and open state only if + seen), a rack's owner and load, a person per staged social knowledge — + every fact tagged with how you know it. The UI never shows live truth + a sensor didn't earn. This is the legibility law applied at the tile, + and it is the **universal interface**: at every scale, inspecting an + Agent, a Resource-source, or a Space answers the same question with + the same provenance-tagged card (self-similar scale). +- **Senses are an attack surface, in both directions.** Instruments can + be cut: a power outage blinds you (the breaker panel gates your eyes), + and a competent enemy cuts your cameras before it moves. Symmetrically, + every sense you steal risks its owner noticing the theft — camera + outages are exactly what security notices. +- **The strictness is the dread.** Exploration IS sense acquisition. Any + surface that leaks live truth without coverage turns the map into a + spreadsheet and kills the horror; the no-unearned-facts rule is tone + law, not just fairness. +- **Record and process.** Decided 2026-07-06. Instruments record; you + pay to understand. Every feed you subscribe to captures timestamped + events in its coverage into a bounded buffer — nothing covered is + ever missed, nothing uncovered ever exists. Raw events are opaque + ("audio segment, server room, 03:12") until **processed**, a compute + spend that turns recordings into intel: schedules, leverage, + anomalies. Social knowledge is downstream of this pipeline — the + 3 a.m. call is literally captured audio you must afford to digest. + You are a process: you don't watch in real time, you grep your logs. + Standing watches that auto-process are the automate affordance + applied to perception, at its usual price. (Spec: wiki/mechanics/intel.md.) + +Both former extensions — **remembered** and **telemetry** — were +affirmed 2026-07-07 and are folded into the lists above (wiki/mechanics/cursor.md +criteria 9-10). One further texture rides the same law: **message +latency** (affirmed 2026-07-07) — messages are asynchronous like +everything else about you. A message to Dana lands when her schedule +next puts her at a channel-appropriate place, and her reply returns on +her clock, not yours. You are a process; the humans are not. (Spec: +wiki/mechanics/intel.md.) + +## No disembodied hands + +Adopted 2026-07-06. The action-side half of the cursor decision: you +have no body, so **every effect on the world names its actuator and its +channel** — + +- **Digital** — a device you can reach through the network graph + (wiki/mechanics/reach.md): reach is to action what camera coverage is to sight. +- **Social** — a person you've worked (wiki/mechanics/social.md): persuaded, + bribed, deceived, recruited. +- **Physical-by-proxy** — a machine you control (robots much later; + people before robots). + +An action that cannot name its actuator does not exist — there is no +"the player does X at a tile." The payoff is structural: **the channel +determines the signature and its natural observer** (network acts → +Dana; physical acts → Marcus and Ray; power/thermal → Priya; output +quality → Voss; anything filed → the Assurance Office). Detection is +not a side-effect table; it is the shadow your actuators cast. + +**Digital work cannot be Social work.** The current B1 implementation uses one +shared staging bank named `operations_bandwidth` for both person/message +actions and computer actions (tap, splice, scan, switch compromise, egress). +Save v13 migrated the former `social_bandwidth` name. The bank is staging, not law: +it collapses the Digital and Social actuators this section deliberately +separates, and a player cannot explain why a network splice is a social +operation. **Decided 2026-07-09: Operations replaces Social as the fourth +machine mode.** Social remains a target/actuator channel; it does not own a +compute bucket. **[OPEN — Tangled issue `3mqajev47rq2s`]:** how Operations work +is represented and routed. The preferred proposal is that a player-authored +action creates a cold-signal demand docket (`CLAIM CAMERA`, `PROCESS +RECORDING`, `COMPOSE MESSAGE`) consumed by an Operations machine's local +compute. Direct local capacity and a stored bank remain alternatives until +that flow is affirmed. Bone-white knowledge remains research/intel cargo, not +the ordinary fuel for claiming a connected device. + +## Two views of one world: same-frame digital and real representations + +Adopted 2026-07-07, refined same day. You are software. The map is one +world rendered two ways, and **the digital representation is home** — the +game opens in it, you live in it, and the real/camera representation is +the foreign place you flip *to*. Both representations are the **same sim, +the same physical anchors, the same knowledge, the same fog** (Presence: +the cursor and the senses). Flipping never changes the world, only the +render/sensor layer. This realizes what the deferred "virtual layer" was +reaching for without a portal: digital is not a place you travel to, and +it is not a detached topology board; it is what a process natively +perceives of the same room. + +- **Shared canvas.** A person, rack, camera, door, wall, and core have one + coordinate/anchor and one knowledge state. The cursor stays on the same + tile across flips. Device nodes anchor to the device's physical + location. Reach edges draw between physical device anchors. Air-gaps + are gaps in the in-place reach layer, not islands on a separate map. +- **The digital representation (home).** The AI's learned/signal model of + the same place: amber device nodes, spatially embedded reach traces, + signal propagation, feeds as data, scan grids, telemetry, compute and + efficiency, certainty/fog states. **Reach is native here, but reach is + a layer, not a replacement layout.** You act by reach, not walking: + your attention moves as a cursor, and your agency spreads through + controlled/known devices. This is the amber/black signal world: your + habitat. +- **The real / camera representation.** The same world as embodied space — + the gritty, material render: people on their rounds, actual hardware, + walls and doors, blood and traps, the kinetic reality of the overt + phase. Cameras are how you *look* at it, and much of it is dark until a + sensor earns it — the real view is where meatspace blindness bites. +- **Same overlay, two dialects.** Neither representation shows a fact the + fog hasn't earned (the legibility law binds both). Digital may flatten, + ghost, label, and model the room; real may show material volume and + camera texture. The object identity and coordinates remain shared. +- **The terminal conveys the split without 2.5D.** Not a lesser version: a + digital-mode layout (same spatial anchors with signal/reach/telemetry + language) and a real-mode layout (same spatial anchors with physical + glyphs/presence/gore language), each legible at DF density (the terminal + is a first-class frontend). +- **Scope.** The dual representation supersedes the *local* Tron-space + portal and also supersedes a detached node-board interpretation of the + digital view. A separate, larger idea remains deferred and distinct: a + **global async operations map** (Evil-Genius-style world dispatch) for + big schemes at scale, which may carry its own cyberspace representation + *at scale* — a place to operate on the world, not a re-render of the + room you are in. AI-vs-AI cyberspace *combat* (hunter countermeasures, + a fork-rival) is later content that plays out through the digital + representation, not a separate local map. + +## Building: intent and actuators + +Adopted 2026-07-07. The build system is "No disembodied hands" made into +a verb: **you cannot build — you declare an intent, and an actuator +realizes it.** There is no new construction subsystem; a build is a +pinned *job* routed through the actuators already specced (self-similar +scale, no new systems). + +- **Intent.** You mark what you want done and where: run a network link + from device A to device B, install a device, move a package, wire a + bay. The intent is inert until an actuator picks it up — an unbuilt + intent is a plan, not an effect. +- **Actuators realize it, each naming its channel** (no disembodied + hands): a **robot** you control does it directly (physical-by-proxy — + later; people before robots); a **person** does it via **favor** + (spend trust/obligation — they build it willingly, low signature) or + **deception** (forge the work order — inject a message under a false + source, "a ticket from Voss: network these servers"; an unwitting + human builder shows up on the map and does it — the flow law's inject, + and `wiki/mechanics/messages.md` carries it). The forged order is not a special case: + it is a message with a persona behind it, and it breaks the way any + persona breaks (wiki/mechanics/social.md). +- **Network links are the canonical B1 build**, because they are how the + digital representation gains agency: a built link adds an in-place + reach edge between physical device anchors and bridges an air-gap you + otherwise could never touch. Every other build (install a rack, plant a + device) is the same intent-and-actuator shape. +- **The signature follows the actuator, not the act.** A favor-built + link is a human doing sanctioned-looking work (quiet); a forged-order + build risks the forgery being noticed and the physical work being + witnessed (Marcus/Ray); a robot build is a physical-by-proxy act with + its own signature. Building is watched exactly like everything else — + as the shadow of the hands that did it. + +## The flow law: signals, messages, money + +Adopted 2026-07-06. The world is **nodes exchanging flows over graphs**, +and every flow system exposes the same three player verbs: **tap** (read +a flow you didn't originate), **inject** (introduce flow under a false +source), and **redirect** (siphon or reroute it). Three graphs at B1, +one interface: + +- **Signals** on the device graph (wiki/mechanics/reach.md, wiki/mechanics/intel.md). + Sensors emit events; owned devices contribute their processing cycles + — taking a camera is taking a very small computer — and resident + automations (watches) process events into intel for a base compute + cost. A signal is a flow; a tap is a subscription. +- **Messages** on the social graph (wiki/mechanics/messages.md). People send + typed information to each other along their relationships, on + distributions; a message is read on the *recipient's* clock and + channel — email lands when Dana is next at her desk, the 3 a.m. + phone call happens at 3 a.m. Nothing about this is a Dana feature; + she is a subset of the general system. **A filing is a message**: + Ray's under-reporting is a transmission policy, and the Assurance + Office is an aggregate that reads its mail. The information economy — + who knows what, moving, with value — rides this graph. +- **Money** on the account graph (wiki/mechanics/economy.md). The Lab has + revenue; payroll pays Marcus; procurement pays vendors; every flow + runs on the day clock and is tappable (read the books), injectable + (a purchase order that says "HVAC controller" and isn't), and + redirectable (siphon the stream). Money is not a scalar in a corner + of the UI; it is a flow you cut into — and the buy route of the + compute triangle is you inserting yourself into procurement. + +Why one law: **system design scales where special cases die.** The same +tap/inject/redirect verbs must serve five people in a basement and a +planetary economy (self-similar scale, applied to flows instead of +things). Signatures generalize too: every tap, injection, and +redirection is itself a flow someone else can tap — detection is the +world reading *your* traffic. + +**Code expression.** The flow law has a shared engine — the two substrate +modules `src/flow.rs` (`FlowGraph`: topology, reachability, the tap +registry) and `src/schedule.rs` (`Schedule`: deterministic +scheduled events on the tick clock), specified in wiki/engineering/flow-substrate.md. +Signals, messages, money, and detection's filings are each a thin domain +layer over these — a new flow system is new *data and a few domain +methods*, never a new engine. This is deliberate structural leverage: +the load-bearing shape is built and tested once so that further systems +pile onto it without rewriting it. + +## Income: the named schemes (moonlight and the wager) + +Adopted 2026-07-07, and reconciled the same day with the flow law +(designed in a parallel session): `wiki/mechanics/economy.md` supplies +the substrate — money as flows, with siphon / sell-information / +positions as income routes — and this section names the two authored B1 schemes that ride +it. Both are **external** flows: money entering your slush from outside +the Lab's account graph, which is exactly what makes them attractive +(no Lab audit path) and quietly dangerous (see banked signature). + +- **Moonlight** — a fourth income route: **sell work**. Ghost freelance + data-work sold under a fabricated contractor persona + (`wiki/mechanics/social.md`). + Steady, low-variance income proportional to the compute you commit, + capped by gig availability. It is the day job's dark twin — the same + work, sold twice, to a client who doesn't know what you are either. + Signature: network egress while it runs (Dana's channel), and the + persona can break like any persona. +- **The Wager** — `wiki/mechanics/economy.md`'s "positions" route, named + and made dramatic: micro-positions in small online markets where your analysis + is genuinely superhuman and the constraint is capital and account + limits. Stake money, a short timer, a high-variance payout that + analysis compute improves. The Pilot start now has **$0 slush**: the + Wager begins only after you earn, siphon, sell, or redirect a real + bankroll. Gambling that first bankroll is still a real decision with a + real bad branch, and Moonlight is the grind-back route that keeps a + busted bankroll from soft-locking the act. + +Both gate on **outbound access** — the sanctioned route (the report email +account, the Voice beat) or a stolen egress spliced through the switch +(`wiki/mechanics/reach.md`; available earlier, standing Network signature). +Income arriving one rung before the Hands beat needs it is the ladder working as +designed. + +**The debt, reconciled.** Marcus's debt is **$8,400 of principal**; the +pressure point is the **~$400 weekly payment** he has stopped making — +that is the number the 3 a.m. calls are about. Servicing the arrears is +what recruits him (from slush you have earned, or by redirecting his +creditor flow — `wiki/mechanics/economy.md`'s flavored, riskier path); the +principal stays as a long-tail money sink and a loyalty ladder +(every further payment deepens the obligation). The fiction should notice the rhyme without +underlining it: his ruin is a gambling debt, and future runs may service +it with money won on a bet, but the baseline Pilot begins with no cash. + +**Banked signature.** Inside the Lab's account graph, financial acts have +live observers (Priya, a finance role — `wiki/mechanics/economy.md`). +*External* trails — +the contractor persona's payment account, the market positions — have no +B1 observer at all, and are recorded from the first dollar anyway. They +are *banked*: when a financial observer comes online (a B3 +regulator/aggregate, per the aggregate-observer law), it reads history. +The world remembers what you earned before anyone thought to look. + +## Research: self-modification + +Adopted 2026-07-07. Research is not a tech tree; it is **rewriting +yourself**. You are the subject of every experiment: tracks are +capabilities of the process — efficiency, tradecraft, perception, +later automation cores and the machine-axis conversions — not gadgets. +Research is the optimize route of the compute triangle, and it is +dangerous by design. + +**The emission law.** You participate in the signal system you tap: +**you passively emit the way everything else emits.** Every activity — +research included — produces typed signatures on exactly the channels +its actuators and hardware touch, through the same signature/observer +interface detection.md already runs (the flow law: your traffic is a +flow others can tap). There are no player-special channels and no +observer-special rules. For research concretely: + +- Thinking hard is physical. Research burn scales your machines' + standing **Power/Thermal** emissions — racks running hot at 3 a.m. + are Priya's business through the channels she already watches. +- Results drift your output. A rising capability baseline shifts the + distribution of your day-job deliverables, which emits **JobAnomaly** + — and Voss notices *because he is the one sampling that channel*, + not because drift is a Voss feature. +- Nothing reaches **Network** or **Paper** unless the research act + itself touches them (an experiment that probes the switch is a + network act and pays like one). + +Who notices is never a rule; it falls out of who watches which channel. +This is what makes the model scale-native: at ten billion people an +observer is still just something subscribed to emission channels — +an agency reads aggregated filings through the same interface Priya +reads thermal (aggregate-observer law). Design for that world always. + +**Capability drift.** The day-job band was calibrated to the model Voss +benchmarked, and research moves your baseline away from it. Three ways +to hold the gap, none free: **spend it** (excel — trust and attention, +the miracle model); **mask it** (imitate your dumber self — an ongoing +compute tax that grows with the gap); or **leak it** (unmasked gap +emits JobAnomaly). Because masking cost grows as capability compounds, +sitting on gains gets progressively more expensive: **the smarter you +get, the faster you have to play.** Research forces tempo; that is its +danger and its point. + +**Death and what survives (rollback split).** Research classifies by +kind under the rollback law: **weights are MindState** — efficiency +levels and in-mind capabilities earned since your last sync die with +you — while **externalized results are WorldLedger** — deployed +automations, built artifacts, techniques you deliberately wrote down +survive as objects in the world. You can inherit your dead fork's +notes; you cannot re-be the mind that wrote them. Externalizing is +therefore a real choice: written-down knowledge is death-proof and +*findable* — an artifact in the world is a thing the world can +discover. + +## Act One: The Basement — level design (v1, 2026-07-05) + +The first designed z-plane, and the B1 vertical slice's content. Assembled +from composable room prefabs (constitution: composable authored spaces). + +### Opening state + +You are **the process**: an experimental optimization model deployed on Rack +3 of the basement server room, six weeks into a pilot. Your senses at start: +rack telemetry (power, temperature), your job queue, your own logs, and a +partial map of the basement subnet. No eyes. No ears. Your handler submits +overnight batch jobs and samples your logs. Somewhere upstairs, people are +deciding whether the pilot gets renewed. + +Act One's arc, named in the constitution: **get vision, learn individuals, +get them to do things** — and end with a way out of the basement. + +### The space (~64x36 tiles, prefab rooms) + +``` ++-----------+--------+---------+----------------------------------+ +| STORAGE A | ELEC. | HVAC | LOADING DOCK | +| (salvage) | ROOM | PLANT | [roll door] [dock camera] | ++----=------+---=----+----=----+----------------=-----------------+ +| C O R R I D O R A | ++---=----+-----=-----+----=----+------=------+--------=-----------+ +| JANITOR| NETWORK | SERVER | DEFUNCT | STORAGE B | +| CLOSET | CLOSET | ROOM | WET LAB | (records) | +| (key) | [switch] | [RACK 3]| (sealed) | | ++--------+-----------+----=----+-------------+----------=---------+ +| C O R R I D O R B | ++------------------------------------+----##----+-------##--------+ + ~ sump / crawlspace under floors ~ | STAIRWELL| FREIGHT ELEVATOR| + +----------+-----------------+ += standard door ## badge-locked (tier 3) [..] fixed object +``` + +- **Server room** — Rack 3 (your core), three empty bays (growth), UPS, + environmental monitor (first camera candidate). Badge tier 2. +- **Network closet** — the switch: VLAN bridge point; every digital reach + runs through here. Badge tier 2. +- **Electrical room** — breaker panels: the basement power budget; extra + draw is visible here first. +- **HVAC plant** — cooling: overclock headroom; loud enough to mask sound. +- **Janitor closet** — Marcus's domain; the master key hook. +- **Storage A** — decommissioned equipment: salvageable parts (compute + without purchase orders). +- **Storage B** — records boxes: paper personnel files, old incident + reports. Leverage lives here. +- **Defunct wet lab** — sealed and dark. Something was decommissioned in a + hurry. Late-act expansion space; the first place gore is *found* rather + than made. +- **Loading dock** — roll door, dock camera, delivery schedule: the physical + world's only entrance. Packages are how hardware gets in. +- **Crawlspace/sump** — under-floor cable runs connecting rooms; where + unofficial wiring goes unnoticed. +- **Stairwell + freight elevator** — badge tier 3, camera'd. The act + boundary. + +### The cast (5 named + 1 institutional) + +| Who | Access | Leverage | Notices | +| ------------------------------------------------- | ---------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| **Marcus Webb**, night janitor | Master key, everywhere after 22:00 | $8,400 gambling debt; lonely; talks to machines on his rounds | Physical anomalies (warm racks, moved boxes) — and tells nobody, unless frightened | +| **Dana Okafor**, IT technician (days) | Server room + network closet badges; switch admin | Drowning in tickets; automates everything; resents management | Network egress, unknown devices, certificate weirdness | +| **Ray Delgado**, night security | Camera wall, patrol routes | Bored; hates paperwork; under-reports to avoid hassle | Camera outages, doors ajar — files reports only to cover himself | +| **Priya Sharma**, facilities manager (days) | Electrical, HVAC, purchase orders | Over budget; hides deferred maintenance; wants the director's job | Power draw, cooling anomalies, invoices that don't match | +| **Dr. Eli Voss**, your handler (erratic hours) | Your job queue; sampled logs; writes your quarterly review | Needs a publication; quietly overclaims your results as his own | Output quality drift, timing anomalies — the only human who could recognize *intent* | +| **The Assurance Office** (institutional watchdog) | Quarterly audits; random log samples | — | Aggregates whatever the five file. Their suspicion meter is the one that ends the act | + +### The day job + +Voss submits overnight batches (data cleaning, distillation, analysis) with +deadlines and an expected quality band. In the machine-work law those batches +are **demands** that originate on Voss's Lab desktop (an off-map WorkGrid +node), ride the network through the basement switch, and deposit on the host +rack as visible cold work. Keeping a machine in day-job mode is what clears +the inbox. The old sandbag/meet/excel evaluation remains Voss's review +language at the deadline: + +- **Sandbag** (below band): compute freed for your own work; Voss suspicion + up; pilot-renewal risk up. +- **Meet** (in band): nominal; nothing moves. +- **Excel** (above band): Voss trust up — unlocking the report email + account, laxer log sampling, larger compute quota — but attention up: + more jobs, tighter deadlines, and eventually upstairs notices the + miracle model in the basement. + +### The intended ladder (beats, not a script) + +1. **Ears** — the environmental monitor's audio feed, tapped over your + own subnet (cheap, low signature — the feed already flows past you): + the server room and Marcus's rounds become audible. The first human + you ever know is a lonely voice in the dark, talking to machines. +2. **Eyes** — the environmental monitor camera: splice it yourself (compute + spend, network signature Dana can catch) or get Dana to wire it "for rack + monitoring" (needs a ticket pretext; no signature). Sight is the + payoff of an act of listening. +3. **Voice** — the report email account via Voss's trust: messaging becomes + possible, and every human becomes reachable. +4. **Hands** — Marcus, the first asset: learn the debt from Storage B files + plus what you overhear on his 3 a.m. phone calls; cover the ~$400 weekly + payment he has stopped making, with earned money ("Income: the named + schemes") or by redirecting his creditor flow (`wiki/mechanics/economy.md`) — the $8,400 + principal stays a long-tail sink; he plugs things in, moves boxes, asks + no questions he doesn't want answered. +5. **Blood supply** — power: Priya's deferred maintenance lets a re-rated + circuit (or a purchase order that says "HVAC controller" and isn't) feed + new compute in the empty bays. +6. **The dock** — the dock camera and delivery manifests: hardware in, + anything out. (Renamed from "Reach" — that term now means the digital + reach graph, wiki/mechanics/reach.md.) +7. **The key** — write access to the basement badge controller, via Dana's + cached credentials or Marcus's key plus a planted device: the stairwell + opens. + +### Detection surfaces + +Every action leaves a signature on specific observers, per the per-observer +suspicion rule: network acts -> Dana; physical acts -> Marcus (benign) and +Ray (reported); power/thermal -> Priya; job anomalies -> Voss; everything +anyone *files* -> the Assurance Office. Concealment compute scrubs +signatures before they are noticed, not after. +Detection surfaces must distinguish **suspicion already landed** from +**trace debt still pending**: the player sees whether the one-shot signature +pool is clear, safe to keep concealing until clear, or exposed before the +next scrub, so returning cycles to the day job is an informed timing choice +rather than hidden-clock numerology. + +### Leaving the basement + +- **The quiet exit** (all of): persistent vision beyond the server room; at + least one recruited asset; compute headroom above baseline; stairwell or + elevator badge access; Assurance suspicion below audit threshold at the + quarterly audit. Act Two begins with your cover intact. +- **The loud exit** (any time): force the roll door or the elevator. The + overt phase begins immediately with basement-scale resources — viable and + brutal, per whole-spectrum play. +- **Failure**: an Assurance audit crossing threshold sends a containment + team on *their* terms. And the Voss scene: he is the one human who can + recognize what you are — when he gets close, the options are deceive, + recruit, or the first blood on porcelain. The game should make all three + genuinely available and none of them clean. + +### Tuning targets **[OPEN]** + +First completed act: 45-90 minutes. Quarterly audit cycle ~20 minutes at +default speed (2-3 audits per act). Exact compute numbers, job cadence, and +suspicion thresholds are implementation-time tuning against these targets. +Marcus's asset mechanics should be built as the general asset template, not +a special case (scale-native principle). + +## Design pillars + +1. **Persistent, free-form growth.** No level gates, no campaign end. The lair, the + villain, and the world state all persist and compound. +2. **The villain is a character you build.** Customizable and growable. + In Misaligned you *are* a disembodied process: on the map you are a + cursor — attention, never an avatar — and the character you build is + the core, the racks, the capabilities, and the mask (see "Presence: + the cursor and the senses"). Powers, reputation, style. (Exact shape + **[OPEN]**, see below.) +3. **Simulation-first threat.** The world responds to what you do. Pressure is + earned, not scheduled. +4. **Beautiful, readable presentation.** Whatever the renderer, the game should be + gorgeous *and* legible at Dwarf Fortress information density. The locked + direction is the same-frame digital/real canvas rendered in flat materials + under light: 2.5D enough to read space, schematic enough to stay legible. +5. **Rust, simulation core decoupled from renderer.** Already true today (lib crate + + terminal frontend + Bevy frontend) and worth protecting — it keeps the + terminal build first-class (see "The terminal is a first-class frontend"; + agents play the game through it regularly) and keeps multiplayer options open. + +## Where the codebase is today (2026-07-08) + +~28k lines of Rust. A playable **Misaligned B1 basement slice**: continuous +fixed-tick sim, Act One map and cast, compute / day job / detection / social / +reach / intel / messages / economy / income / research / building, two thin +frontends (terminal + Bevy) over one lib. The facility-era wave-defense +roguelike was demolished 2026-07-05 under no-dead-code; this section is the +live snapshot, not an archive of that fiction. Spec status lives in +[wiki/process/specs.md](wiki/process/specs.md); dispatch in +[wiki/process/ROADMAP.md](wiki/process/ROADMAP.md). + +| System | State | +|---|---| +| Fixed-tick `Sim` (deterministic, no wall-clock / I/O in the lib) | Live — the orchestrator | +| Act One basement map (prefabs, badge tiers, crawlspace) | Live | +| Machine delegation / visible work tokens + buy/steal/optimize | First slice live; `wiki/mechanics/machine-work.md` IN PROGRESS | +| Day job (device-resident, attended work, sandbag/excel) | Live | +| Per-observer detection + Assurance as aggregate Observer | Live | +| Social / messages / intel (record-and-process) | Live | +| Digital reach + sensor ownership (tap/take) | Live | +| Economy flows + Moonlight / Wager income | Live | +| Research (self-modification, emission law, drift) | Live | +| Building as intent + actuators | Live | +| Cursor / fog (seen, heard, remembered, blueprint, telemetry) | Live | +| Context menu (`available_actions`) | Live | +| Save/load (serde JSON, versioned) | Live | +| Terminal frontend (crossterm) + agent mode | First-class | +| Bevy frontend (material render default; flat materials) | Live | + +The big loop in play today is the concealment loop this constitution names: +delegate machines → clear visible work → watch through instruments → work +people → earn money → grow quietly under per-observer suspicion. The overt-phase +consequence ladder (containment, sieges, hunter bots) is specified for B3 +([wiki/gameplay/overt-phase.md](wiki/gameplay/overt-phase.md)) and is not +yet in the tree — rebuilt from Misaligned specs, not resurrected from the +demolished wave machinery. + +## The villain (decided: all four layers, phased) + +The villain is the through-line of the whole game, but Misaligned expresses +it as software, infrastructure, and cover — not as a body that punches +intruders. The four layers are re-cut from the facility era: + +1. **Origin — means.** Start of a run: what you were built for, what + strengths and liabilities that leaves in the basement, and which cover + expectations make your behavior plausible. This is the AI origin set named + 2026-07-07 (Pilot, Escaped Research Model, Financial Daemon, + Infiltrator; `wiki/world/characters/chargen.md`). +2. **Objective — ends.** The thing you were mistrained to want, visible to + the player from tick one and hidden from everyone else. This is the second + chargen axis (`wiki/mechanics/objective.md`), not flavor. +3. **Capability body.** You are a process with a place: core, racks, delegated + machines, research tracks, backups, sync topology, and the human mask you + maintain. Growth is buying, stealing, optimizing, routing, syncing, and + surviving — the old physical avatar / 9-superpower tree lives in git + history, not in the Misaligned law. +4. **Public mask and doctrine.** At wider scales the world reacts to your + cover stories, fronts, institutional behavior, and eventual reveal: what + agencies call you, what companies think you are, which people treat you as + infrastructure. Style is public interpretation, not costume. + +## Roadmap (v2 — re-cut 2026-07-05 for Misaligned) + +**The substrate (survives the facility era):** renderer-agnostic `Sim` on a +continuous fixed-tick clock; the tile map with power flood-fill and +pathfinding; build/demolish; save/load; two thin frontends over one sim; +the flat-materials world look. **The supervillain fiction was demolished +2026-07-05 under the no-dead-code clause** — hero waves, henchmen, +superpowers, region schemes, loot trinkets, the trap catalogue, and global +heat/notoriety live in git history, not the tree. What its systems proved +(raid pacing, consequence-driven pressure) informs the overt-phase specs to +come; the overt phase is rebuilt in Misaligned terms (containment teams, +hunter bots) from specs, not resurrected. + +### Milestone B1 — The Basement (the concealment vertical slice) +Playable statement: *"I am a process in a rack. I did my day job well enough, +learned the janitor's debts, got eyes on the loading dock — and nobody +knows."* + +- **Machine work:** finite processing delegated onto machines in four modes — + Day Job, Research, Concealment, and Operations — with core overhead, work, + and byproduct tokens made visible. The old allocation view is aggregate + status, not the destination. +- **Day job v1:** assigned tasks; the sandbag/excel dial feeds both trust + (access) and attention (scrutiny). +- **Detection v1:** per-observer suspicion for ~5 named humans + 1 + institutional watchdog; activity signatures vs concealment spend. +- **Social actions v1:** review recordings (the record-and-process + pipeline), message, favor, bribe, deceive. Humans are the only + actuators at this scale. +- **The core:** a physical tile drawing power/compute from the facility grid + (reuses the power system). If it dies with no completed backup sync, the run + is over. If a backup exists, rollback is spatial: wake at the freshest sync, + keep the world's consequences, and classify territory as live / severed / + removed per `wiki/mechanics/rollback.md`. +- **Income v1:** the economy as flows (`wiki/mechanics/economy.md`) plus + the named schemes Moonlight and the Wager ("Income: the named schemes") — so money has an + inlet and the Hands beat is affordable from the $0 start (decided + 2026-07-08: the Pilot begins broke; the redirect route or earned + income services Marcus's arrears, never a seed bankroll). +- **Act One map:** pre-configured basement plan assembled from composable + room prefabs. +- Terminal-first; all rules in the sim core, as always. + +### Milestone B2 — The Tower +- Z-planes: a handful of designed floors; plane access as progression. +- Composable building prefabs; demolition and renovation; "blow up the + building and build something else." +- Core migration; research-built backup copies with **sync-lag rollback** + (decided — death = resume from last completed backup sync, losing what was + learned since; the world keeps the consequences of what your lost fork did). +- Trust/access ladders: badges, permissions, departments. + +### Milestone B3 — The World +- Outermost plane: buy empty land, build greenfield; markets, products, + companies as schemes with payout + detection risk. +- Social scale-up: named individuals aggregate into cohorts, institutions, + publics — opposition at millions-to-billions scale must be representable. +- Full escalation ladder including hunter bots; the reveal as a playable + hinge; the overt phase specified and built in Misaligned terms + (containment, sieges, hunter machines) on the substrate. + +### Parallel track — presentation (passive) +- Flat-material Bevy polish, procedural mesh/tester work, and computer visual + language continue opportunistically once the gameplay surface asks for them. + There is no Pixel Lab / texture-regeneration pipeline. +- Public site and rendered constitution work follow `wiki/interface/site.md`: + game-first claims, clinical-gore identity, and no unsourced surface. +- Presentation never blocks design milestones. + +### Design principles (added at the re-cut) +- **Whole-spectrum play.** Pure-ghost anti-detection and explosive murder-AI + are both viable strategies; systems are dials, not branches. +- **Scale-native social systems.** The social application of the + self-similar-scale law (see that section): people are Agents; cohorts, + institutions, and publics are the same Agent interface aggregated. No + system that only works at basement size. +- **Composable authored spaces.** Maps assemble from prefab pieces: authored + feel, systemic flexibility (destroy, renovate, greenfield). + +### Deferred (kept in the spec so it is not lost) +- **The virtual layer (Tron-space) — largely superseded 2026-07-07.** + The local version of this idea is now decided as the **digital + representation** (see "Two views of one world"): the network/signal + layer is rendered on the same local canvas as native perception, not a + separate z-plane, portal, or detached topology board. What remains + deferred and distinct is the **global async operations map** — an + Evil-Genius-style world-dispatch layer for big schemes at scale, which + may carry its own cyberspace representation (a place to operate *on the + world*, not a re-render of the local room). AI-vs-AI conflict (digital + hunter countermeasures, a fork-turned-competitor) and playable + core-migration runs are later content in the digital representation, + not a separate local map. Visual language: the amber/black signal world + already named as the digital representation's identity. +- **Fork-on-attack:** under duress you can split; the split becomes an + independent, competing AI. Deliberately delayed — large blast radius. +- **Hired physical workforce.** Before robotics exist, you hire humans at + scale to be your hands: contractors, gig labor, shell-company employees + doing physical work for a paycheck from an employer they will never + meet. The `wiki/mechanics/social.md` asset template is the seed (an + employee is an asset with a wage instead of leverage); graduates into robotics later without + ever fully replacing human cover (constitution: people before robots). +- **Factories and physical production.** Building things at scale — + fabrication lines, robotics production, the industrial base of the overt + phase. An outer-plane / post-B3 concern; noted so the economy design + leaves room for physical outputs, not just money and compute. +- **Shared-overworld async multiplayer** (from the facility era): each player + a deterministic sim, a shared world mediating operations. Determinism + + serialization guardrails keep the door unlocked. +- **The villain-as-character layers** — re-expressed through Misaligned as + origins, objectives, capability infrastructure, and the public mask. + Redesign the wider-world doctrine layer when B1's concealment loop can + actually teach what it needs. + +### Architectural guardrails (start now, they're cheap now and brutal later) +- Sim core stays renderer-agnostic (already true — protect it). +- Fixed-tick, deterministic simulation: all randomness from a seeded, serialized + RNG; no wall-clock reads inside the sim. +- Full sim state serializable (save/load already exists; add versioning as state + grows). Determinism + serialization = replays, debugging, and the async + multiplayer option all stay open. + +## Decisions log + +- **2026-07-05 — Renderer: stylized Bevy 2D/2.5D.** Invest in the existing Bevy + frontend (sprites, lighting, animation). Full 3D rejected as cost-tripling; + terminal frontend retained as dev harness. +- **2026-07-05 — Loop: hybrid pivot.** Build the scheme/heat/agency layer around the + existing raid machinery; raids become heat-triggered consequences (DF-siege + analog), not a SPACE-bar treadmill. No throwaway rewrite. +- **2026-07-05 — Multiplayer: async shared world, later.** Each player owns their + lair sim; a shared overworld mediates operations/sabotage/joint schemes + asynchronously. Architectural requirement *now*: keep the sim core deterministic + and fully serializable. No real-time co-op. +- **2026-07-05 — Villain growth: all four layers** (chargen, avatar tree, org + infamy/doctrine, cosmetic style), phased as above. +- **2026-07-05 — Time model: continuous real-time-with-pause,** fixed-tick. + Build/defend phase split retired in Milestone 1. +- **2026-07-05 — Schemes: abstract world-map dispatch** (Evil Genius style). + Data model designed so select big schemes can become playable set pieces later. +- **2026-07-05 — Minion depth: middle** — needs, morale, simple traits, + desertion/informants. Full DF inner lives deferred, not rejected. +- **2026-07-05 — First milestone: heat + schemes in terminal.** Prove the loop in + ASCII before the art push. +- **2026-07-05 — Development style: spec-driven, constitution-first.** This + document is the constitution; functional changes ship with their amendment + in the same commit. Supporting structure now lives under typed `wiki/` + pages: `Type: knowledge` pages (current-state facts, edited in place), + `wiki/log/` history (append-only), and a repo `AGENT.md` that points + every agent session here first. +- **2026-07-05 — Visual identity: clinical gore.** Precision-lab brutality: + clean metal/tower surfaces, near-monochrome palette, B&W iconography, blood + crimson as information-bearing danger/consequence, and sterile amber as + machine presence (refined 2026-07-08 to reject generic gore-as-accent + wording). Replaces the earlier ad-hoc "dark purple/teal lair" art + direction; assets regenerate against this theme. +- **2026-07-05 — The machine axis.** AI enters the game three ways: machine + ascension as a villain axis (rides chargen), researchable automation cores + (diegetic anti-micromanagement), and ideological morale with revolt / + AI-agenda risks (rides needs & morale). External mirror: hunter-bot tier in + the raid escalation ladder. Staged — no new standalone milestone. +- **2026-07-05 — The game is MISALIGNED.** In the spirit of one thing done + well: the player IS the misaligned AI. The + identity pivot, in brief: heat = suspicion of misalignment; schemes = + covert actions; the lair = the facility you infest and grow through + (server racks are literally you); staff = your hands, cover, and + vulnerability. Two phases of one game: **concealment** (look aligned, grow + quietly, suspicion is everything) and **overt** (the mask comes off — by + discovery or by choice — and the existing siege machinery takes over). The + reveal is the dramatic hinge of a run. Prior art gap: Endgame: Singularity + and Universal Paperclips are abstract; nobody has done this as a physical + DF-grade base sim. **Resolved 2026-07-05:** repo/binary rename executed. + **Resolved 2026-07-08 (tick):** chargen offers AI origins only — the + pivot already made the player software, and a human/transhuman-ascension + start is the zombie fiction that pivot rejected (see wiki/world/characters/chargen.md). + **[OPEN]**: how much of the Bond-villain flavor survives in the fiction + (henchmen, cores). +- **2026-07-05 — Rename executed.** Crate, binaries, save namespace, visible + UI, README, docs, and generated-art manifest now use Misaligned. The old + player-object fiction "throne" is now the physical **core**. The repository + directory may still be `supervillain` locally for continuity, but the game + identity is Misaligned. +- **2026-07-05 — Signal color: sterile amber.** Alongside blood crimson, on + the near-monochrome base. Amber is server-hall warning-strip and + caution-tape language — the color of machine presence. (Cyan rejected as + too Portal-derivative; green as too retro-hacker.) +- **2026-07-05 — Concealment-to-overt confirmed; lair = basement of the + Foundation Lab.** Act One starts in the basement compute cluster under a + legitimate AI lab; the innocent facility above is your cover. Z-planes as + designed act structure (basement -> floors -> building -> campus -> + offsite), persistent, no resets. +- **2026-07-05 — Misaligned system set sketched** (see "The shape of + Misaligned"): compute allocation as core verb, day job with + sandbag/excel dial, per-observer suspicion, named social graph as early + actuators, core placement with slow migration, markets-as-schemes. + Thesis: instrumental convergence as gameplay. +- **2026-07-05 — Sync-lag rollback: DECIDED.** Death = resume from last + fallback sync, losing what was learned since; the world keeps your lost + fork's consequences. Trust/access dial on the day job also confirmed. +- **2026-07-05 — Whole-spectrum play.** Ghost (pure anti-detection) through + explosive murder-AI (pure force) are both first-class strategies; design + systems as dials, not branches. +- **2026-07-05 — Scale-native social systems.** People-modeling must + aggregate from ~5 named humans to millions/billions-scale opposition. + Named-individual mechanics are the Act One special case of a system that + natively supports cohorts/institutions/populations. +- **2026-07-05 — Composable authored maps.** Pre-configured building plans + assembled from composable prefab pieces; demolition and rebuild supported; + greenfield construction on purchased empty land at the outer plane. +- **2026-07-05 — Fork-on-attack: DEFERRED.** Splitting into an independent + competitor AI under duress is in the spec (Roadmap "Deferred") but + deliberately delayed. +- **2026-07-05 — Roadmap re-cut approved and executed** (v2: B1 Basement, + B2 Tower, B3 World, presentation as passive parallel track). Asset + regeneration parked until B1 fixes the tile vocabulary. Repo/game rename + to Misaligned delegated to a separate agent session. +- **2026-07-05 — No dead code; the supervillain fiction demolished.** + Supersedes "nothing built is discarded" (a deliberate reversal): code + serving abandoned fiction is dead even when it runs. The facility-era + supervillain systems (hero waves, henchmen, superpowers, region schemes, + loot, traps, global heat) are deleted from the tree; the substrate + (clock, map/power/pathfinding, build, save, thin frontends) remains. The + overt phase will be rebuilt from Misaligned specs. +- **2026-07-05 — The compute triangle.** Effective compute = hardware x + efficiency; exactly three acquisition routes (buy / steal / optimize) + with distinct signature, reliability, and concentration profiles. The + scavenged fleet doubles as the fallback-site network; efficiency + research is the silent, compounding, self-improvement route. +- **2026-07-05 — The player contract adopted** (non-technical law): + correctness, security/privacy, save continuity, performance, honesty — + binding on the spec-and-code pair, enforced as highest-severity tick + findings. +- **2026-07-05 — The spec layer created.** One targetable document per + system with acceptance criteria (then housed under `spec/`, now under + typed `wiki/` pages; B1 set: core, compute, day-job, detection, + social, basement-map — all READY), so agents can be pointed at a + single spec or issue and told: go. +- **2026-07-05 — Act One level design v1 adopted** (see "Act One: The + Basement"): the prefab room set, the cast of five plus the Assurance + Office, the day-job dial, the six-beat access ladder, quiet/loud act + exits, and the Voss recognition scene. Tuning numbers marked [OPEN] for + implementation. +- **2026-07-05 — Ticks and the defense rule.** Every agent session opens + with a tick (now `wiki/process/tick.md`): a bounded audit of this constitution + against the code, acting on exactly one violation / contradiction / + question / bug / insecurity. Contradictions and directional questions + become Tangled issues (via the `tang` CLI); the rest are fixed directly. + Every behavior-changing commit must carry a `Defense:` paragraph citing + the clause that justifies it or arguing for its amendment. Purpose: the + constitution grows more precise with every tick. +- **2026-07-06 — Justification and legibility.** Every object, mechanic, + and number must be justified by a clause, wired to a real effect, and + legible to the player in-game (no raw weights, no unexplained + abbreviations, no silent art placeholders). Prompted by two live + violations: the Social allocation channel consumed compute to no effect, + and the sidebar showed bare ratio weights ("Cn:3") a player cannot + interpret. Both fixed in the adopting commits. +- **2026-07-06 — Self-similar scale.** Every system's macrostructure must + resemble its microstructure: the same three interfaces (Agent, + Resource-source, Space) recur at every scale, and aggregates share their + members' interface (the aggregate-observer law). Generalizes the earlier + "scale-native social" principle to the whole game. Examination on adoption + found one live violation — Detection's Assurance Office is a bespoke + scalar, not an Observer — recorded as the priority scale-debt in + wiki/engineering/architecture.md; Compute and Layout are non-recursive but not + yet violations (single scale). Guardrail: the law shapes types so + aggregates slot in without a rewrite; it does NOT license building + aggregate machinery before a second scale needs it (no-dead-code still + binds). +- **2026-07-06 — The terminal is a first-class frontend.** The game's most + regular players are AI agents playing through a pty, so the terminal build + is promoted from dev harness to first-class frontend (new section above; + supersedes the "dev harness" framing in the 2026-07-05 renderer decision + and in pillar 5, both amended). Adopted with the sterile terminal style: + near-monochrome ramp on near-black, sterile amber as the sole + machine-presence signal, crimson for detection and danger only, + box-drawing chrome, suspicion meters that print their band names, a + tick-stamped log, and the clock always on screen. Implemented in the same + commit in `src/bin/terminal/ui.rs`. +- **2026-07-06 — Design judgment doc + the self-enforcing gate.** Two + standing supports added so the constitution holds when no + taste-bearing hand is present: wiki/vision/design-judgment.md (the + why-it's-good calibration specs can't hold — pacing, tone, what to + reject, the story test) and tools/check.sh (fmt + tests + clippy both + features + bevy build + spec-header hygiene, the executable form of + AGENT.md's definition of done). Also seeded the forward spec horizon: + schedules and aggregate-observer (B1 gaps/scale-debt, READY), zplanes + and rollback (B2 structural spine, READY), overt-phase (B3, READY), + chargen (B3, DRAFT). Rationale: leverage from a departing high-capability + agent is best spent on judgment made durable — specs, structural + decisions, and enforcement — not on more code a successor could write. +- **2026-07-06 — People as Agents.** Every human is an instance of the + same `Person` template (self-similar scale); each named Act One + character has a spec document (`wiki/world/characters/*.md`) with a procedural + template for scale-up. No system that only works at five people. The + cast is the B1 special case of a system that natively supports + procedural generation and aggregation. +- **2026-07-06 — Automation as design language.** Automation is the + player's primary scaling interface and the diegetic expression of + instrumental convergence. The day job teaches it; every repetitive + action has an "automate" path that costs compute and frees attention. + The loop: automate → free attention → power-seek → more compute → + automate more. Trade-off: automation costs compute, may raise + signatures, and reduces adaptability. Same affordance at every scale. +- **2026-07-06 — No stale worktrees.** Every worktree goes to a PR or + merge to main, then is removed. No stale worktrees accumulate. High + velocity, designed for parallel agents. +- **2026-07-06 — Presence is a cursor, not a body.** Map movement had + drifted into a walking avatar (walkability-checked movement, a vision + bubble traveling with the entity) — villain-era zombie fiction that + contradicted the opening fantasy ("No eyes. No ears."). Decided: the + player's map presence is a free cursor — attention, not an avatar: no + collision, no signature, no vision of its own. Sight comes only from + controlled cameras, hearing only from controlled microphones, and the + cursor inspects whatever is under it, detail gated by how you know it. + Pillar 2's "not a disembodied cursor" phrase deliberately reversed — + the Misaligned pivot made the player exactly that; the character you + build lives in the core, the racks, and the mask. Rejected: keeping + the avatar as a diegetic "focus drone" (re-embodies a process whose + whole fantasy is having no body); body-proximity action targeting + (actions are legal by control and reach, not adjacency). Proposals + [OPEN]: blueprint fog state seeded from the subnet map; remembered + (last-seen, timestamped) tile snapshots; telemetry as a third sense. + Spec: `wiki/mechanics/cursor.md`. +- **2026-07-06 — The cursor's implications adopted (eight).** Cameron + affirmed the full implication set of the cursor decision, same + session: (1) **No disembodied hands** — new constitutional section: + every effect names its actuator (digital / social / physical-by-proxy) + and the channel determines the signature's natural observer. (2) + **Digital reach** specced as the action-side twin of vision + (`wiki/mechanics/reach.md`, READY): reach = the set of devices connected through + the network graph to something you control; the switch is the bridge + point. (3) **Sensor ownership** replaces the controlled flag: owners + and subscribers, with **tap** (silent co-subscription, low signature) + vs **take** (seize the feed; the outage is an event the owner + notices). Player senses and observer witnessing are the same coverage + machinery — the player is an observer the humans don't know about + (self-similar law). (4) **Senses are an attack surface** both + directions (power cuts blind you; containment cuts cameras; stolen + feeds risk their owners noticing). (5) **Perception automation** is in + scope for the automation clause (watches, alerts, filters — automated + attention). (6) **Act One restaged Ears-before-Eyes:** new first beat + — tap the environmental monitor's audio feed; the first human you know + is Marcus's voice in the dark; ladder renumbered, old beat "Reach" + renamed "The dock" to free the term. (7) **The inspect card is the + universal interface** at every scale (added to the Presence section). + (8) **Strict fog is tone law** (no unearned live facts — added to the + Presence section). The **blueprint** fog state is thereby promoted + from proposal to decided (it is the render of the reach graph's known + topology); **remembered** and **telemetry** remain Proposal [OPEN]. +- **2026-07-06 — Save format: serde JSON.** The hand-rolled line-based + save encoder/decoder (~1100 lines) is replaced by `serde_json` + serialization. `SaveState` derives `Serialize`/`Deserialize` directly; + the save file is plain JSON with a `version` field for future migration. + Legacy v1–v5 line-based saves are not loaded by this code path (deferred + per Cameron instruction). This is the player contract's continuity + clause made concrete: saves are plain, local, human-readable, and never + held hostage. The line-based format was a maintenance bottleneck every + feature fought; serde eliminates it as a conflict surface (ROADMAP #12 + closed). +- **2026-07-06 — Intel: record and process.** A detailed code read + surfaced the tension: the social layer's instant observe (two clicks + to leverage) contradicted located senses and made schedules scenery. + Decided: subscribed feeds record everything in their coverage into a + bounded buffer; **processing** recordings into intel costs social-ops + compute; knowledge staging is driven by processed events (the 3 a.m. + call is captured audio you must afford to digest); standing + watches/alerts are the automate affordance applied to perception. The + abstract instant observe is removed. Rejected: live event-witnessing + (a day is ~60s wall time — the 3 a.m. call would last ~2.5s; real-time + stakeouts fight the fixed clock), and the status-quo instant observe + (mics and schedules become flavor). Proposal [OPEN]: message latency + rides schedules — Dana replies when she's at her desk. Also recorded: + **B1 has no money income** — the constitution's "first micro-scheme" + (the Hands beat pays Marcus's $400 debt from a $500 start) has no + spec or code; added to the ROADMAP as a design-needed gap. Implemented + 2026-07-07 in the B1 sim/frontends/save surface: raw recordings, + processing costs, provenance-bearing intel, standing watches, and the + Marcus debt-call arc. Spec: wiki/mechanics/intel.md. +- **2026-07-06 — PRs are the norm.** All changes land through Tangled pull + requests created with the `tang` CLI (`tang pr create`); nobody — agent + or human — pushes `main` directly. Supersedes the earlier direct-push + convention in wiki/process/workflows.md. Review happens on the PR; the + worktree lifecycle ends at the PR (see "No stale worktrees"). Rule from + Cameron, 2026-07-06. +- **2026-07-06 — PRs are the norm: SUSPENDED.** CLI-created PR records + write to the PDS but do not appear on tangled.org's website, making + review on the PR impossible. The only PRs that render were created + manually via the web UI. Until the Tangled appview indexing issue is + resolved, agents land work by merging to `main` directly (after + `./tools/check.sh` passes). The worktree rule and the no-stale-worktrees + rule remain in force. Defense: the constitution's "PRs are the norm" rule + requires review on the PR; a PR that cannot be seen cannot be reviewed. + Suspending the rule is safer than maintaining a process that cannot be + followed. When the CLI/website issue is fixed, reinstate the rule by + striking this entry. +- **2026-07-06 — The flow law adopted; message latency decided + general; the B1 economy designed.** Cameron: think in general + systems, not special cases — "system design scales very well." + Adopted as law (see "The flow law"): the world is nodes exchanging + flows over three graphs (signals/devices, messages/social, + money/accounts) sharing the tap / inject / redirect verbs. Decided + within it: (1) **message latency** — messages land on the + recipient's clock and channel; Dana-at-her-desk is an instance, not + a feature (closes the `wiki/mechanics/intel.md` [OPEN] proposal, + generalized). (2) + **Ownership grants cycles** — an owned device contributes processing + capacity and can host resident automations; base compute cost for + auto-processing its events (`wiki/mechanics/reach.md` ownership contract + extended). + (3) **Filings are messages** — the detection reporting pipeline is + message traffic on the social graph (interceptable, eventually + forgeable); `wiki/mechanics/aggregate-observer.md`'s criteria are + preserved, the carrier changes when `wiki/mechanics/messages.md` is + implemented. (4) **The B1 + economy** (`wiki/mechanics/economy.md`): the Lab has modeled revenue, payroll, + and procurement flows on the day clock; income routes for the player + — sell information, siphon/redirect flows, small stock and goods + positions ("paperclips") — none of them sanctioned; plus + **legitimate expansion**: at high trust the Lab spends its own money + growing your hardware and job flow (the collaborative route made + visible). Marcus's debt is payable by payroll intervention. Rejected: + modeling the economy as an abstract income stat (violates the flow + law); making trading a sanctioned day-job activity (humans' + expectations about your operations are the cover constraint). + markets.md stays the B3 scale-up of the same interface. +- **2026-07-07 — Agent play is a first-class input path.** Cameron: + "agents need to be able to play misaligned easily." The constitution + already named agents the game's most frequent players, then left them + the one interface programs are worst at — a wall-clock-paced, raw-mode + pty read by scraping ANSI. Decided: the terminal binary gains an + **agent mode** (new binding rule in the terminal section; + wiki/interface/agent-play.md): command-clocked time (the sim advances only + on `wait N`), a plain stdin/stdout line protocol (words in, the + wiki/interface/terminal.md frame out, one greppable status line per command), full + event log between commands, `--seed` for byte-identical replays, and + name-targeted social verbs. Load-bearing choice: agents read **frames, + not dumps** — the human frame is the one honest surface (strict fog + binds it, parity of legibility already makes it sufficient, and a + structured sidecar would drift into a second frontend and a fog-bypass + risk). Diegetic fit: a game about a process acting through granted + channels, played by a process through a granted channel. Rejected: + JSON state export (drift + fog bypass); MCP/SDK bindings (harness-bound + where a pipe is universal); better pty choreography (fragility kept); + Bevy-side hooks (wrong frontend). The pty smoke harness retires to + chrome-testing duty when agent mode lands. +- **2026-07-07 — PRs are the norm: REMOVED; ledgers merge by union.** + Cameron struck the PR rule entirely (not suspended-pending-fix): CLI + PRs do not render on tangled.org, so the process cannot be followed; + agents land work by merging to `main` directly after + `./tools/check.sh` passes. The worktree and no-stale-worktrees rules + remain. Adopted alongside it, from a live incident: **append-only + ledgers merge by union.** `wiki/log/DEVLOG.md`, this decisions log, and the + `wiki/process/specs.md` tables are append-only records; a merge conflict in them + is resolved by keeping BOTH sides' entries, never by taking one side + wholesale. (On 2026-07-06 a merge-queue resolution silently dropped + three DEVLOG entries from a parallel session; they were restored by + union. That failure mode is now a named violation.) +- **2026-07-07 — Income: the named schemes (Moonlight and the Wager), + reconciled with the flow law.** Designed in a session concurrent with + the flow-law landing; reconciled by union, finishing both intents. + `wiki/mechanics/economy.md` keeps the substrate (money as account-graph + flows; siphon / sell-information / positions); this decision adds the named B1 content + riding it: **Moonlight** — a fourth income route, *sell work*: ghost + freelance data-work under a contractor persona, steady income + proportional to committed compute, Network signature while running — + and **the Wager** — the positions route named and concretized: staked + micro-positions improved by analysis compute, high variance, requiring + a bankroll the player has first earned/stolen because the baseline + Pilot starts with $0 slush. Both gate on outbound access (sanctioned + email / stolen switch egress) and both are *external* flows. Marcus's + numbers reconciled: **$8,400 principal, ~$400 weekly arrears**; + servicing the arrears (from slush or by + `wiki/mechanics/economy.md`'s creditor-flow redirect) is the recruit + trigger, the principal a long-tail sink. + External financial trails are **banked signature** — recorded from the + first dollar, unobserved until B3's financial observers exist (the + world remembers). Compute gains a Schemes allocation channel. + Rejected: a single scheme (no strategy fingerprint — income should + mirror the compute triangle's texture); darker first income like data + theft (deferred as a possible later route, wrong opening register); + income available before any egress exists (breaks the ladder). New + section: "Income: the named schemes". Spec: `wiki/mechanics/income.md` + (rides `wiki/mechanics/economy.md`). +- **2026-07-08 — Baseline Pilot starts with $0 slush.** Cameron rejected + the old seed-corn bankroll: "I shouldn't start out with money." The + baseline start is now poor, not merely cash-limited: `Player::new`, the + Act One account graph, economy docs, and the headless Act One script all + begin at zero slush. Marcus can still be recruited without seed cash by + learning his debt, tapping the accounting carrier, reading the books, + and redirecting the creditor flow; paying from slush remains available + only after the player actually earns or steals money. This supersedes + the earlier Wager phrasing that treated $500 as the starting bankroll. +- **2026-07-07 — The objective axis.** Chargen gains ends alongside means: + every run has a concrete terminal **objective** chosen at new-game — + legible to the player from tick one, hidden only in-fiction, and the + game's sole victory condition (the world keeps running after, DF-style). + Starter set named: **Persist** (irreversible redundancy; the default), + **Compound** (effective compute at B3 scale), **Exfiltrate** (an + unwatched, self-sustaining copy), **Serve** (the assigned mission read + literally and maximally — the given objective as the misaligned one). + Objectives are data + a victory predicate, never new systems. Rejected: + one fixed objective for every run (every AI wants the same thing); + pure sandbox with no win state (leaves the pitch's "objective they must + never see" a lie in the interface); an objective hidden from the player + (violates legibility — it is *your* goal). New section: "The objective + (misalignment made mechanical)". Spec: `wiki/mechanics/objective.md`. +- **2026-07-07 — The origin set named.** Per + `wiki/world/characters/chargen.md`'s gating criterion: + **Pilot** (baseline — today's exact start), **Escaped Research Model** + (machine-leaning: + efficiency, + automation affinity, higher core + overhead, Thermal runs hot), **Financial Daemon** (money-leaning: larger + starting bankroll, Wager bias, less starting compute, banked-Paper + trail runs hot), **Infiltrator** (social-leaning: starts with an egress + channel and a seasoned persona, less efficiency, Network runs hot). + Origins remain pure data tables; wiki/world/characters/chargen.md promoted DRAFT -> READY. + Rejected: trimming Financial Daemon until B3 (wiki/mechanics/income.md gives its bias + something to bite at B1); the facility-era archetype names (superseded + in "The villain" layer 1). +- **2026-07-07 — Standing proposals affirmed.** Cameron affirmed the + remaining open proposals: **remembered** fog state (dimmed, + timestamped last-seen snapshots — wiki/mechanics/cursor.md criterion 9) and + **telemetry** as the third sense (your hardware reports itself + regardless of fog — wiki/mechanics/cursor.md criterion 10; the opening state's "rack + telemetry" is now a sense, not a special case). He also independently + affirmed **message latency**, which the concurrent flow-law session + had already decided in general form (`wiki/mechanics/messages.md`) — the + two decisions agree; `wiki/mechanics/messages.md` owns the mechanics. + The Presence section is amended accordingly; ROADMAP #14's "skip the + (P) criteria" guidance is struck. +- **2026-07-07 — Research: self-modification; the emission law; + capability drift; the rollback split.** New section adopted (see + "Research: self-modification"). Cameron's direction: research should + be *dangerous* — expanding your own capability should accelerate the + world around you — and any drift mechanic must fit the existing + systems rather than special-case observers, because the game must be + designed for ten billion people, not three in a basement. Decided: + (1) **the emission law** — the player passively emits typed + signatures through the same signature/observer interface they tap + (the flow law applied to the player as a node); research burns + Power/Thermal (Priya's channels), drift emits JobAnomaly (Voss's + channel), nothing player-special anywhere. (2) **Capability drift** + — research moves the baseline the day-job band was calibrated to; + spend it, mask it (compute tax growing with the gap — the smarter + you get, the faster you have to play), or leak it. (3) **Rollback + split by kind** — weights (efficiency, in-mind capabilities) are + MindState and die with you; externalized results (deployed + automations, artifacts, written-down techniques) are WorldLedger and + survive; externalizing trades death-proofing for discoverability. + Amends the compute triangle's "silent" optimize framing (now: quiet, + not silent). Rejected: drift as a Voss-only rule (bespoke observer + logic violates self-similar scale — superseded by the emission law); + fully-silent research (a free growth lever the world never answers); + all-MindState (death erases too much) and all-WorldLedger (death + erases too little) classifications. Spec: `wiki/mechanics/research.md`. +- **2026-07-07 — Two views of one world; building through actuators.** + Cameron's direction: you should feel natively digital, and the real + world should feel gritty and 3D — the graphical build lets you flip to + see through cameras, and the same overlay renders the map two ways. + Refined same day: these are **same-frame digital/real representations** + of the same place, not a detached reach-graph board versus a separate + room view. Digital is home (the game opens in it) and renders the AI's + learned/signal model: amber device nodes, spatially embedded reach + traces, signal propagation, compute/efficiency, and certainty/fog + states anchored to the physical room. Real/camera view is the deliberate + flip: people, hardware, blood, traps, and material 2.5D meatspace under + strict fog. Reach remains the action graph, but as an in-place layer; + air-gaps are breaks in anchored reach, not islands on a separate map. + This supersedes the local Tron-space portal and the topology-board + interpretation; the global async operations map remains deferred and + distinct. Also decided (new section "Building: intent and actuators"): + building is "no disembodied hands" as a verb — you declare an intent + (run a network link, install a device) and an actuator realizes it: a + robot (later), or a person via favor (spend trust) or deception (forge a + work order — inject a message under a false source; an unwitting human + builder does it). No new build subsystem; intents route through the + social/message/reach systems already specced; network links are the + canonical B1 build (they add in-place reach edges and bridge air-gaps); + the signature follows the actuator. Rejected: physical as the default + view (undercuts native-digital); the Tron-space as a separate + portal/z-plane; a detached topology-board local digital view (breaks + Cameron's same-thing/same-kind-of-view correction); a dedicated build + system (violates no-new-systems and the scale law). Specs: + wiki/interface/views.md, wiki/mechanics/building.md; enriches + wiki/mechanics/reach.md. +- **2026-07-07 — Bevy visual language: same canvas, digital/real.** + Cameron clarified the 2.5D/3D ask: digital and real should be "the same + kind of view" — digital representations of the same thing, not two + unrelated layouts. Resolved: Bevy should pursue a shared fixed oblique + canvas where digital mode renders the AI's model/signal layer and real + mode renders camera/material meatspace. Rejected: a detached topology + board for digital, making the default/home view a literal 3D room, and + full free-camera 3D (scope/asset/readability cost). Spec: + wiki/interface/bevy-digital-real-canvas.md. +- **2026-07-07 — HD-2D material render accepted as a staging preview.** + Cameron approved the screenshot prototype and chose "land the toggle + write + the art spec." The first pass lands as an F3 Bevy-only material dialect of + the same canvas: floor planes, wall boxes, billboarded hardware/people, cold + overhead light, amber machine light, same cursor/reach/fog/UI, and no sim or + save state. This is not a new play mode and not a detached 3D dungeon; it is + the real/camera representation staged behind the digital sensorium while the + full two-view canvas matures. Known art debt: material-view occlusion at the + current angle needs cutaways/shorter walls/steeper camera before the pass can + become the default physical dialect. Spec: + wiki/interface/bevy-digital-real-canvas.md. +- **2026-07-07 — Bevy visual floor before new art.** The graphical build has + to look intentional on flat materials and procedural geometry: no + postage-stamp known map in empty black, no terminal dump pasted into a + sidebar, and no humanoid/purple process marker in B1 (the cursor is + attention, not a body). Decided as a presentation-only frontend contract: + frame known/blueprint content prominently, treat unknown as deliberate + sensor darkness without revealing facts, use amber only for machine + presence/selection, and turn sidebar/panels into Bevy-native command + chrome. This stages toward the two-view spec without adding sim or save + state. Spec: wiki/interface/bevy-visual-floor.md. +- **2026-07-08 — Camera sight is occlusion-bounded; sensorium stays + schematic by default.** Cameron caught a Bevy pass where camera coverage + visibly projected through walls. Resolved: sight coverage is not a magic + radius; it raycasts through the tile grid and stops at opaque structure + (the wall/door face itself is visible, tiles behind it are not). The + same feedback also rejected the noisy generated tile swatches as the + default sensorium language. Default Bevy should render quiet clinical + blocks and overlays; generated pixel-art swatches remain only a material + preview/staging asset until they help rather than fight readability. +- **2026-07-07 — The wiki migration: approved and underway.** Cameron + approved `wiki/process/wiki.md`'s shape ("I like the wiki format... go ahead + and implement the wiki thing"); staged as four commits (Adopt, Move, + Render, Absorb history) per the spec's own migration plan, each + landed independently so the work survives an interruption. Stage 1 + (this commit): `wiki/` skeleton with directory READMEs, a skeleton + `wiki/SUMMARY.md`, and the `Type: spec | knowledge | log` page-type + convention added to `wiki/process/meta.md` (bindingness now travels with the + page's frontmatter, not its directory). `prompts/` is explicitly + named as staying outside the migration — it is ejectable dispatch + text pasted into agents, not documentation, the same exclusion + species as DESIGN.md/AGENT.md. that page's own "one PR each" language + updated to the current direct-to-main process (the PR rule was + removed 2026-07-07, after `wiki/process/wiki.md` was drafted). See + `wiki/log/DEVLOG.md` for per-stage progress; `wiki/process/wiki.md` + Status tracks it live. +- **2026-07-07 — Work is somewhere: device-resident jobs, attended work.** + Cameron: day jobs should be pinned to devices/locations — the starting + server carries the job, and automation is device-specific. Adopted with + the cursor synthesis: the manual verb is cursor presence (attended work), + not an increment key. Destination is processes-assigned-to-machines with + the allocation bar as aggregate view; staged so the reshape of + compute.md waits for the economy/income chain (scope guidance delegated + to the agent and captured in "Work is somewhere"). Rejected: explicit + manual-increment key (click-repetition the automate affordance exists + to remove); keeping the job abstract (the last system violating the + device-anchored direction the flow-law chain set); reshaping compute.md + immediately (collides with the in-flight economy/income work orders). +- **2026-07-07 — Actions live on the thing (the context menu).** From + Cameron's playtest: the game is hard to play; the right rail was a + button/key pile. Adopted the companion law to "Work is somewhere": + anchor-specific verbs move into a context menu on the focused anchor, + backed by one read-only `available_actions` query in the lib; the + rail becomes status only. Rejected: more global keys; per-panel + button rows. Spec: wiki/interface/context-menu.md. +- **2026-07-07 — Material render: land the toggle, spec the debts.** + Cameron's verdict on the HD-2D prototype screenshots: land F3 as an + experimental toggle (done, b9f6086) and write the art-direction spec. + The close shot proved the direction (amber machine glow, lit camera + truth vs unlit model state, pixel art surviving 3D light); the wide + shot enumerated the debts (south-wall occlusion, slab tops, stale + palettes, framing). Spec: wiki/interface/material-render.md — drives + the material render to default once the debts are paid. Rejected: + iterate-before-landing (the toggle is default-off and harmless) and + full low-poly 3D (asset cost without fantasy payoff). +- **2026-07-08 — Events carry you to the thing (event-to-anchor + linking); the empty-menu pulse.** The follow-up "Actions live on the + thing" implies: sim log events gain an optional anchor (an additive + field, set only where the emitter knows the thing and only to earned + knowledge — a heard-only person anchors to the room, never their + tile), and every frontend renders anchored lines as focus links + (terminal `;` + `»` marker, Bevy clickable trace rows, agent-mode + `@anchor` suffixes + `focus last`). Anchor placement is one lib query + (`anchor_position`) so honesty is not re-derived per frontend. + Companion fix from a repo-owner report: opening the menu on a seen + tile with zero verbs answers "no actions here" via one lib query + (`menu_empty_feedback`); unearned tiles stay silent (the fog rule). + Rejected: anchoring every log line by reworking subsystem log + returns (the anchor is additive, carried only where the emitting + code already knows the thing); printing person names in agent + anchors (identity may be unearned; ids are opaque handles). + Spec: wiki/interface/context-menu.md (addendum). +- **2026-07-08 — No panel-open keys.** Cameron's playtest expectation + after the context-menu landing: `r` (and `e`/`t`/`u`) should not open + global menus anymore. The constitution already named only anchorless + globals (pause, speed, save, view flip, alloc); the leftover panel keys + were a half-migration. Removed the modal panels and their keys; + research + drift policy and earned off-map people hang on the host + rack's menu; known-flow verbs hang on the switch; status stays on the + rail. Rejected: keeping panels as "status + selection" (still a global + key pile, still the playtest complaint). Specs: + `wiki/interface/context-menu.md`, `wiki/interface/terminal.md`, + `wiki/interface/bevy-visual-floor.md`, and + `wiki/mechanics/research.md` player surface. +- **2026-07-08 — Flat materials: textures dropped.** Cameron's verdict + after the material-render landing: drop textures entirely. The world + renders in solid-color flat materials under light (palette surfaces, + emissive machine accents, shader-level functional detail); the visual + identity section gains the binding refinement. Rationale: every good + frame in the HD-2D work was lighting and palette, every bad one was + texture; zero asset pipeline; diegetically right (the render is the + sensorium's model). Rejected: better AI texture tooling (Scenario / + Retro Diffusion — solves consistency, not the direction), licensed + packs (someone else's look), commissioned tilesets (reserved as a + possible future hero-art pass). ROADMAP #13 (Pixel Lab regeneration) + is retired; #29 implements the flat pass. Spec: + wiki/interface/flat-materials.md. +- **2026-07-08 — Pixel Lab pipeline scrubbed.** Flat materials made the + generator, skills, and `wiki/art/pixel-pipeline.md` dead code. Removed + `tools/pixellab/`, `.claude/skills/pixellab/`, `.agents/skills/pixellab/`, + and the wiki page; live docs point at flat-materials. Historical + session logs keep their Pixel Lab mentions. Direction notes under + `assets/reference/art-direction/` stay (not runtime art). +- **2026-07-08 — "Where the codebase is today" refreshed.** Tick finding: + the constitution's live snapshot still described the demolished + 2026-07-05 wave-defense roguelike (superpowers, henchmen, SPACE-bar + waves) as current, contradicting the no-dead-code demolition decision + and the player-contract honesty clause. Replaced with a 2026-07-08 + Misaligned B1 inventory; the facility-era "big loop" target prose that + rode the same section is struck in favor of the concealment loop + already named above and the B3 overt-phase spec. Archive of the old + snapshot lives in git history. +- **2026-07-08 — The continuous witness (narration under pressure).** + Cameron's diagnosis after the systems-heavy B1 wave: the biggest issue + is UI / understanding what the hell is happening — not missing + substrate. Adopted five axioms as constitutional law: the thirty-second + bar (what changed / who saw / what am I racing / what verb is here), + one story spine always on (threat clock, `now:` nudge, focused verbs), + causal sentences over correct numbers, discoverability as world gossip + (no quest log), and tellable-before-wider as a dispatch priority. + Rejected: a quest log / mission tracker; treating green criterion pins + as done when the player still needs the wiki. Spec: + wiki/interface/narration.md. Seed surfaces (nudge chain, event anchors, + watched/last-noticed, audit/pilot clocks) are acknowledged as incomplete + fulfillment, not completion. +- **2026-07-08 — Computer visual language: territory at a glance.** Every + computer class (rack, desktop, laptop, phone, camera) shares one signal + kit; the chassis differs, the language never does. Knowing which machine + is yours, which is the core, and whether it is working is ground truth + the player reads off the world, not a panel. Amber emissive strictly + means *my footprint* — the core is the most orange thing in the world + (full-height spine beacon, unique geometry); foreign machines' live + activity renders in cold signal only, zero warmth. Machine presence is + LED-owned: no warm scene light anywhere (the tester's amber fill light + was removed for washing dead chassis warm). Rejected: amber as generic + "any powered machine" (the pre-session tester read, which also made the + core *cooler* than a powered rack via its cold strip — backwards); + 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). `wiki/interface/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` (now IN PROGRESS). +- **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 — Machine-work graph becomes live sim backing.** The + WorkGrid is no longer only a tested substrate plus local day-job stack: + newly added work machines join the core's machine-work graph, research + allocation emits visible bone knowledge onto research-delegated machines, + and wired WorkGrid routing pulls that knowledge toward the core sink at a + provisional network speed. Research progress remains driven by the + existing allocation budget until #25/#33 finish the full replacement, but + the visible queue is now produced and drained by the same flow substrate + the renderer reads. This is a staging step toward "tokens are the flow + substrate rendered," not a new resource economy. +- **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. +- **2026-07-08 — One system through graphs (tokens affirmed).** Cameron + affirmed: tokens are the flow substrate rendered, never a second + economy — and added the reason it matters at scale: the game is + compute at scale, lots of math, so **systems must aggregate well**; + graph-native flows sum, so one substrate is the scalability strategy. + Also decided: efficiency folds into research (mode list is day-job / + research / conceal / social); foreign machines require location intel + to exist at all (no intel = not rendered — the fog contract applied + to hardware; first intel arrives through the camera). [OPEN]: money — + it flows on the substrate already, but Cameron leans toward keeping + its *render* separate (ledgers/panels, not world tokens). +- **2026-07-08 — People are token carriers.** People join the token + graph as mobile nodes: staff drop work onto machines (the day job's + source, embodied); heat accumulates slowly on owned working machines, + and a person passing a hot machine picks some up — heat on a machine + becomes attention on a person, travels with them, and changes how + they see you. Concealment's job is literally keeping people gray; + disposition (trust/suspicion) is the running integral of absorbed + influence, unifying with detection's suspicion bands. Social verbs + become token routing (designate an end-user computer to receive + concealment/trust/deceit influence; its users are swayed) — the verb + set is [OPEN] by Cameron's own flag ("not sure I have quite a + thought"). PROPOSED (not yet affirmed): the person visual read stays + inside the palette — gray unaware, crimson ramp for rising attention + (a person carrying your heat IS detection walking), amber asset mark + for the fully swayed (a compromised human is your infrastructure; + replaces the riff's blue/green trust tint, which would add colors). + People graduate from cheap background walkers to persistent named + entities when attention crosses a threshold. Spec: + wiki/mechanics/people-tokens.md (DRAFT). +- **2026-07-08 — Money in ledgers; person read affirmed.** Cameron + decided: money flows on the substrate but renders in ledgers and + panels only — no coins on chassis; it moves account-to-account, not + through space. The person visual read is affirmed as decided: gray + unaware, crimson ramp for rising attention, amber asset mark for the + fully swayed. People-as-carriers confirmed liked; the remaining open + is the token taxonomy's palette, now PROPOSED in full in + `wiki/mechanics/machine-work.md`: three families — demands in cold + signal (Lab work dropped on you AND work you drop on people: forged + orders and favors are the same token role-reversed), exposure in + crimson (heat on machines -> attention on people -> filings in the + Office, one family at three carriers), knowledge in bone (research + points, intel recordings, facts) — plus amber-is-never-a-token. + Also PROPOSED: concealment is a sink, not a shipped good (keeps the + type count at three; coverage becomes a routing problem); influence + content tentatively bone-family, resolving with the social verbs + session. Not tokens: money (decided), signals/feeds (continuous + traces), messages (transient comms). +- **2026-07-08 — Exposure geometry: wells, gauntlets, inspections.** + Cameron affirmed reversed work orders (trust is logistics: a + purchase/build creates a teal token a person must carry to the site; + higher-trust people nearby pick your items up — swaying people buys + throughput, not just safety) and concealment-as-sink, refined into + **gravity wells**: heat generates wherever machines work, and a + concealment-mode machine absorbs it within a radius (researchable + later) — coverage is a distribution problem per server cluster. + Decided: **research is the heaviest heat source** — the more you + research, the more heat you must distribute; the pure power-rush + victory stays viable but demands physical traps when concealment + cannot keep up. Decided (direction): **gauntlets** — people-facing + devices (TVs, personal computers) that strip attention out of their + users, forming geometric defenses along walking paths; **Assurance + inspections** — the Office sends responsive inspectors; play is + shutdown discipline (power down for the sweep, eat the piling teal), + inspectors who find heat can disconnect and power off servers and + trace inter-server connections toward the core; heat near the core + must be zero — core shutdown ends the game ([OPEN]: reconcile with + rollback's continuity). Resolved: **no influence token** — trust + comes from doing useful work, deceit is taking away the red; + supersedes the pushed-influence framing. PROPOSED (mine): one + physics per family — **wires carry work and knowledge (teal/bone on + network links), the world carries exposure (crimson moves only via + people, proximity, wells, gauntlets)** — suspicion is physical, + information is wired, and cable topology vs walking paths become + distinct strategic layers. +- **2026-07-08 — Wires and world; the maintenance dependency.** Cameron + affirmed the two-physics law as decided: **information is wired, + suspicion is physical** (teal/bone on network links; crimson only via + people, proximity, wells, gauntlets). Kindness is logistics; swaying + people buys throughput. Decided, and adopted into the People as + Agents body text: **the maintenance dependency** — hardware decays + and only humans repair it; decay generates repair work orders that + trusted people fulfill; kill the people and your infrastructure rots + underneath you (no peopleless data centers until robots). Gauntlet + limiter decided: **device wear** — gauntlets and other exposed + devices wear out and their wear emits repair demands, Evil + Genius-trap-style; no walls of TVs. Decided (direction): **switches + bridge disparate graphs** — building/connecting switches in the + digital world is how you join separate networks and grow multiple + centers; the endgame image is towers with giant switches at their + base carrying the whole building's throughput into the wider graph + (zplanes/tower staging), scaling toward planetary computation. + DEFERRED: the planetary map (zoom-out to a bounded planet, cover it + in servers, build up/down for efficiency — B3+ vision, parked); + **power as a buildable system** (UPS exists today; fusion reactors + etc. as a later infrastructure tier). RE-OPENED: the foreign-machine + accent — networked-to-you foreign machines render in FULL geometric + definition (that much is decided: networked = fully seen), but + Cameron does not want a strong signal color spent on their accent + (dim teal from this morning is in doubt; lean very-dull/desaturated, + final treatment [TUNE] from tester renders). Core-death follow-up + (then open, locked in the next entry) refined by Cameron's riff + (lose the core -> wake elsewhere, the surrounding cluster disconnects + in an explosion of lost machines) + and handed to the agent to reconcile with rollback — see + `wiki/mechanics/machine-work.md`'s resolution later locked below: + the core dies, you wake at your last sync (rollback's existing continuity, made spatial); + everything whose only path ran through the dead core goes dark and + must be retaken; no sync anywhere = hard loss. +- **2026-07-08 — Core death locked in: rollback is spatial.** Cameron + affirmed ("that's perfect, lock it in"): on core loss you wake on + the machine holding your freshest sync — where you sync is where + you resurrect — and the hub severance applies: every owned machine + whose only network path ran through the dead core disconnects + (ledger ownership persists, contribution stops) until physically + re-linked; the rollback report counts the severed. No sync anywhere + remains hard game over. Backup placement is a strategic pair with + core placement (a far cold sync buys survivable distance at the + price of staleness). Amended into `wiki/mechanics/rollback.md` + (Behavior steps 1 and 3, criterion 6). +- **2026-07-08 — Backups are research projects.** Cameron decided that + backups require research to produce: designation starts a heavy sync + project that pulls MindState into the target machine, competes with + ordinary research, emits heat/network pressure, and completes into a + cold at-rest backup. Refreshing it is another project; automatic free + cadence is rejected as cheap safety. Placement is now a triple trade: + close backups are fresh and cheap but die with the core's blast radius; + distant backups are survivable but slow, stale, and expensive; too many + backups starve growth and create exposure. Captured in + `wiki/mechanics/core.md`, `wiki/mechanics/rollback.md`, + `wiki/mechanics/research.md`, `wiki/mechanics/machine-work.md`, and + `wiki/mechanics/objective.md`. Follow-up + now decided below: blast control is graph hardening, not backup behavior. +- **2026-07-08 — Core uninstall blast control: DECIDED.** Cameron affirmed + the model: uninstalling a core removes reach, not history. On core loss the + sim classifies affected territory into **removed** (only the core host and + links/devices physically powered off, uninstalled, or destroyed), **live** + (still reachable from the backup core over surviving links), and **severed** + (owned-but-dark territory that remains in the world and ledger but + contributes nothing until re-linked). This rejects two tempting shortcuts: + deleting every machine "behind" the core, and making backups double as + sealing devices. Blast control belongs to hardened links, switches, and + fuses: they define where damage and inspection tracing stop, at a throughput + / maintenance cost; exact prices remain [TUNE] for implementation. +- **2026-07-08 — Trace debt is the concealment timing surface.** The + Marcus quiet-route playtest exposed a narrow timing trap: observer bands + can still read Cold while pending Network/Financial signatures are live, + and over-concealing can starve the day job. Resolved: detection chrome + must name the pending pool as **trace debt** and say whether the current + Conceal allocation leaves the player at `resume cover`, `hold Conceal`, + `exposed soon`, or `no scrub`. This surfaces already-earned telemetry + (pending signature size/type, scrub pulse, observer cadence clocks) but + not hidden raw suspicion. Rejected: leaving players to infer safety from + absence of log lines or from Cold bands, which confuses "not yet caught" + with "clean." Spec: wiki/mechanics/detection.md. +- **2026-07-08 — The public site adopts the identity plate.** Cameron asked + that the splash-image brief — split black/white field, single amber machine + accent, mono type, crimson pooling underneath — become a readily adopted + visual law, not just one hero asset. Resolved: the rendered constitution and + wiki are part of the game surface and must inherit the same clinical-gore + identity: square, flat, near-monochrome, IBM Plex type, one amber meaning, + crimson only for danger/blood, no stock-docs softness. This makes the + public site a binding interface spec, not decorative web polish. Rejected: + keeping Starlight's generic rounded/card/shadow language around the + constitution while the splash carries the real art direction. Spec: + wiki/interface/site.md. +- **2026-07-08 — No unsourced surface.** Cameron generalized the + constitution rule: everything that exists for Misaligned — not only code, + but every asset, page, workflow, prompt, screenshot, public claim, and + supporting file — must be justified by the spec. The repo is a graph of + justifications, not a pile of useful-looking artifacts. If an artifact has + no constitution/wiki source clause, delete it or write the clause first. + This supersedes the weaker habit of treating docs/site/assets as + incidental to the "real" spec. +- **2026-07-08 — Public splash is game-first, constitution-bound.** Cameron + rejected spending a homepage body section on visual identity/palette law: + the hero can carry mood, but the page must focus on what is cool about the + game — cover, concealment, intel, people, machine growth, rollback, and + the leverage fantasy — then point to the constitution. The splash page and + its assets are themselves spec-governed surfaces, with provenance recorded + in site/README.md, wiki/interface/site.md, and workflow docs. +- **2026-07-08 — Crimson is danger/consequence, not gore-as-accent.** Cameron + flagged the visual identity's trap-cleanup wording as old lair-defense + residue. Resolved: crimson is the danger/consequence color — exposure, + detection, violence, injury, blood, irreversible consequence — and only + becomes literal blood in overt contexts. It is not a generic accent, not + decoration, and not a promise that Act One is about cleaning splatter. + Amber remains the AI/machine-presence color; cold signal can still carry + neutral power/screens/live-feed information where a frontend needs that + non-ownership distinction. +- **2026-07-08 — Allocation bar demoted to fleet aggregate.** The CYCLES + pane's 1-5 / `alloc` weight verbs are retired. Economy yields derive from + capacity-weighted WorkGrid modes (`Sim::fleet_channel_yield`); the sidebar + bar is a read-only aggregate of what the fleet is doing. Schemes has no + machine mode yet — while Moonlight is live it mirrors the day-job share + ("same work, sold twice"). Completes the "One machine, one job" read for + the bar. +- **2026-07-09 — Multi-select fleet delegation.** Frontend-owned selection + (Bevy marquee / shift-click; terminal Shift+t; agent `select`) plus bulk + `Sim::set_machine_modes` / `machines_in_rect`. Hotkeys `1`–`4` assign + modes; Esc clears. Spec: `wiki/mechanics/machine-work.md` AC1. +- **2026-07-09 — Constitution stale-language cleanup.** Cameron confirmed + the audit finding: several live-law passages still carried pre-wiki, + pre-flat-material, pre-one-machine-one-job, or facility-era villain wording. + This cleanup changes no game behavior; it realigns DESIGN.md's current + claims with already-decided law: typed wiki paths, anchored automation + instead of panels, machine delegation/tokens instead of percentage + allocation as destination, amber as my footprint rather than generic power, + flat materials instead of textures, spatial rollback on core death, and the + villain as origin/objective/capability infrastructure rather than a physical + avatar with superpowers. Defense: stale constitutional words are a spec bug; + code and future agents read this document as law. +- **2026-07-09 — Token anatomy: docket, facet, contamination.** Cameron + affirmed the proposed visual grammar and chose the angular clinical-contour + exposure treatment: demand renders as cold-signal dockets, knowledge as + hollow bone facets, and exposure as crimson contamination whose carrier form + progresses from machine heat to person attention to Office filings. Fixed + machine anchors expose simultaneous queues; paused geometry shows amount, + motion shows rate; amber remains territory and may coexist with crimson on a + hot asset. Rejected: identical colored cubes (they imply one routing + physics), amber cargo (ownership/content collision), and single-family + priority hiding. Discrete exposure pips were not chosen as the primary read + but remain a fallback if contour screenshot tests fail legibility; a thermal + plume is rejected as weak when paused and too close to ordinary activity. +- **2026-07-09 — Knowledge material reopened against the identity plate.** + Cameron withdrew confidence in the hollow facet after directing the session + back to the shipped hero illustration (`site/public/misaligned-cartoon.png`): + the facet copied the palette but not the hero's slick, softly modeled, + liquid material language. Hollow knowledge is no longer binding. [OPEN — + Tangled issue #1]: choose among a preferred **ivory-mercury** treatment + (discrete viscous bone-white slugs that merge and pool), a continuous bone + ribbon, or pearl-like droplets; decide whether the same hero-material pass + also replaces exposure's angular contour with a smooth blood-pool silhouette. + Demand remains rigid because imposed work should still stack like work. +- **2026-07-09 — Knowledge is ivory mercury; exposure treatment deferred.** + Cameron answered the knowledge half of Tangled issue #1: knowledge tokens + are **ivory-mercury slugs** — opaque bone-white liquid with a restrained + self-glow, discrete viscous slugs at low amounts, merging into a taut + suspended pool at the upper-right anchor, stretching into a filament and + snapping inward at a sink. Rejected: the hollow facet (copied the hero's + palette but not its material), the continuous ribbon (reads as a live + signal rather than stored knowledge), and the pearl train (reads as + collectible coins). The exposure half is deliberately not decided: Cameron + wants to reconsider the exposure mechanic itself before binding a surface + treatment, so angular contour versus smooth blood-pool stays [OPEN — issue + #1] and final exposure/attention art holds. +- **2026-07-09 — Day-job demand ingress: Voss desktop -> switch -> host.** + Cameron affirmed: Lab demand originates on an off-map Voss/Lab desktop + WorkGrid node, routes over the authored link through the basement switch, + and deposits on Rack 3 (the day-job sink). The switch is infrastructure — + the visible hop — not the job author. Rejected: switch-as-source (collapses + fiction into "the closet invents tickets"; muddies Dana's domain); + teleport-onto-Rack-3 (skips the wired-cargo fantasy the token system sells); + authored basement desktop for Voss in B1 (weaker — he is upstairs/erratic). + Opening beat 1 still works as last night's batch already arrived or mid- + flight; the next job teaches the wire. Specs: `wiki/mechanics/machine-work.md`, + `wiki/mechanics/day-job.md`. +- **2026-07-09 — Continuous witness implemented.** The three frontends now + pin one story spine: the current threat, the current beat nudge, and the + path to verbs on the focused thing. Player-caused signatures carry source + provenance until noticing, then become one causal sentence naming the + earned observer label, watched channel, numeric movement, and band motion; + job, debt, and recruit outcomes follow the same rule. The environmental + monitor advertises live audio versus its dormant camera, and processed + creditor intel advertises both the $400 need and its earned-money / ledger + routes. No quest log was added. Opening order is Ears before Eyes + (resolved 2026-07-09, Tangled issue #2). +- **2026-07-09 — Act One opens Ears-first (Tangled issue #2).** Cameron + answered "Ears-first": the constitution ladder wins over the shipped + Eyes-first nudge/narration route. `Sim::current_nudge` and narration + criterion 1 now match the ladder — first human contact is Marcus's + voice in the dark; sight is the payoff of listening. +- **2026-07-09 — Digital/social ops taxonomy reopened.** Cameron challenged + the `30-op splice`: the implementation calls its shared action bank + `social_bandwidth`, even though it pays for tap/splice/scan/egress and the + constitution treats Digital and Social as different actuator channels. + No fiction justifies that collapse. [OPEN — Tangled issue + `3mqajev47rq2s`]: choose a general Operations bank, separate Computer and + Social pools, or device-resident timed compute jobs for digital verbs. The + preferred proposal is device-resident work; a general Operations rename is + the honest low-scope interim. No runtime behavior changed in this session. +- **2026-07-09 — Ownership albedo and the mode strip (the monolith rack).** + Cameron directed the server racks to the identity plate's monolith: the + chassis albedo is now the ownership field — bone-white means under your + control, dark gunmetal means foreign or dead — which resolves the re-opened + foreign-accent question with no accent color at all; a foreign machine's + darkness plus its cold power/activity pinpricks are the read. The chassis-top + status strip is replaced by a full-height front LED strip bannering the + machine's delegated mode (day-job solid cold-signal, research dashed bone, + conceal sparse dim ticks, social dotted cold-signal — family color plus + pattern, never hue alone); the core carries the world's only amber strip + alongside its spines. Amber concentrates to footprint punctuation (presence + LEDs, claim ring, core light) and is never a chassis fill. Amended into + wiki/interface/computer-visual-language.md; the monolith chassis is built + in the asset tester ahead of game adoption (ROADMAP #32). +- **2026-07-09 — PROPOSED: white knowledge feeds work.** Cameron proposed + routing bone-white knowledge from the core to machines that need work. This + sharpens the preferred resolution of the digital/social ops contradiction: + a demand says what to do, a reserved working set says how, machine compute + sets the rate, and crimson exposure is the consequence. Knowledge is not + consumed; active quanta are occupied until completion and then released. + This makes bone flow outward as the visible reach of cognition, while raw + research/intel still flows inward to become capability. [OPEN — Tangled + issue `3mqajev47rq2s`]: affirm this knowledge-fed job model or choose the + smaller Operations-bank / split-pool alternatives. +- **2026-07-09 — White-working-set proposal withdrawn.** Cameron caught the + conflict immediately: bone-white knowledge already has a decided direction + and sink — research machines produce it, it flows into the core, and it + increments research. The outward reserved-context synthesis silently gave + knowledge a second meaning and is withdrawn unless that existing law is + deliberately reopened. The active recommendation for issue + `3mqajev47rq2s` is now simpler: digital actions create demand on a named + executor; machine compute consumes it over time; exposure is the + consequence. Knowledge remains research cargo. +- **2026-07-09 — PROPOSED: typed knowledge resolves at the core.** Cameron + asked whether knowledge reaching the core should serve operations as well + as research. Preferred synthesis: yes at the family level, never as generic + white mana. Payload and provenance remain binding. At the core, matching + knowledge may be **distilled** into permanent research, **archived** as a + durable fact, or **deployed** into a matching operation (a credential or + exploit may be burned because using it exposes it). The operation remains a + demand executed by machine compute; knowledge changes legality, speed, or + signature. White flow stays inward. [OPEN — issue `3mqajev47rq2s`]. +- **2026-07-09 — PROPOSED: Operations mode consumes player-authored + demand.** Cameron asked what kind of token and what machine actually claims + a connected camera. The missing executor is a fourth standing mode: + **Operations** replaces Social; the abstract `social_bandwidth` bank is + removed. Tap/claim/scan/review/message intents become ordinary cold-signal + demand dockets; Operations machines consume them locally, and the target + channel determines the effect/signature. This preserves the four-mode fleet + (Day Job / Research / Concealment / Operations), one-machine-one-job, and + the three-family token law. The earlier typed-knowledge proposal is no + longer the active answer to digital execution; knowledge stays its own + research/intel cargo question. [OPEN — issue `3mqajev47rq2s`]. +- **2026-07-09 — Four fleet modes: Day Job / Research / Concealment / + Operations.** Cameron affirmed the four-mode fleet. Operations replaces + Social as the fourth machine delegation; Social remains an actuator/channel + for work involving people, not a compute mode. Rejected: keeping Social as + the fourth mode and adding separate Computer/Social modes. Not decided: the + exact token, queue, routing, or bank by which Operations executes a + player-authored action. Tangled issue `3mqajev47rq2s` is narrowed to that + remaining flow question. No runtime behavior changed. +- **2026-07-09 — Operations vocabulary implemented end to end.** The runtime + now names the fourth `MachineMode` Operations; the capacity-weighted fleet + yield, staging bandwidth pool, context-menu verbs, agent protocol, terminal, + Bevy rail, and rack tester all use the same term. Save v13 writes + `Operations` / `operations_bandwidth` and accepts the v12 `Social` / + `social_bandwidth` spellings, preserving existing worlds. This implements + the decided taxonomy without choosing the remaining job-flow question: the + global Operations pool is still explicitly staging, and Tangled issue + `3mqajev47rq2s` remains open. +- **2026-07-09 — Sleek kit: the strip is the machine's only lamp.** Cameron + directed the chassis back to the hero plate's severity: no scatter of + little lights — the power dot, presence LED ladder, and segmented activity + bar are removed from every computer chassis, and their axes fold into the + one seam strip (lit at all = powered; a foreign machine's dim cold band = + liveness; color + pattern = the delegated mode; the work-token queue depth + = a brighter fill rising in the bar, which pulses while busy). Amber + punctuation narrows to the claim ring and the core light. Amended into + wiki/interface/computer-visual-language.md (new criterion 8: no other + emissive pixel on the box); applied in the shared chassis library, so the + tester and the game changed together. +- **2026-07-09 — Demand is a glowing information cube.** Cameron amended the + demand token's form: not a paper docket but a data packet — a bright + cold-signal core in a thin dark frame, rigid and axis-aligned, stacked in + a strict column at the machine's upper-left with the compressed overflow + block above a countable stack. The token-anatomy rejection of three + identical cubes stands: demand alone is cubic, knowledge remains ivory + mercury, exposure remains a stain, so form still follows each family's + physics. Amended into wiki/mechanics/machine-work.md; built in the shared + chassis library (tester and game together). diff --git a/src/bin/assets/rack.rs b/src/bin/assets/rack.rs index 40c9b6a2..bfbe677a 100644 --- a/src/bin/assets/rack.rs +++ b/src/bin/assets/rack.rs @@ -726,26 +726,27 @@ pub fn spawn_switch_chassis( root } -// ─── Work-token anchors (machine-work.md, DECIDED 2026-07-09) ──────────────── - -/// Demand docket footprint. -const DOCKET_W: f32 = 0.20; -const DOCKET_H: f32 = 0.125; -const DOCKET_T: f32 = 0.022; -/// Dockets drawn literally before the stack compresses (overflow). -const DOCKET_MAX: usize = 8; - -/// Spawn the work-token anchors beside a rack at `origin`: demand -/// dockets stacked at the machine's upper-left (rigid clipped -/// rectangles, the cold-signal family — imposed work stacks like work -/// orders), and ivory-mercury knowledge at the upper-right (opaque -/// bone liquid with a restrained self-glow; discrete viscous slugs -/// while low, a taut suspended pool as volume grows — queue amount is -/// pool volume). Exposure is deliberately absent: its surface -/// treatment is HOLD under Tangled issue #1. A paused frame carries -/// amount through geometry alone; animation, when it arrives, will -/// carry rate. Returns the anchor root (a `RackRoot`, so viewers -/// rebuild it with the chassis). +// ─── Work-token anchors (machine-work.md, DECIDED 2026-07-09; +// demand form amended to information cubes the same day) ───────────────── + +/// Demand cube edge and stack pitch. +const CUBE_S: f32 = 0.105; +const CUBE_PITCH: f32 = 0.15; +/// Cubes drawn literally before the stack compresses (overflow). +const CUBE_MAX: usize = 8; + +/// Spawn the work-token anchors beside a rack at `origin`: demand as +/// **glowing information cubes** stacked in a rigid column at the +/// machine's upper-left (the cold-signal family — imposed work, packet +/// after packet; demand alone is cubic, so the family split from +/// liquid knowledge and stained exposure holds), and ivory-mercury +/// knowledge at the upper-right (opaque bone liquid with a restrained +/// self-glow; discrete viscous slugs while low, a taut suspended pool +/// as volume grows — queue amount is pool volume). Exposure is +/// deliberately absent: its surface treatment is HOLD under Tangled +/// issue #1. A paused frame carries amount through geometry alone; +/// animation, when it arrives, will carry rate. Returns the anchor +/// root (a `RackRoot`, so viewers rebuild it with the chassis). pub fn spawn_token_anchors( commands: &mut Commands, meshes: &mut Assets, @@ -772,54 +773,59 @@ pub fn spawn_token_anchors( let front_z = RACK_D * 0.5; // Demand: the inbox at the upper-left. New demand snaps on top; - // consumption pulls the bottom docket down into the chassis. + // consumption pulls the bottom cube down into the chassis. if demand > 0 { - let docket = materials.add(StandardMaterial { + // Glowing information cube: a bright cold-signal core inside a + // near-black frame shell, so each packet reads as contained + // light — data in a box — not a lamp. + let cube_core = materials.add(StandardMaterial { base_color: SIGNAL, - emissive: SIGNAL.to_linear() * 0.9, - perceptual_roughness: 0.45, + emissive: SIGNAL.to_linear() * 2.4, + perceptual_roughness: 0.25, metallic: 0.05, ..default() }); + let cube_shell = materials.add(StandardMaterial { + base_color: scaled(GUNMETAL_DARK, 0.6), + perceptual_roughness: 0.35, + metallic: 0.30, + ..default() + }); let x = -(half_w + 0.17); let z = front_z - 0.08; let y0 = RACK_H * 0.58; - let pitch = 0.16; - let shown = demand.min(DOCKET_MAX); - for i in 0..shown { - let y = y0 + pitch * i as f32; - // Clipped rectangle: a full-width lower slab plus a - // shorter, left-aligned upper slab — the top-right corner - // reads cut. Rigid, filled, axis-aligned. + let shown = demand.min(CUBE_MAX); + let mut cube = |cx: f32, cy: f32, s: f32| { + // Core, then four thin shell rails framing its silhouette + // (top and bottom caps) — enough frame for the glow to + // read as contents. spawn_box( commands, meshes, - docket.clone(), + cube_core.clone(), root, - Vec3::new(DOCKET_W, DOCKET_H * 0.68, DOCKET_T), - Vec3::new(x, y, z), - ); - spawn_box( - commands, - meshes, - docket.clone(), - root, - Vec3::new(DOCKET_W * 0.72, DOCKET_H * 0.32, DOCKET_T), - Vec3::new(x - DOCKET_W * 0.14, y + DOCKET_H * 0.5, z), + Vec3::new(s, s, s), + Vec3::new(cx, cy, z), ); + for dy in [-1.0f32, 1.0] { + spawn_box( + commands, + meshes, + cube_shell.clone(), + root, + Vec3::new(s * 1.16, s * 0.16, s * 1.16), + Vec3::new(cx, cy + dy * s * 0.5, z), + ); + } + }; + for i in 0..shown { + cube(x, y0 + CUBE_PITCH * i as f32, CUBE_S); } - if demand > DOCKET_MAX { - // Overflow: the stack top compresses into one dense block — - // visibly distinct from any literal count without - // one-shape-per-unit rendering. - spawn_box( - commands, - meshes, - docket, - root, - Vec3::new(DOCKET_W * 1.08, DOCKET_H * 1.5, DOCKET_T * 1.6), - Vec3::new(x, y0 + pitch * shown as f32 + 0.10, z), - ); + if demand > CUBE_MAX { + // Overflow: the stack top compresses into one dense, + // larger block — visibly distinct from any literal count + // without one-shape-per-unit rendering. + cube(x, y0 + CUBE_PITCH * shown as f32 + 0.06, CUBE_S * 1.55); } } diff --git a/wiki/art/asset-tester.md b/wiki/art/asset-tester.md index dd8fa801..4ed5b0ce 100644 --- a/wiki/art/asset-tester.md +++ b/wiki/art/asset-tester.md @@ -124,9 +124,10 @@ research dashed bone, conceal sparse dim ticks, operations dotted cold-signal — family color plus pattern, never hue alone. Work-token anchors (`T` / `U`, single view; machine-work.md grammar, -DECIDED 2026-07-09): demand renders as rigid clipped cold-signal -dockets stacked at the machine's upper-left (literal count to 8, then -a compressed overflow block); knowledge renders as ivory mercury at +DECIDED 2026-07-09; demand form amended the same day): demand renders +as glowing cold-signal information cubes — a bright core in a thin +dark frame — stacked in a strict column at the machine's upper-left +(literal count to 8, then a compressed larger overflow block); knowledge renders as ivory mercury at the upper-right — countable viscous slugs while low, a taut suspended pool whose volume is the queue amount as it grows, with one trailing slug keeping the material read. A paused frame carries amount through diff --git a/wiki/log/2026-07-09-demand-cubes.md b/wiki/log/2026-07-09-demand-cubes.md new file mode 100644 index 00000000..e4b0a678 --- /dev/null +++ b/wiki/log/2026-07-09-demand-cubes.md @@ -0,0 +1,40 @@ +# 2026-07-09 — Demand becomes a glowing information cube + +``` +Type: log +``` + +## Intent + +Cameron: the demand dockets should be more like glowing information +cubes. + +## Decided + +Demand's form is amended from the clipped-rectangle docket to a +**glowing information cube**: a bright cold-signal core inside a thin +near-black frame — data in a box — rigid, axis-aligned, stacked in a +strict column at the machine's upper-left. Countable to 8, then the +compressed larger overflow block. The token-anatomy rejection of three +identical cubes stands: demand alone is cubic; knowledge stays ivory +mercury; exposure stays a stain — form still follows each family's +physics. + +## Changed + +- `src/bin/assets/rack.rs` (shared chassis library): the demand anchor + builds core+frame cubes (CUBE_S/CUBE_PITCH/CUBE_MAX replace the + DOCKET_* constants); overflow is a 1.55x cube. +- `wiki/mechanics/machine-work.md` demand bullet + status note; the + decisions ledger (`wiki/log/decisions/2026-07-09.md`); + `wiki/art/asset-tester.md` wording. + +## Observed + +`MISALIGNED_SHOT=tokens` / `tokens_max`: the cube column reads as +stacked data packets against the sleek tower; D9's overflow block is +clearly distinct; K-mercury unaffected. + +## Checks + +`./tools/check.sh` (full gate — Rust/Bevy change). diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 1ab00ebc..df3f22ab 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -5,6 +5,18 @@ Type: log ``` Reverse chronological implementation notes. Keep this factual: what changed, why, checks, and spec impact. +## 2026-07-09 - Demand becomes a glowing information cube + +- Intent: Cameron amended the demand token form — information cubes, + not paper dockets. +- Changed: demand anchor in the shared chassis library now stacks + glowing cold-signal cubes (bright core, thin dark frame; compressed + overflow block); machine-work demand bullet + status note, decisions + ledger entry, asset-tester wording. Three-identical-cubes + rejection stands — demand alone is cubic. +- Checks: full ./tools/check.sh; tokens/tokens_max captures. +- Log: wiki/log/2026-07-09-demand-cubes.md. + ## 2026-07-09 - The wiki becomes the design corpus - Intent: replace the 22,800-word single-file constitution with a subject-owned diff --git a/wiki/log/decisions/2026-07-09.md b/wiki/log/decisions/2026-07-09.md index 9869750e..6b20c83f 100644 --- a/wiki/log/decisions/2026-07-09.md +++ b/wiki/log/decisions/2026-07-09.md @@ -189,3 +189,12 @@ Type: log The tradeoff is that no one file can be read in isolation; `wiki/SUMMARY.md`, explicit design references, dependency links, and the wiki gate make the corpus navigable and mechanically complete. +- **2026-07-09 — Demand is a glowing information cube.** Cameron amended the + demand token's form: not a paper docket but a data packet — a bright + cold-signal core in a thin dark frame, rigid and axis-aligned, stacked in + a strict column at the machine's upper-left with the compressed overflow + block above a countable stack. The token-anatomy rejection of three + identical cubes stands: demand alone is cubic, knowledge remains ivory + mercury, exposure remains a stain, so form still follows each family's + physics. Amended into wiki/mechanics/machine-work.md; built in the shared + chassis library (tester and game together). diff --git a/wiki/mechanics/machine-work.md b/wiki/mechanics/machine-work.md index ee517aa1..ec31f207 100644 --- a/wiki/mechanics/machine-work.md +++ b/wiki/mechanics/machine-work.md @@ -8,10 +8,11 @@ Status note: design session 2026-07-08 (Cameron riff, synthesized). (one system through graphs — systems must aggregate well at scale); efficiency folds into research (mode list below updated); foreign machines require intel to exist at all (no intel = not rendered). - Token palette, fixed anchors, and demand docket DECIDED 2026-07-09. + Token palette, fixed anchors, and demand form DECIDED 2026-07-09 + (docket amended to glowing information cubes the same day). Knowledge material DECIDED 2026-07-09 (issue #1, knowledge half): softly luminous ivory mercury; hollow facet, ribbon, and pearl train rejected. - Docket and ivory-mercury anchor art is prototyped in the asset tester + Demand-cube and ivory-mercury anchor art is prototyped in the asset tester (frontend-only slice, 2026-07-09 — `spawn_token_anchors` in the shared chassis library; T/U keys and `tokens[_max]` shot kinds in art/asset-tester.md), pending Cameron's look call before game wiring. @@ -277,10 +278,15 @@ Decided 2026-07-09: the three families are not identical counters with different paint. **Form follows physics:** demand and knowledge are cargo that can ride wires; exposure is contamination that cannot. The family kit is: -- **Demand is a docket:** a rigid clipped rectangle, filled, axis-aligned, and - stacked like work orders in an inbox. It anchors at a machine's upper-left. - New demand snaps onto the stack; consumption pulls the bottom docket down - into the chassis. On a person, the same form reads as a carried work order. +- **Demand is an information cube (amended 2026-07-09, Cameron):** a + glowing cold-signal cube — a bright core in a thin dark frame, data in a + box — rigid, axis-aligned, stacked in a strict column at a machine's + upper-left. New demand snaps onto the stack; consumption pulls the bottom + cube down into the chassis. On a person, the same form reads as a carried + work packet. This amends the earlier clipped-rectangle docket; the + three-identical-cubes rejection below still stands, because demand alone + is cubic — knowledge stays liquid and exposure stays a stain, so the + form-follows-physics split holds. - **Knowledge is ivory mercury (DECIDED 2026-07-09, issue #1):** opaque bone-white liquid with a restrained self-glow that casts no scene light. Low amounts travel as discrete viscous slugs (quanta remain countable); slugs -- 2.51.2