diff --git a/wiki/SUMMARY.md b/wiki/SUMMARY.md index 3e7f9646..cd7013de 100644 --- a/wiki/SUMMARY.md +++ b/wiki/SUMMARY.md @@ -26,6 +26,7 @@ - [Digital reach](mechanics/reach.md) - [Intel: record and process](mechanics/intel.md) - [Messages](mechanics/messages.md) + - [Plots: authored manipulation stories](mechanics/plots.md) - [Economy](mechanics/economy.md) - [Income schemes](mechanics/income.md) - [Research: self-modification](mechanics/research.md) diff --git a/wiki/interface/bevy-digital-real-canvas.md b/wiki/interface/bevy-digital-real-canvas.md index 606aeda4..15715ccc 100644 --- a/wiki/interface/bevy-digital-real-canvas.md +++ b/wiki/interface/bevy-digital-real-canvas.md @@ -151,7 +151,11 @@ through earned cameras/sensors: other hardware rendered as physical objects; - simple volume/depth cues: cuboids, slabs, billboards, shadows, occlusion, and amber machine glow; -- people as billboards or silhouettes under earned coverage; +- people as small volumetric silhouettes with visible gait under earned + coverage — never flat billboards (amended 2026-07-10: the paper-cutout + read is rejected; a walking human shape at machine scale is what makes + the social chains visible). Selecting or zooming a person opens their + person card — social.md's people panel owns its contents; - gore/traps/overt consequences in crimson when those systems exist; - unknown space as camera blindness, not missing art. @@ -230,11 +234,13 @@ contract: screenshots enough depth; a future pass may move closer to orthographic, but must keep tile footprints predictable and avoid camera wrestling. 3. **Geometry:** one 3D unit per map tile, same anchors as the sensorium. Floors - are planes; walls/rock/doors are low extruded boxes; machines/props/people + are planes; walls/rock/doors are low extruded boxes; machines and props are billboards or simple slabs until a real model pipeline exists. -4. **People:** silhouettes/billboards only under earned coverage. No new - character-art batch is required for this pass, and no humanoid AI body is - introduced. +4. **People:** small volumetric silhouettes with visible gait under earned + coverage (amended 2026-07-10; flat billboard people are rejected — + simple stacked/extruded forms suffice, no character-art batch or model + pipeline required). Selecting or zooming a person opens their person + card. No humanoid AI body is introduced. 5. **Materials:** hybrid procedural + existing pixel textures. Pixel art may be reused on planes/boxes/billboards when it remains crisp under nearest-neighbor sampling; procedural materials are preferred when a texture reads as stale diff --git a/wiki/interface/clinical-frame.md b/wiki/interface/clinical-frame.md index a2cb848a..15ce970f 100644 --- a/wiki/interface/clinical-frame.md +++ b/wiki/interface/clinical-frame.md @@ -142,6 +142,12 @@ its resting presentation becomes narrower and quieter. The always-visible layer answers only the immediate operational questions: +- **the crown metric (decided 2026-07-10): effective operations per + second, one large number at the top of the rail** — how fast the brain + is going. It is the identity readout and the growth drive: more + machines make it climb, and its formatting must let magnitude be felt + as it grows comically large rather than compacting it away + ([TUNE] units/formatting); - current time/run state and representation; - objective and next pressure; - focused anchor and its most consequential live fact; diff --git a/wiki/log/2026-07-10-riff-capture-people-plots-salience.md b/wiki/log/2026-07-10-riff-capture-people-plots-salience.md new file mode 100644 index 00000000..44bc4345 --- /dev/null +++ b/wiki/log/2026-07-10-riff-capture-people-plots-salience.md @@ -0,0 +1,31 @@ +# 2026-07-10 — Riff capture: people salience, crown metric, plots + +``` +Type: log +``` + +- Intent: capture Cameron's post-playtest riff on why he has not + experienced a Marcus-grade chain himself, and the plots direction that + answers the vending-machine critique. +- Changed: amended + [wiki/interface/bevy-digital-real-canvas.md](../interface/bevy-digital-real-canvas.md) + (people are volumetric walking silhouettes, never flat billboards; + zoom/select opens the person card); amended + [wiki/interface/clinical-frame.md](../interface/clinical-frame.md) + persistent layer (ops/sec crown metric at the top of the rail); added + the progressive-teaching direction with [OPEN] reconciliation to + [wiki/mechanics/objective.md](../mechanics/objective.md)'s status note; + created [wiki/mechanics/plots.md](../mechanics/plots.md) (DRAFT, B1) — + authored manipulation stories as data content; added towering compute + halls to the ROADMAP Deferred section; linked plots in SUMMARY; five + entries in the 2026-07-10 decisions volume. +- Design/spec impact: two interface specs amended within their existing + work orders (clinical-frame READY, canvas IN PROGRESS — both gain the + 2026-07-10 clauses before implementation); one new DRAFT spec; one + status-note direction with a deliberate open tension against the + tick-one visibility law; no runtime change ships. +- Checks: `./tools/check.sh --docs`; `tools/work_orders.py write` for the + ROADMAP projection. +- Next: Cameron confirms or rejects the objective-teaching + reconciliation; plots.md graduates DRAFT -> READY once the schema + format and contribution gate are chosen. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 5f2a4d4e..55379eac 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -111,6 +111,11 @@ add or amend a session log, then re-run the generator. - Intent: Audit the top of the B1 dispatch board against the binding schedules spec and the implementation so completed work is not dispatched again. - Log: [wiki/log/2026-07-10-roadmap-schedules-status.md](2026-07-10-roadmap-schedules-status.md) +## 2026-07-10 - Riff capture: people salience, crown metric, plots + +- Intent: (see session log) +- Log: [wiki/log/2026-07-10-riff-capture-people-plots-salience.md](2026-07-10-riff-capture-people-plots-salience.md) + ## 2026-07-10 - README status correction - Intent: The README still named continuous witness/narration as the next priority even though the narration spec is IMPLEMENTED and ROADMAP item #30 is complete. diff --git a/wiki/log/decisions/2026-07-10.md b/wiki/log/decisions/2026-07-10.md index 2cb34802..6ecddce7 100644 --- a/wiki/log/decisions/2026-07-10.md +++ b/wiki/log/decisions/2026-07-10.md @@ -516,3 +516,45 @@ Type: log decorative accent crimson, invented generated UI, a tiny mobile poster, and a product-marketing CTA stack. Owner: `wiki/interface/site.md`; synchronized law: `wiki/art/visual-identity.md`. +- **2026-07-10 — People must read as people.** Cameron has not experienced a + Marcus-grade chain in his own play and named the first cause: the Bevy + people are flat billboard cutouts ("like a piece of paper") with no + salience. DECIDED: people render as small volumetric silhouettes with + visible gait under earned coverage — never flat billboards — and + selecting/zooming a person opens their person card (social.md's people + panel owns its contents: "this is Marcus, and I know these things about + him"). Simple stacked/extruded forms suffice; no character-art batch and + no humanoid AI body. Owner: wiki/interface/bevy-digital-real-canvas.md. +- **2026-07-10 — Operations per second is the crown metric.** The right rail + is overloaded and confusing; Cameron wants one guiding readout pulled to + the top: effective ops/sec, one large number — how fast the brain is + going. It is the growth drive ("I can make the number go up if I just + turn on more computers") and its formatting must let magnitude be felt as + it grows comically large. Reinforces the same-day clinical-frame rail + narrowing. [TUNE] units/formatting. Owner: + wiki/interface/clinical-frame.md#persistent-layer. +- **2026-07-10 — Machine scale stays; towering halls deferred.** Cameron + considered monumental compute towers with tiny people now and rejected it + in the proposing breath: keep the current B1 scale. The late-game image — + towers that dwarf people, aisles of a perfectly oiled machine — is + DEFERRED to the ROADMAP Deferred section beside server gestalt and the + planetary map. +- **2026-07-10 — The sanctuary objective is taught progressively + (reconciliation [OPEN]).** DECIDED intent: guide the player through + building a sanctuary one component at a time instead of presenting the + full distant checklist as immediately actionable. Open tension: the + objective law keeps the objective visible from tick one. Candidate + reconciliation recorded on wiki/mechanics/objective.md: fiction line from + tick one, predicate components entering the guidance surface as their + systems become reachable. +- **2026-07-10 — Plots: manipulation resolves through authored stories.** + Cameron's answer to the vending-machine critique. DECIDED direction: + a plot is a data-defined mini-story (category, entry conditions, beats + with optional choice points, endings with typed consequences) played out + as a delegated operation over ticks on real carriers; the player picks + the how ("Do X to Priya / Do Y to Priya"); text is templated so agents + and the community can contribute plot packs against a schema — an + extension/mod surface. Generic money-only leverage servicing is removed + once plots land. New spec wiki/mechanics/plots.md (DRAFT, B1) owns the + shape; schema format, choice surface, and the contribution canon gate + are [OPEN]. Rejected: more bespoke per-person code as the fix. diff --git a/wiki/mechanics/objective.md b/wiki/mechanics/objective.md index 27028982..90e98a82 100644 --- a/wiki/mechanics/objective.md +++ b/wiki/mechanics/objective.md @@ -28,6 +28,15 @@ Status note: the early slice landed 2026-07-07 (src/objective.rs): the new game. Agent mode gains the `objective` verb (listed in `help`): the objective line, the fiction line, the wrapped predicate, and the victory-latch tick once fired. + 2026-07-10 direction (reconciliation [OPEN]): Cameron wants the + sanctuary predicate taught progressively — the game guides you through + building a sanctuary one component at a time rather than presenting + the full distant checklist as immediately actionable. Tension to + resolve deliberately: this spec and premise.md keep the objective + visible from tick one. Candidate reconciliation: name and fiction + line stay from tick one; the predicate's components enter the + guidance surface (now-line/horizon) one at a time as their systems + become reachable. Earlier note (2026-07-07, design): the axis and starter set are decided. Victory predicates reference B2/B3 systems (fallback cores, planes, filed reports), so the remainder is stage-scoped B3; showing the goal diff --git a/wiki/mechanics/plots.md b/wiki/mechanics/plots.md new file mode 100644 index 00000000..c86711ef --- /dev/null +++ b/wiki/mechanics/plots.md @@ -0,0 +1,117 @@ +# Spec: plots — authored manipulation stories + +``` +Type: spec +Status: DRAFT +Status note: direction adopted 2026-07-10 from Cameron's response to the HAL + playtest's vending-machine critique (generic monetary leverage servicing + resolves specific human situations without world-story). The data model, + playout, and authoring pipeline below are directional; schema format, + choice surface, and the community/agent contribution gate are [OPEN]. +Stage: B1 — The Basement +Work order: plots +Work priority: 60 +Work class: sim +Blocked by: none +Exclusive keys: + - wiki/mechanics/plots.md + - @plots-content +Design: + - wiki/vision/premise.md#the-pitch + - wiki/vision/simulation-laws.md#justification-and-legibility + - wiki/mechanics/social.md#spec-social +Depends on: + - wiki/mechanics/social.md#spec-social + - wiki/mechanics/messages.md#spec-messages-the-social-graph-as-a-flow-system + - wiki/mechanics/intel.md#spec-intel-record-and-process + - wiki/mechanics/detection.md#spec-detection +``` + +## Dependency notes + +social.md owns the humans, their leverage, and the verb table plots resolve; +messages.md owns the channels plot beats ride; intel.md gates what you know +before a plot is legal; detection.md receives the signatures plot beats emit. + +## Why this spec exists + +Marcus's Hands beat works because the intervention causally intersects his +situation: a creditor wants money, you move the money, the arrears resolve, +the obligation is real. HAL's playtest showed the other leverage services +failing that bar — `bribe Priya` against "wants the director's job" consumed +$300 and printed "leverage serviced" with no story of what the money did in +the world. Money in, loyal human out: a vending machine. + +The fix is not more bespoke code per person. It is making the causal story +itself the content unit: a **plot** — a small authored story that plays out +a manipulation from entry condition to consequence, written as data, so +agents and the community can contribute libraries of them. + +## Behavior + +- **A plot is data.** Each plot declares: an id and author; a **category** + (the manipulation shape it acts out — service-a-debt, feed-an-ambition, + buy-indifference, manufacture-a-success, forge-a-grievance, ...); **entry + conditions** (target leverage kind, required knowledge, channel, money or + other resources, persona); **beats** — ordered story text spans that + surface as narration over ticks, with optional **choice points** (a small + choose-your-own-adventure branch); and **endings**, each with typed, + data-defined **consequences** (disposition and obligation deltas, + suspicion signatures by channel, money movement, relationship effects on + third parties). No plot ships logic; one shared executor interprets them + all. [OPEN] concrete schema format (YAML/RON/JSON) and versioning. +- **Playout is a delegated operation.** Choosing a plot designates compute + and time to the task, like any operation: `bribe Priya` becomes "commit + resources to *this* way of feeding her ambition," and the beats arrive + over ticks on the target's schedule — texting through a persona, opening + the shell account, planting the budget win. Beats ride the real carriers + (messages, money flows, paperwork), so they emit real signatures and can + fail or be noticed mid-story. +- **The player picks the how.** Where more than one plot matches the entry + conditions, the surface offers them as distinct concrete actions ("Do X + to Priya / Do Y to Priya"), each named by what it does in the world — + never a generic verb with a price tag. One matching plot is still + presented by its concrete name. +- **Templating.** Plot text carries placeholders (target name, persona + name, amounts, discovered facts) filled at playout, so one authored plot + serves many runs and personas ("Hello, my name is {persona}"). +- **Authoring is a contribution surface.** Plots live in the repository as + content files validated against the schema; agents and community members + write them as packs/mods. A contributed plot must pass mechanical + validation (schema, entry/ending typing, consequence bounds) — the + canon/taste gate for accepting packs is [OPEN]. +- **Message variety rides the same rail.** Where the game needs varied + incidental text of a declared type, that text may come from the same + authored-span pool mechanism rather than one hardcoded string. + +## Player surface + +Every leverage service tells you what it did in the world: at minimum one +narration beat causally connecting the intervention to the person's +situation (the Marcus bar). Plot progress is visible where delegated work +already lives; choice points interrupt legibly; the instrument rail may +narrate the active plot's current beat. Both frontends and agent mode +surface plot choices and beats with parity. + +## Acceptance criteria + +1. Plots are data files validated by schema; adding or editing a plot + requires no Rust change, and an invalid plot fails validation with a + named reason. +2. Every leverage-servicing verb resolves through a plot; the generic + money-only servicing path no longer exists. Each service produces at + least one world-causal narration beat (test: servicing Priya's ambition + narrates what the money did). +3. Playout is a delegated operation over ticks: it costs the declared + resources, rides real carriers (messages/money), emits its declared + signatures into detection, and can be interrupted or fail mid-story. +4. Consequences are typed data applied by the shared executor: disposition, + obligation, suspicion, money, and third-party relationship deltas all + round-trip through save/load. +5. Marcus's debt chain is re-expressed as the first authored plot with no + behavior regression (his existing legibility constraint holds). +6. All five Act One humans' leverages are covered by at least one authored + plot each; at least one leverage offers two plots so the pick-the-how + surface is exercised. +7. Templated fields fill correctly (persona and target names, amounts) in + both frontends and agent mode. diff --git a/wiki/process/ROADMAP.md b/wiki/process/ROADMAP.md index 30af08c1..66f2a11b 100644 --- a/wiki/process/ROADMAP.md +++ b/wiki/process/ROADMAP.md @@ -37,6 +37,7 @@ not a second status owner. | 28 | `thought-fluid` | [the thought fluid — slugs, meniscus, and the filament snap](../interface/thought-fluid.md) | IN PROGRESS | frontend | machine-work | | 30 | `opening` | [the dark opening — a tutorial made of fog](../world/story/opening.md) | DRAFT | frontend | machine-work | | 40 | `people-tokens` | [people and tokens — carriers, attention, trust](../mechanics/people-tokens.md) | DRAFT | save | machine-work | +| 60 | `plots` | [plots — authored manipulation stories](../mechanics/plots.md) | DRAFT | sim | - | | 120 | `core` | [the core](../mechanics/core.md) | IN PROGRESS | save | rollback | ### Later stages @@ -820,6 +821,14 @@ edges clearly block parallel work — coordination slices land first. ## Deferred +- **Towering compute halls (2026-07-10):** current B1 machine scale is + deliberately kept, but a later tier earns monumental scale — compute + towers that dwarf the tiny people walking between them, aisles of a + perfectly oiled machine as the future you are building toward. Fits + the fantasy (the body becomes architecture; people read as small + beside what you have become) and composes with server gestalt and the + planetary map below. Deferred by Cameron in the proposing breath: + "let's keep it at the current scale, but maybe later." - **Server gestalt (2026-07-08):** adjacent owned racks visually fuse into larger structures (1x2 up to 3x3 walls of compute). Fits the fantasy (territory reads as mass, not units); waits because it is diff --git a/wiki/process/specs.md b/wiki/process/specs.md index 11c99307..30dead56 100644 --- a/wiki/process/specs.md +++ b/wiki/process/specs.md @@ -52,6 +52,7 @@ replaced the old `spec/`/`knowledge/` directory split. | [../mechanics/machine-work.md](../mechanics/machine-work.md) | machine work — delegation, visible tokens, and the byproduct network | IN PROGRESS | | [../mechanics/messages.md](../mechanics/messages.md) | messages — the social graph as a flow system | IMPLEMENTED | | [../mechanics/people-tokens.md](../mechanics/people-tokens.md) | people and tokens — carriers, attention, trust | DRAFT | +| [../mechanics/plots.md](../mechanics/plots.md) | plots — authored manipulation stories | DRAFT | | [../mechanics/reach.md](../mechanics/reach.md) | digital reach | IMPLEMENTED | | [../mechanics/research.md](../mechanics/research.md) | research — self-modification | IMPLEMENTED | | [../mechanics/schedules.md](../mechanics/schedules.md) | schedules and presence | IMPLEMENTED |