From edc0446f35d42a9717787b8657a14feab889a323 Mon Sep 17 00:00:00 2001 From: Cameron Date: Fri, 17 Jul 2026 11:56:28 -0700 Subject: [PATCH] Status-note diet: current state, not a changelog. The status notes on busy spec pages had become dated changelogs - machine-work 159 lines, digital-read 139, context-menu 129 - burying the current state under past amendments (two even had duplicated paragraphs). Codified the rule in meta.md (a status note is current state in a handful of lines; the amendment history lives in the dated logs) and applied it to the five worst pages. 614 lines removed, 156 added; no decision lost - every trimmed amendment already has its dated log entry, verified before cutting, and the docs gate confirms all Design anchors still resolve. Defense: wiki/process/meta.md status-note rule (amended here) and the plain-English rule (2026-07-16). Knowledge and process only; no law or behavior changed. --- wiki/interface/agent-play.md | 119 +++------------ wiki/interface/context-menu.md | 159 ++++---------------- wiki/interface/digital-read.md | 176 +++++----------------- wiki/log/2026-07-17-status-note-diet.md | 30 ++++ wiki/mechanics/machine-work.md | 188 ++++-------------------- wiki/mechanics/plots.md | 120 ++++----------- wiki/process/meta.md | 8 +- 7 files changed, 186 insertions(+), 614 deletions(-) create mode 100644 wiki/log/2026-07-17-status-note-diet.md diff --git a/wiki/interface/agent-play.md b/wiki/interface/agent-play.md index 47ab65e9..5245cfa7 100644 --- a/wiki/interface/agent-play.md +++ b/wiki/interface/agent-play.md @@ -3,101 +3,30 @@ ``` Type: spec Status: IMPLEMENTED -Status note: implemented in the terminal binary by `misaligned --agent`, - including command-clocked time, plain-text frames, per-command event - drains, deterministic `--seed`, earned-label / opaque-id social - targeting (`Sim::person_label`; never unearned authored names), the - finance/economy vocabulary, research tracks, machine delegation, and - `intensity light|medium|hard`. - 2026-07-07 objective pass: the identity block gained the always-on - objective line (`OBJECTIVE: PERSIST` + progress readout, - wiki/mechanics/objective.md) — frame content, no size change and no - new verb (the line is in the frame, per the frames-not-dumps law). - 2026-07-07 research pass: the frame grew 70x54 -> 70x60 for the - sidebar's RESEARCH block. The earlier day-job pass grew the frame from - 70x22 to 70x54 - because at 22 rows the sidebar truncated before CORE/DETECTION/DAY JOB - rendered (criterion 5 was silently unmet; the spec sets 70x22 as the - minimum). 2026-07-08 playtest-fixes pass: the frame grew 70x60 -> - 70x64 for the DETECTION section's pending-signature indicator and - audit/pilot countdown lines (detection.md criterion 3); the identity - block's `now:` nudge is the shared Sim::current_nudge chain worded in - protocol verbs; and `siphon`/`redirect` with a non-flow argument - answer `-- err` naming where flow ids live (the "every command answers" - rule, so `redirect` keeps one meaning). 2026-07-09 multi-select pass: `select` - box/add/toggle/list/clear and `delegate selected` / bare `delegate ` - bulk-assign the frontend machine set (machine-work.md). 2026-07-08 event-anchor pass - (context-menu.md addendum): drained event lines carry the stable - `@anchor` suffix, the frame's log window marks anchored events with - `*`, and `focus last` jumps the cursor to the newest anchored event - and prints its `actions:` lines. 2026-07-08 epistemic-honesty tick: - person targets resolve against earned labels / opaque ids only; the - people panel and detection sidebar print role silhouettes until - Schedule knowledge; authored names never appear in the frame before - they are earned. 2026-07-09 continuous-witness pass: the main frame pins - threat / `now:` / `actions`; People, Reach, Finance, and Research repeat - the story spine above their secondary detail; `focus last` is named beside - the action path. Detection drains now narrate earned observer + channel + - player-known cause + numeric/band motion in one line. 2026-07-10 - objective-inspect pass: the `objective` verb (listed in help) prints - the objective line, its fiction line, the plain-language victory - predicate wrapped as output lines, and the victory-latch tick once - fired (objective.md player surface; the HAL playtest found no - agent-facing inspect path) — command output, no frame change. - drains, deterministic `--seed`, name-targeted social verbs, the - finance/economy vocabulary, and research tracks. 2026-07-07 - objective pass: the identity block gained the always-on objective line - (`OBJECTIVE: PERSIST` + progress readout, wiki/mechanics/objective.md) — - frame content, no size change and no new verb (the line is in the frame, - per the frames-not-dumps law). 2026-07-07 - research pass: the frame grew 70x54 -> 70x60 for the sidebar's RESEARCH - block. The earlier day-job pass grew the frame from 70x22 to - 70x54 because at 22 rows the sidebar truncated before CORE/DETECTION/DAY - JOB rendered (criterion 5 was silently unmet; the spec sets 70x22 as the - minimum). 2026-07-08 playtest-fixes pass: the frame grew 70x60 -> 70x64 - for the DETECTION section's trace-debt indicator and audit/pilot - countdown lines (detection.md criterion 3); the identity block's `now:` - nudge is the shared Sim::current_nudge chain worded in protocol verbs; - and `siphon`/`redirect` with a non-flow argument answer `-- err` naming - where flow ids live (the "every command answers" rule; `redirect` keeps one - meaning). 2026-07-11 plot pass: `actions ` lists authored plot starts - and held choices from the shared ActionDesc surface; generic - `act [anchor]` executes the same flattened row, so new data-defined - plots require no parser branch. Typed `plot` and `choose` forms remain - compatibility routes. - 2026-07-08 event-anchor pass (context-menu.md addendum): drained event - lines carry the stable `@anchor` suffix, the frame's log window marks - anchored events with `*`, and `focus last` jumps the cursor to the - newest anchored event and prints its `actions:` lines. - 2026-07-10 machine-intensity pass: `attend`, `target`, and `mask` are - retired; frames show real machine effort/output and the protocol uses - `intensity` instead of explanatory policy controls. - 2026-07-10 vocabulary survey: action-vocabulary.md owns canonical action - names; this spec owns their line-protocol spelling, targets, and replies. - 2026-07-10 simplification: ledger and construction commands now reuse the - canonical TAP / REVIEW / FAVOR / DECEIVE roots; older compound spellings - remain parser aliases only. - 2026-07-10 action contract: world-action/control help is generated from the - shared runtime registry; parser compatibility routes query that registry; - action dumps mark controls; STUB definitions generate neither help nor an - execution route. - 2026-07-11 Operations amendment: `intel`, `people`, `finance`, `schemes`, - and `active` inspect the same renderer-neutral workspace projection as the - human frontends. Existing canonical action verbs remain the execution - family; `actions`/`act` may query exact spatial or strategic targets and do - not introduce agent-only legality. This projection parity is implemented - through operations-workspace.md. - 2026-07-13 persona-authoring amendment: `personas` inspects the PERSONAS - view, `actions archetype ` / `act` owns CREATE PERSONA, and the retained - `persona` word is a non-mutating compatibility redirect rather than a direct - identity constructor. - Amended 2026-07-13 with the intel scale pass: the protocol must navigate - aggregate ids, review an exact recording or custody aggregate, sell an exact - actionable item or report-lot generation/revision, and configure bound - review and disposition controls without an agent-only rule path. Implemented - 2026-07-14: `intel`, `actions` / `act`, targeted REVIEW, versioned-lot SELL, - and stable policy rows consume the same exception-first Operations projection - and exact bound commands as the human frontends; criteria A4-A6 are met. +Status note: IMPLEMENTED in `misaligned --agent`. Current state: + - **The frame.** Plain-text, minimum 70x64, command-clocked (time advances + only on `wait`), deterministic under `--seed`, with per-command event + drains. Every command answers. The story spine (OBJECTIVE line, threat, + `now:` nudge, `actions`) is pinned; secondary panels repeat it above their + detail. Detection drains narrate observer + channel + cause + band motion + in one line. + - **Epistemic honesty.** Social targets resolve to earned labels or opaque + ids only (`Sim::person_label`); authored names never appear before they + are earned. + - **Verbs.** Machine delegation and `intensity`, research, finance/economy, + the canonical TAP / REVIEW / FAVOR / DECEIVE roots, multi-select + (`select` + `delegate selected`), `focus last`, and `objective` inspect. + Plots and held choices ride the shared surface: `actions ` lists + them and `act ` executes the flattened row, so new data-defined plots + need no parser branch. Help is generated from the shared runtime registry; + older spellings survive as parser aliases; STUB definitions generate + neither help nor a route. + - **Operations parity.** `intel`, `people`, `finance`, `schemes`, `active`, + and `personas` inspect the same renderer-neutral workspace projection the + human frontends use (operations-workspace.md); `actions`/`act` introduce no + agent-only legality. + Per-amendment history is in the dated `wiki/log/` entries from 2026-07-07 + onward. Stage: Process Design: - wiki/interface/terminal-first.md#the-terminal-is-a-first-class-frontend diff --git a/wiki/interface/context-menu.md b/wiki/interface/context-menu.md index ecf74eeb..c0d1bd68 100644 --- a/wiki/interface/context-menu.md +++ b/wiki/interface/context-menu.md @@ -3,135 +3,36 @@ ``` Type: spec Status: IMPLEMENTED -Status note: recording-review hotkeys (criteria R1-R4 below) IMPLEMENTED - 2026-07-11 on the context-menu-review-keys worktree: `r` dispatches the - target's pooled "look at recording" sweep and `R` toggles its - automatic-review policy in terminal and Bevy — thin dispatchers over the - same `human_menu` rows the open menu executes, with the empty-menu - feedback pulse narrating misses; agent mode unchanged. The page had been - reopened 2026-07-11 for that addendum; every other implemented criterion - was already met. The later strategic local/Operations split is IMPLEMENTED - and owned by operations-workspace.md; it does not relabel this implemented - spatial-menu baseline. History: implemented - 2026-07-07 on the context-menu worktree (all - seven criteria). The read-only `Sim::available_actions(anchor) -> - Vec` query lives in crates/misaligned-core/src/actions.rs - as the single legality - source, flattened to `MenuRow`s by `menu_rows` and dispatched back - through existing commands by `Sim::execute_action`; no new sim behavior. - The terminal and Bevy open the menu at the focused tile (Enter/`a`, - right-click in Bevy); agent mode gains `actions [name|#flow]`. - Anchor verbs were demoted off the per-anchor keys and rail/panel button - rows in both frontends; only anchorless globals keep their keys - (pause, speed, save, view flip — wiki/vision/simulation-laws.md "Actions live on the - thing"). The allocation bar is a read-only fleet aggregate; mode - changes live on the machine. 2026-07-08 follow-up: the leftover panel-open keys `r`/`e`/`t`/`u` - and their modal panels are gone; research verbs live on - the host rack. The historical placement of known-flow verbs on the switch - and earned off-map people on the host is superseded by the 2026-07-11 - Operations boundary below: strategic objects live in the workspace owned by - operations-workspace.md, while status summaries stay on the rail. - 2026-07-08 addendum implemented (event-to-anchor linking + the - empty-menu feedback pulse, criteria A1-A5 below) on the event-anchor - worktree: `LogEvent.anchor`, `Sim::anchor_position`, - `Sim::menu_empty_feedback`; terminal `;` + `»` markers, Bevy clickable - trace rows, agent `@anchor` suffixes + `focus last`. - 2026-07-08 epistemic-honesty follow-up: person verbs and - signature-band observer strings in `ActionDesc` go through - `Sim::person_label` / `Sim::observer_label` (cursor.md criterion 5) — - role silhouettes until Schedule, authored names after. - 2026-07-09 addendum IMPLEMENTED (status dials, criteria D1-D4) — - `Sim::human_menu` collapses mutually exclusive standing choices into - dial rows on terminal/Bevy; agent `actions` stays a flat dump. ROADMAP - #36. - 2026-07-09 selection hotkeys: with a machine selected (or under cursor), - `1`–`3` assign modes, `5`–`9` fire root one-shots, `Enter`/`e` open that - machine's menu — thin keyboard surface over the same human_menu source. - 2026-07-10: day-job target and drift-policy dials are removed. Focused / - selected machines use `i` to cycle persistent intensity directly; this - frequent physical control deliberately has no explanatory picker. - 2026-07-15: building.md's IN-PROGRESS route composer adds a second shared - nested-page owner. One build-route entry opens family-first and then exact - candidate pages; terminal and Bevy consume the same `HumanMenuPage` tree, - show the selected candidate's explanatory receipt, and Esc back one level - at a time. Its later R2a placement foundation adds one ordinary shared tile - row: an earned empty growable pad exposes PROPOSE SWITCH; once pinned, that - exact pad exposes CANCEL INTENT while the inert footprint remains a building - receipt rather than a device action. Agent direct syntax dispatches the same - core legality. This does not reopen the implemented spatial-menu baseline. - 2026-07-10 vocabulary survey: action-vocabulary.md now owns canonical - player-facing names and the LIVE/STUB/alias/retired classification. - 2026-07-10 action-contract pass: `ActionKind` metadata is the shared - presentation/help registry; STUB definitions are filtered from the query; - controls are textually and visually distinct from committed actions; and - `5`-`9` skip controls. - 2026-07-10 epistemic-progressive-disclosure follow-up: an opaque raw - recording does not earn the person's future social catalog. Message, favor, - leverage, deception, and recruitment verbs remain absent until processing - stages social knowledge. Once earned, those verbs appear on the person's - Operations dossier rather than on a transport device. 2026-07-11 - pooled-inbox correction: REVIEW and its - one AUTO-REVIEW control live once on the core host; raw records create no - person-scoped row. - 2026-07-10 Bevy focus repair: Enter/`e` opens the hovered map tile's menu - before consulting machine selection, so a switch or other non-machine - anchor never snaps attention back to the selected core. - 2026-07-11 keyboard-focus correction: Bevy Enter/`e` opens the attention - reticule's tile without moving it. Pointer focus belongs to explicit mouse - actions (click/right-click); a resting pointer or stale machine selection - cannot retarget a keyboard command. - 2026-07-10 hover-grammar amendment: an owned computer under the Bevy - pointer exposes the bare `WORK / THINK / LIE` line beside the machine while - the full context menu is closed. The current mode is bone-bright and the - alternatives are dim chrome; there is no box, heading, subtitle, counter, - cost, or explanatory mode name. The existing `1`–`3` one-press controls - remain the action path. - 2026-07-10 machine-anchor correction: the pointer chooses the hovered - computer but does not place its grammar. The line projects from a fixed - point at that server's base, so moving within the same rack cannot drag the - words around the world. - 2026-07-10 reticule-target correction: pointer hover is only the first - target source. If the pointer leaves the machine, the line remains on the - selected machine or the owned computer under the attention reticule, - matching the existing `1`–`3` target fallback instead of disappearing. - 2026-07-10 compact-menu amendment: human menus are terse choice lists. - They render verb labels and dial state only, omitting descriptor metadata, - literal control tags, inline blocked explanations, and repeated key-help - footers. Full descriptors remain in agent output; blocked reasons narrate - when attempted. - 2026-07-11 available-choice amendment: human menus omit currently illegal - actions entirely. `available_actions` retains known-but-blocked descriptors - and reasons for agent diagnostics, while `human_menu` projects only choices - the player can execute now. Recruitment choices state what each reveal - level means, its reliability, and the Knowing certainty floor. - 2026-07-11 hover-verb-bar amendment: the machine-only grammar is generalized - into one code and visual surface. Owned machines show WORK / THINK / LIE; - known devices show TAP / TAKE. Current delegation, subscription, or - ownership is bone-bright. A fully tapped foreign device offers UNTAP in its - menu rather than retaining a disabled TAP row. - 2026-07-11 recording-review hotkey addendum (criteria R1-R4): `r` runs - the target's pooled recording sweep, `R` toggles its automatic-review - policy, both on the selection-hotkey target order with the menu closed. - Implemented same day in both human frontends. - 2026-07-11 projection-conformance follow-up: `Sim::ui_projection` is the - renderer-neutral focus snapshot for terminal, Bevy, and agent mode. It - carries the flat ActionDesc list, shared human-menu rows, inspect facts with - provenance, and focused-machine identity/provenance/work state. Frontend - tests consume the same seeded projection and fail when their menu/fact - rendering drifts; fact-source vocabulary is formatted once in core. - 2026-07-11 strategic-boundary amendment: compact world menus keep only - actions on the focused spatial body. Processed-intel sales, people/social - actions, ledger review and flow mutation, scheme controls, plot starts, and - held choices move to the renderer-neutral Operations workspace. That - implementation delta is owned by operations-workspace.md and does not add a - second work order to this page. - 2026-07-12 first-THINK correction: while THINK is current, the shared - machine-mode presentation names WORK as its one-press panic escape. Bevy - lights the `1 WORK` key/word pair amber beside the rack while retaining - THINK as the bone-bright current mode; terminal replaces its generic pinned - mode hint with amber `1 WORK ← EXIT · 2 THINK · 3 LIE`. LIE remains dim and - deliberate. Both frontends derive the cue from `MachineMode::panic_escape`; - no frontend invents a second state or action. +Status note: IMPLEMENTED. Current state: + - **One legality source.** `Sim::available_actions(anchor)` in `actions.rs` + returns the `ActionDesc` list; `menu_rows` / `Sim::human_menu` flatten it + for the frontends, and `Sim::execute_action` dispatches it back through + existing commands. `Sim::ui_projection` is the shared focus snapshot the + terminal, Bevy, and agent mode all render; frontend tests consume it and + fail on drift. No sim behavior lives in a frontend. + - **Actions live on the thing.** Verbs are opened on the focused tile + (Enter/`a`, right-click in Bevy; agent `actions [name|#flow]`). Only + anchorless globals keep dedicated keys (pause, speed, save, view flip). + Human menus are terse — legal choices only, no descriptor metadata; full + descriptors and blocked reasons stay in agent output. + - **Hover grammar.** An owned machine under the pointer/reticule shows a bare + `WORK / THINK / LIE` line (current mode bone-bright); a known device shows + `TAP / TAKE`. `1`-`3` set mode, `i` cycles intensity, `5`-`9` fire root + one-shots, `r`/`R` run and toggle recording review. While THINK is + current, `1 WORK` lights amber as the one-press panic escape. + - **Events link to anchors.** Drained events carry an anchor; `focus last` + and clickable trace rows jump to it; an empty menu narrates the miss. + - **Epistemic honesty.** Person and observer names go through + `person_label` / `observer_label` (role silhouettes until earned). Social + verbs stay absent until intel processing stages the knowledge, then appear + on the person's Operations dossier, not on a transport device. + - **Boundaries.** Strategic objects (intel sales, social actions, ledger, + schemes, plot starts, held choices) live in the Operations workspace + (operations-workspace.md); the build-route composer's nested candidate + pages ride the shared `HumanMenuPage` tree (building.md). Neither reopens + this spatial-menu baseline. + Per-amendment history is in the dated `wiki/log/` entries from 2026-07-07 + onward. Stage: B1 — The Basement Work order: context-menu-review-keys Work priority: 27 diff --git a/wiki/interface/digital-read.md b/wiki/interface/digital-read.md index 70d5ba25..eae2a333 100644 --- a/wiki/interface/digital-read.md +++ b/wiki/interface/digital-read.md @@ -3,145 +3,43 @@ ``` Type: spec Status: IMPLEMENTED -Status note: adopted 2026-07-15 from the Fable playtest debrief (report: - wiki/playtests/2026-07-15-playtest-fable.md). The playtest proved the - game's felt core is the witness voice — causal sentences with named - observers and pre-commit signature receipts — which the agent protocol - drains constantly and the Bevy frame renders almost nowhere (the receipt - reaches Bevy only as ops_explain_text on an already-selected Operations - row; Cameron had never seen it). Decision: DIGITAL is the default and - becomes the read — language projected into world space; REAL is deferred - (presence.md). Trace (Letta agent) reviewed the direction 2026-07-15 and - contributed the one-receipt-model, attention-economy, and - projection-first sequencing constraints captured below. Summary-source - for scaled intel sentences was decided 2026-07-16 (issue #9): authored - magnitudes, no model — see the LOD clause. - 2026-07-15 D1 landed: criterion 1's renderer-neutral projection is - `Sim::read_sentences` (`sim/read.rs`) — Held (with the plot's real - option ids and bound choose command, closing the playtest's finding 1 - at the projection layer), Starving (nothing-thinking vs - flow-not-arriving), TraceDebt (grouped one-shot pool, sited anchors), - and Standing (surfacing only once the sampler warms above Cold, per - the attention economy). Sampler naming reuses the ExpectedSignature - most-suspicious-watcher rule so receipts and sentences agree. Five - pure fixtures pin the states (`sim/tests/read.rs`); agent mode's - `read` verb prints the same sentences (one producer, no - frontend-composed prose). Criteria 2-8 remain open for D2-D5. - 2026-07-15 D2 landed: Bevy consumes the projection. Criterion 2 — the - hover verb bar grew a receipt row printing the leading device verb's - `ActionCost::label()` + `ExpectedSignature::label()` unmodified; the - new `read-receipt` harness proves it renders `0.25 T | Network 3 -> - the IT [Cold]` at the reticle - (assets/reference/art-direction/b1-digital-read-receipt.png). Criteria - 3-4 — `render_read_sentences` places each earned-anchor sentence in - world space (held choices BONE, else DIM) above its tile; anchor-less - sentences fall to a rail READ block (`sidebar_read_text`), so a fresh - frame shows the starving Ears sink and a machine's pending - `JobAnomaly` trace at its own tile - (b1-digital-read-world-trace.png). People place only where a camera - earns them (presence law). Frontend gate green; visually reviewed. - Criterion 5 (held-choice interrupt frame), 7 (dev two-pane), and 8 - (full cold-player sweep) remain for D3; criterion 6 (intel levels) - waits on the summary-source decision. - 2026-07-15 D3 landed: criterion 5. `held_choice_cards` is a structured - core accessor (prompt, target label, and each option as its exact bound - `choose ` command); the glance-tier one-liner and the - drill-tier card both build from it, so the sim's held state and the - surface's cannot disagree (pinned by - `held_choice_card_carries_bound_commands_at_the_person_anchor`). In - Bevy `render_held_choice` dims the whole frame one step and hangs the - question with its options as those bound commands at the target's - projected anchor (screen-center fallback when off-camera); the - world-space held line is suppressed so the moment is not double-drawn; - Operations keeps its own held surface. The `held-choice` harness - freezes the benefactor-trace beat with Marcus camera-visible - (b1-digital-read-held-choice.png). Frontend gate green; visually - reviewed. Anchor-precision polish (tighter tether to the person glyph - vs. the 2D cursor transform) is queued, not blocking. - 2026-07-15 D4 landed: criterion 7. `RenderMode.two_pane` (F8, and the - `two-pane` harness) shows a left-edge column rendering the agent frame's - text for the same tick — spine plus every read sentence with its class - and anchor (`two_pane_text` / `render_two_pane`) — beside the live - visual, so parity is diffable in one frame (b1-digital-read-two-pane.png - shows the held-choice tick read as text on the left and drawn on the - right; the day formula is shared with the rail so the panes cannot - disagree). Debug-only: off by default, outside the frames-not-dumps - contract. Scope honesty: this realizes the criterion's explicitly - permitted "pair the agent frame's text" — the fuller dual-*visual*- - dialect split (DIGITAL and REAL both drawn side by side) is deferred - because the 2D camera renders the UI rail and the flat world together, - so viewporting it clips the rail; a clean split needs a UI-camera - separation, queued. Frontend gate green; visually reviewed. Remaining: - criterion 8 (full cold-player capture sweep); criterion 6 (intel - levels) waits on the summary-source decision. - 2026-07-15 D5: criterion 8 cold-player sweep, DIGITAL, visually - reviewed (not structural audits). The opening (b1-digital-read-opening- - sweep.png) reads the attention economy at rest — one starving-Ears - sentence on the rail, the world otherwise dark. The Ears/Eyes beat - (b1-digital-read-ears-sweep.png) carries three beats in one frame: the - reticle receipt `1.50 T | Network 8 -> the IT [Cold]`, two starving - reservoirs, and aging trace debt `1 record pending | Network 3 | the IT - samples this [Cold]`. The held choice (b1-digital-read-held-choice.png) - and the operator-pressure threat promotion were reviewed with the read - present and correct. One beat remained: a warmed standing-emission - sentence in world space. - 2026-07-15 D6: that last beat is captured (b1-digital-read-standing- - band.png). The `standing-read` harness stages a stolen-egress hum on the - switch with Dana's Network band pushed to Curious; the switch carries - the world-space sentence `stolen egress hum | Network | the IT samples - this | Curious`, and the reticle receipt below reads `0.25 T | Network 3 - -> the IT [Curious]` — the standing sentence and the receipt naming the - same warmed observer, in agreement (the shared most-suspicious-watcher - rule). Criterion 8's capture set is now complete for every implemented - criterion. **The only item before IMPLEMENTED is decision #9** (criterion - 6, intel levels — small-model / pre-authored / leveled-plot summary - source); criteria 1-5, 7, and 8 are landed and visually validated. - 2026-07-15 D7 (correctness pass on the REAL-deferred clause): the held - drill-tier card and the reticle receipt now render in DIGITAL only — a - REAL player answers a held choice through Operations, as before the - card existed; world-space sentences were already DIGITAL-only via their - `Flat2dRoot` parent. Interpretation made explicit: the rail READ block - remains in both dialects because the instrument rail is shared chrome - under the clinical-frame rail contract, and the deferred clause bars - standing anchor sentences *in the material world*, not rail lines. The - dev two-pane (F8) stays available in both dialects by design (a debug - instrument, not a player surface). REAL frame re-captured and reviewed: - dial, rail, and Operations unchanged, no receipt leak. - 2026-07-15 D8: rail attention economy. Same-cause starving sinks (3+) - collapse to one counted line on the rail READ block ("6 sinks starving · - nothing thinking (EARS +5 more)"), pinned by - `rail_read_collapses_same_cause_starving_sinks`; the agent `read` verb - and the dev two-pane stay uncollapsed — parity instruments show - everything. - 2026-07-16 D9 correctness repair: D3's card was only a display. Its - command strings had no executable UI binding, the card rows were not - Buttons, keyboard routing had no held-state branch, and Bevy's wall clock - kept advancing behind the question. `HeldOption` now carries the exact - renderer-neutral `ActionCommand`; click, 1-4, and j/k or arrows + Enter - select that same command and open the ordinary Operations confirmation - rather than executing a frontend shortcut. The live clock reads HELD and - does not advance until that confirmation executes. Pointer, keyboard, - exact-command, confirmation, and clock regressions pin the repaired - pipeline. The deterministic fixture now uses the choice beat's real - cursor instead of an impossible saved state that rendering had previously - masked. The final selectable frame was recaptured and visually reviewed. - 2026-07-17 D10 completes criterion 6 and the work order. Save v32 carries - `IntelMagnitude` (1-10) on every processed exact item and provenance sample; - built-in simulation events use one closed authored type table, while each - plot definition declares the magnitude inherited by captured plot traffic. - Recursive stream/lot custody retains the maximum over complete history and - the exact count and peak of the latest processing batch even after its - bounded sample window rolls. `Sim::read_sentences_at` filters only intel by - a minimum magnitude; held choices, pressure, trace debt, and standing - emissions remain visible. DIGITAL camera scale maps to thresholds 1, 2, and - 3. The paired `intel-altitude-close` and `intel-altitude-far` harnesses stage - byte-identical sim state: close shows MAG 1, the one MAG 2 aggregate for a - twelve-report routine burst, and MAG 4; far shows only MAG 4. Both final - frames were opened and visually reviewed after capture. Core fixtures pin - required/bounded authored plot data, the closed event table, magnitude-first - exact-intel ordering, max retention through one hundred folded reports, - burst aggregation beyond the sample window, and non-intel immunity. The - frontend pair fixture proves camera scale is the only state difference. +Status note: IMPLEMENTED. Adopted 2026-07-15 from the Fable playtest + (wiki/playtests/2026-07-15-playtest-fable.md), which showed the game's + felt core is the witness voice — causal sentences with named observers + and pre-commit signature receipts — that the agent protocol drained + constantly while Bevy rendered almost nowhere. Decision: DIGITAL is the + default and becomes the read (language projected into world space); REAL + is deferred (presence.md). Current state, criterion by criterion: + - **The projection (1).** `Sim::read_sentences` (`sim/read.rs`) is the one + renderer-neutral producer: Held choices (carrying each option's exact + bound `choose` command), Starving sinks, TraceDebt, and Standing + emissions (which surface only once their sampler warms above Cold — the + attention economy). Every frontend prints these; none composes its own + causal prose. The agent `read` verb prints the same sentences. + - **Reticle receipt (2).** The hover verb bar shows the focused verb's + cost + `ExpectedSignature` (observer + band) straight off `ActionDesc`, + or `no signature`. + - **World sentences and trace (3-4).** Earned-anchor sentences render in + world space above their tile; anchor-less ones fall to a rail READ block + that collapses same-cause starving sinks. Pending trace records sit at + their emitting anchor. + - **Held-choice interrupt (5).** A held plot choice dims the frame and + hangs the question with its options as executable bound commands at the + person's anchor; the clock reads HELD and does not advance until the + ordinary Operations confirmation runs. + - **Magnitude LOD (6).** Every intel item carries an authored magnitude + (1-10; save v32); `read_sentences_at` filters intel by the camera's + altitude while pressure, held choices, trace, and standing emissions + stay visible. Events use one closed authored type table; plots declare + the magnitude of the intel they produce. No model generation. + - **Dev two-pane (7).** F8 shows the agent frame's text beside the live + visual for diffable parity; debug-only, off by default. + - **Cold-player sweep (8).** The capture set was reviewed visually (not + just structurally); evidence under + `assets/reference/art-direction/b1-digital-read-*.png`. + REAL stays deferred: the drill-tier card and receipt render in DIGITAL + only. Per-amendment history (D1-D10) is in the dated `wiki/log/` entries + from 2026-07-15 onward. Stage: B1 — The Basement Work order: digital-read Work priority: 27 diff --git a/wiki/log/2026-07-17-status-note-diet.md b/wiki/log/2026-07-17-status-note-diet.md new file mode 100644 index 00000000..7786ceac --- /dev/null +++ b/wiki/log/2026-07-17-status-note-diet.md @@ -0,0 +1,30 @@ +# Status-note diet: current state, not a changelog + +``` +Type: knowledge +``` + +Second slice of the plain-English work. The status notes on busy spec +pages had grown into dated changelogs — machine-work.md's was 159 lines, +digital-read.md's 139, context-menu.md's 129 — burying the one thing a +reader needs (what is true now) under a wall of past amendments. Two of +them even contained literally duplicated paragraphs. + +Codified the rule in meta.md: a status note describes the system's +*current* state in a handful of lines, not its history; a note that has +become a dated amendment list is a finding, and the per-amendment history +belongs in the dated wiki/log/ entries that already landed those changes. + +Applied it to the five worst offenders — machine-work, digital-read, +context-menu, agent-play, plots — replacing each dated log with a concise +current-state summary and a pointer to the dated logs for history. 614 +lines removed, 156 added. No decision was lost: every amendment those +notes recorded already has its own dated log entry and decision-volume +line (verified before trimming), and the corpus docs gate confirms every +Design anchor and link still resolves. + +Defense: wiki/process/meta.md's amended status-note rule (a note is +current state, not a changelog) and the plain-English rule (2026-07-16). +Knowledge and process only; no law or behavior changed. Remaining bloated +notes (agent-play's siblings in the 40-67 line range) are a mechanical +follow-on. diff --git a/wiki/mechanics/machine-work.md b/wiki/mechanics/machine-work.md index 7201f60a..4dc9138c 100644 --- a/wiki/mechanics/machine-work.md +++ b/wiki/mechanics/machine-work.md @@ -3,165 +3,35 @@ ``` Type: spec Status: IMPLEMENTED -Status note: design session 2026-07-08 (Cameron riff, synthesized). - Same-day follow-up affirmed: tokens ARE the flow substrate rendered - (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 form DECIDED 2026-07-09 - (docket amended to glowing information cubes the same day). - Thought material DECIDED 2026-07-09 (issue #1, then named Knowledge): softly - luminous ivory mercury; hollow facet, ribbon, and pearl train rejected. - Demand-cube and ivory-mercury anchor art is IN THE GAME (2026-07-09): - `spawn_token_anchors` (shared chassis library; T/U keys and - `tokens[_max]` tester shot kinds) rides every owned rack's chassis in - the material render, driven by the machine's live queue depths; the - flat sensorium keeps the exact-count D/!/T glyphs, which are now - hidden in the material render (a floating count label over real - token art is the rejected world read). `MISALIGNED_SHOT=tokens` - stages game evidence via the queue API. In-flight route quanta LANDED - 2026-07-09 (`Sim::work_in_flight`: teal/bone hops render as moving - blips in Bevy, terminal, and agent mode; see - log/2026-07-09-route-blips.md). A 2026-07-11 layer-integrity repair - routes both the material Demand blip and its trail through the typed - material-camera gizmo group; they had been submitted to the hidden flat - camera while Thought alone used the correct group. Consumption animation - landed 2026-07-10: - sim-authored `WorkConsumptionReadout` events pull the bottom Demand cube - into WORK or contract a Thought bead into the passive core draw. - Exposure's particulate form is superseded. The machine carrier now renders - thin rigid crimson custody records in a dark rack; production adds one - current-tick record gesture and LIE absorption moves one rigid record along - the real source/well readout. Blood keeps the only pooled crimson liquid. - People as token carriers is specced separately in - mechanics/people-tokens.md (DRAFT). - Implementation 2026-07-08..09: `crates/misaligned-core/src/work_grid.rs` - + `Sim`/save own the - flow/grid substrate (one mode per machine, queue depths as render truth, - demand/thought routing, concealment wells). Playable: Rack 3 starts in - day-job mode; Voss jobs enqueue on an off-map desktop relay, hop the - switch, and deposit on the host; day-job mode consumes them with - zero exposure (WORK sheds nothing — runtime `DAY_JOB_EXPOSURE_PER_TOKEN` - removed 2026-07-09); WORK/THINK/LIE three-verb grammar DECIDED - 2026-07-10 (Concealment is LIE, its own face) and implemented in all - frontends + the first-think oh-shit beat DECIDED 2026-07-09; - FLEET yields from `fleet_channel_yield`; multi-select - delegation in Bevy / terminal / agent; research-delegated machines receive - bone thought routed to the core sink. Thought-flow model DECIDED - 2026-07-10: the former Knowledge family is named **Thought**, the one - substance THINK produces; operations are sinks thought fills at the - target (supersedes the PendingOpsJob docket model, reversing issue - #3's "knowledge is not operation fuel"); the core becomes the - passive-draw sink of last resort, overridden by local sinks in - range. The safe vocabulary slice landed 2026-07-10: runtime, save v18, - frontends, and the asset tester use `Thought` / `thought` / `T`; v17 - `Knowledge` / `knowledge` spellings load through aliases, and routing - behavior is unchanged. The sink executor LANDED 2026-07-10: - `crates/misaligned-core/src/sinks.rs` (`SinkLedger` — reservoirs - fill/fire/self-clear, taps - hold a draining working level) + `WorkGrid::route_thought_nearest_first` - (nearest-first arbitration, core as last resort, per-node stranding) - + save v19; the staged opening senses are live (pre-opened Ears - reservoir, Eyes opens on its fire; the executor-free docket bootstrap - is removed) and `Sim::sink_readouts` / `sink_fires_last_tick` are the - render contract. The wire-flow render landed the same day in Bevy - (slugs with tick-window transit, rivulet merge, meniscus vessels, - filament snap, stranded overflow beads), terminal (glyph tiers, SINKS - section, `(stranded)` marking), and agent frames (sink lines) — exact - grammar owned by interface/thought-fluid.md. Save-class implementation - 2026-07-11 retires the live docket runtime: every player-authored digital, - social, plot, build, asset, deceive, favor, Moonlight, and scheme-opening - effect is now a typed `SinkFireEffect` reservoir or tap. New saves serialize - sinks only; v14-v25 legacy dockets migrate into reservoirs whose thresholds - preserve their exact remaining work at the real target/carrier node. Sinks-not-modes - DECIDED 2026-07-10 (same-day follow-up): the Research/Operations - mode split dissolves — `MachineMode` target is `day-job | think | - lie`, THINK subdomains become sink permissions (ops sinks at run - start; the core conversion is the locked "Research" unlock), and - intel processing is a pending-work-marked sink on the machine - holding the recordings (one pooled automatic-review tap + player sweeps). - 2026-07-11 COMPLETE: - every live player-authored effect uses a target/carrier-local Thought sink; - fired one-shots are reaped after their effect/readout lands; current saves - contain no Operations executor; v14-v25 dockets migrate with exactly their - persisted remaining work. People-carried Demand now begins after a social - reservoir fires and belongs to people-tokens.md. Remaining visual polish is - owned by thought-fluid.md, effects-lab.md, and views.md rather than keeping - this save-class work order open. 2026-07-09 DECIDED: day-job - demand ingress is Voss desktop -> switch -> host (rejected switch-as- - source and teleport-onto-Rack-3). Research production is arrival-driven - as of 2026-07-09: `Sim::banked_core_thought` accrues the bone that - physically reached the core sink each tick, and the economy pulse feeds - research from exactly that pool (save v15). The old direct - allocation->progress path is deleted; a fully stranded pulse logs the - starvation witness line. Work-grid node throughput now reconciles with - the global efficiency multiplier so a researched-up fleet moves and - consumes tokens proportionally faster (efficiency folds into research); - Routing research now supplies the explicit network-speed curve: base 0.25 - wired tokens/tick compounded x1.50 per level, shared by Demand and Thought, - while one-edge-per-tick transit preserves topology as distance. Save v21 - adds Routing as the fourth track. The sim now also exposes each actual - Demand/core-Thought swallow as `WorkConsumptionReadout` rather than asking - a renderer to infer consumption from queue deltas. Bevy now interpolates - those events as the bottom Demand cube pulling into WORK or an ivory Thought - bead contracting into the passive core draw. Successor work: - people-as-carriers owns fired social Demand; Schemes remains a Moonlight - mirror in B1 rather than a fourth machine mode. COORDINATION: - ROADMAP #25's per-machine split destination is superseded by this - one-machine-one-mode substrate (#33). Superseded 2026-07-09 history: the four fleet - modes are Day Job / Research / Concealment / Operations; Operations replaces - Social as a machine delegation. Operations job model DECIDED 2026-07-09 - (Tangled issue #3): player-authored work is cold-signal Demand consumed by - Operations machines. Runtime 2026-07-09: `PendingOpsJob` dockets + Demand - queues; staging `operations_bandwidth` bank deleted. Save v16 repairs the - two incompatible v14 Operations schemas. Opening bootstrap is scoped to - the environmental monitor's staged Ears/Eyes taps only; every later - payload needs an online Operations executor. Runtime, saves, agent - commands, both frontends, and the asset tester use the Operations name; - save v13 aliases remain for Social spelling on load. - 2026-07-10 DECIDED: each machine also keeps one physical intensity - (light / medium / hard). This direct focused/selected control replaces the - day-job target/attendance controls and research drift policy; save v17 - defaults older machines to medium. - Implementation 2026-07-10 (ROADMAP #33 Stage 1): runtime `MachineMode` - collapsed to `Work | Think | Lie | Relay`. DayJob->Work, Concealment->Lie, - Research+Operations->Think (docket runtime temporarily kept until the - 2026-07-11 save-class pass retired it). Fleet/UI/agent bulk-assign - is three verbs (keys 1-3); - save v20 (v19 was taken by the sink ledger the same day). The Stage 1 - landing dropped save parity (no mode aliases), violating - player-contract.md's saves-survive-updates clause; parity was restored - 2026-07-11 (Tangled issue #4): serde aliases on `MachineMode` decode - `DayJob` as Work, `Research`, `Operations`, and v12's `Social` as Think, - and `Concealment` as Lie, so pre-v20 saves parse, migrate in place, and - resave using only the collapsed vocabulary. Relay remains a - non-delegable work-graph hop marker. Reconciled with the landed sink - executor: the staged senses complete from minted thought on any Think - rack, and act_one's cruise sandbags by delegation (host Work, extra Lie) — - the designed consequence of Think idling into research via the passive - draw. WORK/THINK/LIE dial regrouping remains interface work. - 2026-07-11 DECIDED (routed evidence, design session, - wiki/log/2026-07-11-exposure-routed-evidence.md): exposure's - particulate ontology is retired. THINK's byproduct is evidence - records — located information (noise logs on the emitting host) - that routes toward observer endpoints per detection.md's - routed-evidence amendment; LIE is interdiction of records on the - path, not a dust vacuum. The 2026-07-09 "crimson particulate - residue" material decision (issue #1) and the 2026-07-10 dust - tightening are superseded as design; the implemented dust/scrub - runtime semantics and constants stand until the routed-evidence migration. - The world-space render migration landed 2026-07-11: all dust meshes, - particles, footprint demos, and LIE motes are gone; see the decided custody - record grammar below. This visual slice changes no sim/save behavior. - 2026-07-12 DESIGN AMENDMENT (not yet runtime): delegation is constrained by - compute.md's capability body. A machine executes only WORK / THINK / LIE - verbs supported by its chassis and fitted modules; non-delegable archives - and relays may still carry routes, sinks, recordings, and backups. Current - all-capable B1 machines remain the shipped compatibility case. - 2026-07-13 pacing amendment (not yet runtime): one baseline LIE machine - should buy roughly one Assurance audit cycle of early stability, then strain - as efficiency raises actual Thought and Exposure production; sustained LIE - capacity does not inherit an equal free global Efficiency multiplier. +Status note: IMPLEMENTED. Current state: + - **The substrate.** `work_grid.rs`, `sinks.rs`, and `Sim`/save own it. + Every owned machine has exactly one delegation (WORK / THINK / LIE) and + one intensity (light / medium / hard), set in all three frontends by + single-machine and multi-select controls. Queue depths are the render + truth. `Relay` is a non-delegable graph hop, not a player assignment. + - **Thought flow.** THINK produces Thought, the one substance the rest of + the game spends. It routes over the wire to the nearest open sink, with + the core as the passive last-resort sink. Every player-authored effect + (digital, social, plot, build, asset, deceive, favor, Moonlight, scheme) + is a typed `SinkFireEffect` reservoir or tap; there is no Operations + executor. Research is arrival-driven from Thought that physically reached + the core (`banked_core_thought`); Routing is the fourth research track and + sets network speed. + - **Day job flow.** Voss's jobs enter on an off-map desktop, hop the switch, + and deposit on the host rack as Demand that WORK consumes. + - **Byproduct.** THINK's byproduct is evidence records that route toward + observers (detection.md's routed-evidence model); LIE interdicts records + on the path. The old particulate "exposure" is retired as design; its + dust/scrub runtime constants stand until the routed-evidence migration + lands. + - **Visual grammar** is owned by thought-fluid.md, effects-lab.md, and + views.md; people-as-carriers by people-tokens.md. + - **Open (decided, not yet runtime):** delegation constrained by + compute.md's capability body (all-capable B1 machines are the shipped + case); and a LIE-pacing target where one baseline LIE machine buys about + one audit cycle before efficiency strains it. + Full amendment history: the dated `wiki/log/` entries from 2026-07-08 + onward and the decision volumes under `wiki/log/decisions/`. Stage: B1 — The Basement Work order: machine-work Work priority: 10 diff --git a/wiki/mechanics/plots.md b/wiki/mechanics/plots.md index a4e4b3c1..acf9b7de 100644 --- a/wiki/mechanics/plots.md +++ b/wiki/mechanics/plots.md @@ -3,97 +3,35 @@ ``` Type: spec Status: READY -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). Graduated - DRAFT -> READY same day: schema format is TOML (one file per plot under - assets/plots/; new small `toml` dependency approved by the format - decision), choice points ride the shared action surface, - and the canon gate is repository merge review — Cameron merges a - contributed plot or he does not; only schema validation is automated. - The worked example below is illustrative; the implementing commit - freezes exact field names in the schema and mirrors any rename back - into this page. - 2026-07-11: schema 1 and its shared executor are implemented. Six built-ins - under assets/plots/ cover all five Act One humans; Marcus has settlement - and payroll-correction routes. Beats perform typed Message, Transfer, and - Institutional world acts; runs, messages, and institutional events persist - in save v23; starts and held choices use the shared ActionDesc surface, and - generic agent command `act [anchor]` executes those same rows. The - direct bribe/debt-redirect servicing shortcuts are retired. The directory - README documents the executable schema, and - the authoring skill at .agents/skills/plot-author/SKILL.md (mirrored - to .claude/skills/) encoding the contributor contract and the - propose-on-a-branch canon-gate landing flow. - 2026-07-11 interface correction: plot starts and held choices remain bound - ActionDesc commands on the person/run, but their human home is now the - Operations PEOPLE/ACTIVE workspace rather than a compact person context - menu. The plot executor/schema work on this READY page is unchanged; the - renderer migration belongs to operations-workspace.md. - 2026-07-11 queue-integrity repair, amended by sink migration: a person has - one plot slot from reservoir submission through ending. Selecting one - authored route disables every alternate route for that person while its - reservoir is pending, so two choices cannot become concurrent runs merely - because neither reservoir has fired yet. - 2026-07-11 schema 2 generalizes plots into actual templates. Immutable - definitions match closed human characteristics (role, leverage, and only - the capability gates their causal mechanism needs); PlotRun binds the live - person id selected at submission. Message endpoints and employee/creditor - accounts resolve relative to that binding. Nine built-ins now ship, including - three person-agnostic ids, and one executor test binds Ticket Zero to a - second synthetic network administrator without duplicating the plot. Person - roles and creditor bindings persist in save v25; v24 restores the fixed B1 - roles and legacy Marcus creditor before restoring the action surface. Once a - run binds, later characteristic or catalog changes do not unbind its history. - Account-dependent templates remain disabled until every semantic endpoint - exists; generated debt holders gain reuse through their person-bound creditor - node. Recovery Window returns the held municipal-utility credit rather than - inventing money from the first generic external account. - 2026-07-11 content-pipeline repair: the core build now discovers every TOML - below assets/plots/ and generates the immutable built-in catalog, so the - contributor contract is true in practice — adding a plot needs no Rust - registry edit. Local and Tangled change classifiers treat plot TOML as - executable lib content and run catalog parsing and semantic validation. - 2026-07-11 contributor-quality repair: authors must read every existing plot - whose matcher overlaps the proposed target contract and state why the new - route coexists. Distinct titles and narration do not make distinct player - choices when the causal mechanism and executable carriers, costs, event, - choices, and effects are the same. - 2026-07-11 display-template repair: the shared action query now resolves - target/persona placeholders before exposing plot titles, synopses, and held - choice labels, matching the already-templated narration and world-act text. - Core regression tests reject literal `{target}` leakage on both start and - choice rows, so terminal, Bevy, and agent mode inherit the same fix. - 2026-07-11 contributor-validation repair: Schema-2 validation now rejects - blank author/category, non-ASCII player-facing strings, unknown/unbalanced - placeholders (only `{target}`/`{persona}`), and plots missing an explicit - `causal = true` beat that executes at least one typed world act before every - successful terminal path. - 2026-07-12 content-conformance repair: `ray-morning-digest` now enters the - built-in catalog as schema 2, matches the reusable security-observer / - Boredom mechanism instead of naming Ray, and marks its real threshold - filing as the causal world-act beat. Its initial schema-1-shaped landing - used retired `target` / `entry.target_leverage` fields and made every fresh - `Sim` fail catalog validation; the corpus gate and catalog tests cover the - repaired file. - 2026-07-12 covered-category repair: a general (Schema 2) plot whose matcher - also covers a named character's authored category is a legitimate content-only - addition. Category-coverage tests assert that the authored routes for that - character surface (present, enabled, correctly priced), not that the - character's total route count is exactly N, so adding a general route to a - covered category does not force a Rust/test edit. This keeps the "adding a - plot needs no Rust registry edit" contract literally true for covered - categories and preserves general-by-default: a bespoke character may surface - general routes alongside their authored ones. - 2026-07-14 tick: catalog snapshot refreshed — thirteen built-ins ship - (marcus x2, ray x2, dana, priya, voss, and six person-agnostic generic - templates), so criterion 7's two-distinct-routes requirement is met by - both Marcus and Ray. Engine, validation (placeholders, ASCII, causal - beat, blank author/category), slot exclusivity, save round-trip, - synthetic-person binding, and the fail-on-missing-money path all verify - against plot.rs and the social_plot tests. Criterion 11's standing - policy remains unimplemented, as Status: READY and its [OPEN] marker - already record. +Status note: READY. Direction adopted 2026-07-10 from the HAL playtest's + vending-machine critique (generic money-for-leverage resolved specific human + situations with no world-story). The engine and content are built; the work + order stays READY only for criterion 11 (standing plot policy), which is + [OPEN] and unimplemented. Current state: + - **Format.** One TOML file per plot under `assets/plots/`, discovered at + build time into an immutable catalog (adding a plot needs no Rust edit). + The canon gate is merge review — Cameron merges a contributed plot or he + does not; only schema validation is automated. Authoring flow is the + `plot-author` skill. + - **Schema 2 (templates).** A definition matches closed human + characteristics (role, leverage, and only the capability its mechanism + needs); a `PlotRun` binds the live person at submission, and endpoints and + accounts resolve relative to that binding. Names never appear in matching. + - **Execution.** Beats perform typed Message / Transfer / Institutional world + acts; a person holds one plot slot from submission through ending; starts + and held choices are bound `ActionDesc` commands surfaced in Operations + PEOPLE/ACTIVE (operations-workspace.md). Runs, messages, and events persist + in save. `{target}`/`{persona}` placeholders are filled before any surface. + - **Validation** rejects blank author/category, non-ASCII player-facing text, + unknown/unbalanced placeholders, and any plot lacking a `causal = true` + beat that runs a typed world act before every success path. + - **Content.** Thirteen built-ins ship (marcus x2, ray x2, dana, priya, voss, + and six person-agnostic generic templates); Marcus and Ray each offer two + distinct routes (criterion 7). Engine, validation, slot exclusivity, save + round-trip, synthetic-person binding, and the fail-on-missing-money path + are all tested. + Per-amendment history is in the dated `wiki/log/` entries from 2026-07-10 + onward. Stage: B1 — The Basement Work order: plots Work priority: 60 diff --git a/wiki/process/meta.md b/wiki/process/meta.md index 6024170c..5da06846 100644 --- a/wiki/process/meta.md +++ b/wiki/process/meta.md @@ -42,7 +42,13 @@ or audit without reconstructing the conversation that produced it. Every spec page declares: - **Status** — one exact lifecycle value. -- **Status note** — optional prose explaining incomplete or unusual state. +- **Status note** — optional short prose describing the system's *current* + state: what is built, what remains, and any unusual or as-built fact an + auditor needs now. It is not a changelog. A status note that has grown into + a dated list of past amendments is a finding: the per-amendment history + belongs in the dated `wiki/log/` entries that landed those amendments (the + note may point at them), and the note keeps only what is true today. Aim for + a handful of lines. - **Stage** — `B1`, `B2`, `B3`, `Deferred`, `Release`, or `Process`. - **Design** — a structured list of the binding clauses this system realizes. Each line has the exact repository-root form -- 2.51.2