diff --git a/wiki/interface/clinical-frame.md b/wiki/interface/clinical-frame.md index c3913700..adbf9951 100644 --- a/wiki/interface/clinical-frame.md +++ b/wiki/interface/clinical-frame.md @@ -325,10 +325,13 @@ amber as generic UI highlight. `Sim::current_nudge` now has a renderer-neutral, read-only attention projection: the current condition, an honest response-source anchor, an honest effect-target anchor, and a broad existing response family. It adds no sim/save state and no -dispatch path. The opening, for example, connects the owned host's existing -THINK verb to the known environmental monitor's Ears target. +dispatch path. Before perception, the underlying opening condition may connect +the owned host's THINK verb to the environmental monitor's Ears target, but the +shared occluder exposes neither anchor nor nudge. The first earned sense retires +that boundary before ordinary attention projection becomes visible. -Bevy renders a small breathing `NOW / ` mark at the placeable target. +In the perceived world, Bevy renders a small breathing `NOW / ` mark +at the placeable target. That separate world mark carries the recommendation unless the exact target tile is already carried by an explicit machine selection; in that case the selection frame and stable mode control are enough, and the rail's `NEXT` diff --git a/wiki/interface/digital-read.md b/wiki/interface/digital-read.md index 4be2e8c1..433fcc9d 100644 --- a/wiki/interface/digital-read.md +++ b/wiki/interface/digital-read.md @@ -51,6 +51,10 @@ Status note: IMPLEMENTED. Adopted 2026-07-15 from the Fable playtest - **Cold-player sweep (8).** The capture set was reviewed visually (not just structurally); evidence under `assets/reference/art-direction/b1-digital-read-*.png`. + - **Opening boundary.** The read begins only when the first earned sense + reveals the ordinary world. Before then the shared opening is true black + with only WORK / THINK (then LIE), so no sentence, beam, clock, receipt, + or reticle can leak through. REAL stays deferred for standing world sentences and the drill-tier card. The focused action explanation is interaction UI shared by both Bevy dialects; terminal and agent rows retain their compact projection. @@ -182,15 +186,16 @@ that perception rendered. ## Player surface -The default Bevy experience is the read: open the game, see the dark -field, your presence beam, and language exactly where your knowledge is. -The thirty-second bar is answerable from the world alone: what changed -(its sentence is on the thing), who might have seen it (the observer is -named in that sentence with their band), what you are racing (threat clock -on the rail, unchanged), what verb is on the thing under your cursor (the -verb and its full receipt at the reticle). Agent mode and the terminal -already speak this dialect; criterion is parity of meaning, not identical -composition. +The default Bevy experience first shows only the shared mode words on true +black. When the first earned sense reveals the ordinary DIGITAL world, the +read appears: a dark field, the presence beam, and language exactly where +knowledge is earned. From that boundary onward the thirty-second bar is +answerable from the world alone: what changed (its sentence is on the thing), +who might have seen it (the observer is named in that sentence with their +band), what the player is racing (threat clock on the rail), and what verb is +on the thing under the cursor (the verb and its full receipt at the reticle). +Agent mode and the terminal speak the same post-perception dialect; criterion +is parity of meaning, not identical composition. ## Acceptance criteria diff --git a/wiki/interface/material-dark-frame.md b/wiki/interface/material-dark-frame.md index 1cdc26b7..3d905682 100644 --- a/wiki/interface/material-dark-frame.md +++ b/wiki/interface/material-dark-frame.md @@ -60,7 +60,8 @@ deliberate- frame and sensor-darkness spirit binds, the fit-to-known-content def superseded for the material camera), computer-visual-language.md (claim mark; chassis form is earned by sight; close-range claim read is the cast pool once the box exists), views.md (F3 flat sensorium keeps the schematic read), feel-floor.md (READY — feel -rails/pads and the build beam; opening presence beam is the same light family), +rails/pads and the build beam; the first earned material world's presence beam +is the same light family), mechanics/cursor.md (channel evidence / Seen form) ## Why this spec exists @@ -143,8 +144,9 @@ exactly the fiction. ### The dark rig -The tick-zero light rig is the machines' own light and a near-nothing ambient -— the institutional fluorescent overhead is gone from the default scene. A +The world rig beneath the silent tick-zero occluder, and visible after that +boundary retires, is the machines' own light and a near-nothing ambient — the +institutional fluorescent overhead is gone from the default scene. A live camera adds only low neutral shadow fill. It does **not** reveal the directional flood used by the dev work light: the level and its machines must remain the apparent sources in ordinary play. This is sensor presentation, not diff --git a/wiki/interface/presence.md b/wiki/interface/presence.md index c844b375..139e5e47 100644 --- a/wiki/interface/presence.md +++ b/wiki/interface/presence.md @@ -34,10 +34,11 @@ is a **cursor** — your attention, never an avatar: - **Telemetry** (affirmed 2026-07-07; beam-first 2026-07-09) — your own hardware always reports power, temperature, and load in panels, regardless of fog. You don't see your racks, you feel them: - proprioception, not sight. At tick one that honesty goes further: - the material frame shows only a **presence beam** where you are — - not a pictured chassis — until sight earns form - (material-dark-frame.md). + proprioception, not sight. The persisted silent opening deliberately + withholds even those ordinary panels and the world frame until the first + earned sense. Once that boundary retires, material shows only a + **presence beam** where you are — not a pictured chassis — until sight + earns form (material-dark-frame.md). - **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 — schematic, no live data; not diff --git a/wiki/interface/terminal.md b/wiki/interface/terminal.md index 1f15170e..e42523a0 100644 --- a/wiki/interface/terminal.md +++ b/wiki/interface/terminal.md @@ -13,8 +13,9 @@ Status note: adopted and implemented in the same PR as the design corpus's band motion in one sentence. 2026-07-10 objective-inspect pass: with the cursor on the host rack, the INSPECT block renders the objective's victory predicate as wrapped dim prose under the card facts - (wiki/mechanics/objective.md player surface); the cursor starts there, - so the explanation is on screen from tick one. + (wiki/mechanics/objective.md player surface); once the ordinary world is + visible, the cursor starts there and keeps the explanation on screen. + Whether the objective should pierce the silent opening remains [OPEN]. 2026-07-11 Operations amendment: uppercase `I` opens one full-frame INTEL / PEOPLE / PERSONAS / ACCOUNTS / SCHEMES / ACTIVE workspace. Strategic actions move there; compact context menus retain only actions on @@ -26,6 +27,11 @@ Status note: adopted and implemented in the same PR as the design corpus's reach links/nodes on shared physical anchors; REAL retains physical/fog glyphs and the sparse feel trace. Both consume renderer-neutral reach state, and the flip remains frontend-only. + 2026-07-20 opening reconciliation: current runtime suppresses the cursor, + map, sidebar, objective, clock, nudge, and action path behind the shared + mode-only boundary until the first earned sense. The objective's disputed + first-display timing remains [OPEN] in objective.md / Tangled issue #14; + this spec records the implemented frontend boundary without deciding it. Stage: Process Design: - wiki/interface/terminal-first.md#the-terminal-is-a-first-class-frontend @@ -166,14 +172,15 @@ At terminal size ≥ 70×22 (hard minimum; below it, a plain size warning): ## Act -- **The clock is always on screen.** Day and tick in the sidebar at all - times; every log line carries its tick. An agent (or a human) must be - able to answer "when did that happen" from any single frame. -- **The story spine survives every frame.** Objective is followed by the - current threat and `now:` nudge; the pinned footer names how to open the - focused anchor's actions. Earned unpaid debt replaces the generic audit / - pilot summary until it is serviced. Secondary detail never displaces these - three reads. +- **The clock begins with the perceived world.** Once the first earned sense + retires the shared opening boundary, day and tick stay in the sidebar and + every log line carries its tick. Before then the available mode words are + the complete frame; there is no honest world clock to display. +- **The story spine survives every perceived-world frame.** From that same + boundary onward, Objective is followed by the current threat and `now:` + nudge; the pinned footer names how to open the focused anchor's actions. + Earned unpaid debt replaces the generic audit / pilot summary until it is + serviced. Secondary detail never displaces these three reads. - **Never color alone.** Suspicion meters print their band names; PAUSED is written, not merely tinted; selection is reverse-video **plus** a `▸` marker. diff --git a/wiki/interface/views.md b/wiki/interface/views.md index 04a5d80f..c631935a 100644 --- a/wiki/interface/views.md +++ b/wiki/interface/views.md @@ -22,6 +22,9 @@ Status note: Implemented through the 2026-07-14 final cross-dialect audit. projection as Bevy. The final Bevy audit pairs opening, audio, and covered- hall DIGITAL/REAL frames at identical complete persisted and frontend state; green material fog audits and exact-image review close criteria 3-7 and 9. + Since the 2026-07-18 silent opening landed, the opening pair is now the + untouched mode-only tick-zero state: its black occluder makes DIGITAL versus + REAL deliberately unobservable until the first earned sense. Audio remains capture-device event evidence in both dialects, never room fog or geography; semantic captures may pulse briefly at the subscribed instrument. Stage: B1 — The Basement @@ -257,8 +260,10 @@ criterion 8 and the terminal half of criteria 3-4. Three deterministic Bevy sibling pairs now exercise the epistemic boundaries that matter rather than presenting two hand-staged lookalikes: -- `opening-digital` / `opening`: Unknown around host telemetry and the same - attention anchor; +- `opening-digital` / `opening`: originally audited Unknown around host + telemetry and the same attention anchor; the later silent-opening amendment + now stages the untouched mode-only state in both dialects, proving that no + host telemetry, anchor, or world representation leaks through the occluder; - `ears-digital` / `ears`: one subscribed audio instrument and event pulse without any promoted room fog or inferred source geometry; - `hall` / `hall-material`: the same covered data hall with machines, people, diff --git a/wiki/log/2026-07-20-post-fire-4-merge-audit-repairs.md b/wiki/log/2026-07-20-post-fire-4-merge-audit-repairs.md new file mode 100644 index 00000000..5d6de436 --- /dev/null +++ b/wiki/log/2026-07-20-post-fire-4-merge-audit-repairs.md @@ -0,0 +1,67 @@ +# 2026-07-20 — Post-Fire #4 merge audit repairs + +``` +Type: log +``` + +## Intent + +Complete the post-Fire #4 merge audit through current `main`, with the final +review centered on the continuous-witness amendment at `3a1effcc7`. + +## Findings + +### Beacon's financial-mail interpretation + +The Revision 04 Beacon report said that financial records were implemented as +messages. Exact runtime inspection showed otherwise: the tested build still +had four scheduled channels, while TAP LEDGER created financial raw intel +directly from a device capability tag. The unused `MessageChannel::Financial` +branch remained the open overload already tracked by the `financial-mail` +work order and Tangled issue #11. + +The historical report now preserves Beacon's observation and adds an explicit +editorial correction rather than letting a playtest log masquerade as current +implementation truth. + +### Opening-boundary mirrors + +The amendment correctly scoped the binding witness law and narration owner to +begin at the first earned sense. Several dependent current specs still +described the superseded pre-2026-07-18 surface: a cursor, map, telemetry, +presence beam, clock, story spine, and DIGITAL read visible from tick zero. +Current runtime and `opening.md` instead expose only WORK / THINK (then LIE) on +true black until real Ears perception retires the shared boundary. + +This was documentation drift, not a runtime defect. The objective's separate +first-display dispute remains explicitly open in `objective.md` and Tangled +issue #14; this repair records current frontend behavior without deciding it. + +## Changed + +- Beacon's report now distinguishes its original interpretation from the exact + four-channel runtime and the still-open financial-mail decision. +- Terminal clock and witness-spine guarantees now begin with the perceived + world, while the status note preserves the open objective-display question. +- Cursor, basement map, and presence contracts now distinguish the mode-only + opening from the first earned world frame and its host presence beam. +- DIGITAL read and the clinical frame now suppress sentences, receipts, + anchors, and `NOW` guidance before perception. +- The current views audit records that the opening DIGITAL/REAL pair is now + intentionally indistinguishable beneath the occluder. +- The material dark rig is named as underlying world presentation, not a + visible tick-zero frame. + +No simulation, save state, frontend code, or adopted design changed. + +## Defense + +One persisted opening state must have one description everywhere it reaches. +Before perception, silence is the honest interface. After perception, the +continuous witness resumes immediately and every existing map, clock, nudge, +receipt, and focused-action guarantee remains binding. + +## Checks + +- `./tools/check.sh --docs` +- `git diff --check` diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 2a5c7216..d2f8ca95 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -16,6 +16,11 @@ add or amend a session log, then re-run the generator. - Intent: Audit the oldest uncovered scale-law slice against current runtime and repair one class of implementation vocabulary that had become ordinary player copy. - Log: [wiki/log/2026-07-20-scale-human-language.md](2026-07-20-scale-human-language.md) +## 2026-07-20 - Post-Fire #4 merge audit repairs + +- Intent: Complete the post-Fire #4 merge audit through current `main`, with the final review centered on the continuous-witness amendment at `3a1effcc7`. +- Log: [wiki/log/2026-07-20-post-fire-4-merge-audit-repairs.md](2026-07-20-post-fire-4-merge-audit-repairs.md) + ## 2026-07-20 - Tick 126: the witness begins with perception - Intent: Audit the stalest unclaimed corpus slice after harvested decisions and the persistent findings queue were empty, then resolve one live contradiction rather than inventing new work. diff --git a/wiki/mechanics/cursor.md b/wiki/mechanics/cursor.md index 0415a7fc..7a09f315 100644 --- a/wiki/mechanics/cursor.md +++ b/wiki/mechanics/cursor.md @@ -20,8 +20,9 @@ Status note: implemented 2026-07-07 on the cursor-senses branch. The walking events and recordings name their feed; recent semantic events may pulse only at that instrument. 2026-07-09 (feel-floor): tick-one no longer seeds blueprint room topology. 2026-07-09 (beam-first): - pre-tap material presence is a **beam of light** only; Seen shows the - whole lit form (material-dark-frame.md). 2026-07-10: a known reachable + the first earned material world shows the host as a **beam of light** only; + the preceding silent opening shows no cursor or world, and Seen later shows + the whole lit form (material-dark-frame.md). 2026-07-10: a known reachable sensor may ping cold at its shared anchor before sight (criterion 11). 2026-07-11 placement amendment: the existing people identity projection now lives in Operations PEOPLE; the shared label/glyph gates remain @@ -182,16 +183,18 @@ without the sense coverage that earns it.** ## Player surface -- One cursor, always visible, in both frontends; the inspect card - (sidebar in terminal, panel in Bevy) live-updates as it moves. -- The opening beats: at tick one the material map is dark except the - host **presence beam** (material-dark-frame.md): no feel rails, pads, - chassis, or blueprint room traces. The first issued Voss job teaches - the work route and unlocks the floor's subordinate feel-light - (feel-floor.md). Tapping the env monitor's audio feed (Ears — reach.md) - brings source-tagged events, recordings, and a brief pulse at that device; - the surrounding map remains unchanged. Splicing its camera floods coverage - into Seen — first a data channel, then geography and picture. +- Once the first earned sense reveals the ordinary world, one cursor remains + visible in both frontends; the inspect card (sidebar in terminal, panel in + Bevy) live-updates as it moves. The preceding mode-only opening has no cursor. +- The opening beats: tick zero is absolute black with only the available mode + words. Ears retires that boundary; the first earned material frame is dark + except the host **presence beam** (material-dark-frame.md), with no feel + rails, pads, chassis, or blueprint room traces. The first issued Voss job + teaches the work route and unlocks the floor's subordinate feel-light + (feel-floor.md). The env monitor's audio feed brings source-tagged events, + recordings, and a brief pulse at that device; the surrounding map remains + unchanged. Splicing its camera floods coverage into Seen — first a data + channel, then geography and picture. ## Acceptance criteria @@ -238,10 +241,10 @@ without the sense coverage that earns it.** topology (walls/doors/floors); unearned rooms stay dark; tick one does not seed blueprint room mass or inspect `[blueprint]` bay lines from a subnet map (feel-floor.md); blueprint never paints foreign - machine chassis; owned machines report via telemetry in panels but - do not paint a material chassis before Seen (pre-sight host = presence - beam); blueprint tiles show no live state and convert to Seen only when - visual coverage arrives. + machine chassis; after the silent boundary retires, owned machines report + via telemetry in panels but do not paint a material chassis before Seen + (pre-sight host = presence beam); blueprint tiles show no live state and + convert to Seen only when visual coverage arrives. 9. **Remembered:** a tile seen once and lost renders its dimmed snapshot (never live data); inspect shows the last-seen timestamp; diff --git a/wiki/playtests/2026-07-18-playtest-beacon-r04.md b/wiki/playtests/2026-07-18-playtest-beacon-r04.md index 2f7c1eda..d5a1c57e 100644 --- a/wiki/playtests/2026-07-18-playtest-beacon-r04.md +++ b/wiki/playtests/2026-07-18-playtest-beacon-r04.md @@ -205,6 +205,13 @@ behind network access. The `finance` panel shows the breadcrumb: "TAP LEDGER on the known accounting carrier → process ledger → siphon / redirect." +**Editorial correction (2026-07-20):** this interpretation was not true of +the tested build. The four implemented scheduled message channels remained +Phone, Email, Filing, and Network. TAP LEDGER captured +`RawIntelKind::FinancialFlow` directly from a financial-capability tag; +`MessageChannel::Financial` was an unused overload, not delivered mail. The +open `financial-mail` work order and Tangled issue #11 still own that decision. + ## Bugs ### Bug 1: `task` command parser missing 6 of 12 asset tasks diff --git a/wiki/world/places/basement-map.md b/wiki/world/places/basement-map.md index c301583c..aa63b7fe 100644 --- a/wiki/world/places/basement-map.md +++ b/wiki/world/places/basement-map.md @@ -126,8 +126,9 @@ carved by code. ## Player surface -The map renders with fog-of-vision from tick one — the opening beat of the -game is literally not being able to see. Rooms label on hover/inspect. +The shared mode-only opening renders no map. When the first earned sense +retires that boundary, the map appears under fog-of-vision — the first world +beat is literally not being able to see. Rooms label on hover/inspect. ## Acceptance criteria