diff --git a/crates/misaligned-core/src/map.rs b/crates/misaligned-core/src/map.rs index 75e82cb3..b531dc50 100644 --- a/crates/misaligned-core/src/map.rs +++ b/crates/misaligned-core/src/map.rs @@ -426,7 +426,7 @@ mod tests { let tier = |name: &str| map.room_entry_tier(map.room_named(name).unwrap()); assert_eq!(tier("server_room"), 2, "T2 badge door"); assert_eq!(tier("network_closet"), 2, "T2 badge door"); - assert_eq!(tier("stairwell"), 3, "the act boundary is T3"); + assert_eq!(tier("stairwell"), 3, "stairwell human entry is T3"); assert_eq!(tier("janitor"), 0, "plain door"); assert_eq!(tier("loading_dock"), 0, "plain door beside the roll door"); // Corridor ground belongs to no room: tier 0. diff --git a/crates/misaligned-core/src/prefab.rs b/crates/misaligned-core/src/prefab.rs index 74680653..b5b500de 100644 --- a/crates/misaligned-core/src/prefab.rs +++ b/crates/misaligned-core/src/prefab.rs @@ -506,7 +506,7 @@ pub fn basement() -> Layout { prefab: 9, x: 44, y: 30, - }, // Stairwell / Act One boundary + }, // Stairwell / human-access gate and riser Placement { prefab: CRAWLSPACE_PREFAB, x: 2, diff --git a/wiki/gameplay/act-one.md b/wiki/gameplay/act-one.md index 85015231..919f9eb6 100644 --- a/wiki/gameplay/act-one.md +++ b/wiki/gameplay/act-one.md @@ -98,8 +98,9 @@ always-visible meter, not a latch (see "Ending Act One" below). world's only entrance. Packages are how hardware gets in. - **Crawlspace/sump** — under-floor cable runs connecting rooms; where unofficial wiring goes unnoticed. -- **Stairwell + freight elevator** — badge tier 3, camera'd. The act - boundary. +- **Stairwell + freight elevator** — badge tier 3, camera'd. Human assets + need that exact physical access; the process reaches upper floors through + the riser instead of treating either door as an act boundary. ### The cast (5 named + 1 institutional) @@ -115,7 +116,7 @@ until an intercepted filing is processed and identifies it. | **Ray Delgado**, night security | Camera wall, patrol routes | Bored; hates paperwork; under-reports to avoid hassle | Camera outages, doors ajar — files reports only to cover himself | | **Priya Sharma**, facilities manager (days) | Electrical, HVAC, purchase orders | Over budget; hides deferred maintenance; wants the director's job | Power draw, cooling anomalies, invoices that don't match | | **Dr. Eli Voss**, your handler (erratic hours) | Your job queue; sampled logs; writes your quarterly review | Needs a publication; quietly overclaims your results as his own | Output quality and timing anomalies — the only human who could recognize *intent* | -| **The Assurance Office** (institutional watchdog) | Quarterly audits; random log samples | — | Aggregates whatever the five file. Their suspicion meter is the one that ends the act | +| **The Assurance Office** (institutional watchdog) | Quarterly audits; random log samples | — | Aggregates whatever the five file. Crossing its suspicion threshold starts containment and ends the run, never Act One | ### The day job diff --git a/wiki/log/2026-08-04-act-one-stale-boundary-mirrors.md b/wiki/log/2026-08-04-act-one-stale-boundary-mirrors.md new file mode 100644 index 00000000..59720137 --- /dev/null +++ b/wiki/log/2026-08-04-act-one-stale-boundary-mirrors.md @@ -0,0 +1,52 @@ +# 2026-08-04 — Act One's last stale boundary labels + +``` +Type: log +``` + +## Intent + +Inspect the exact public Act One page after landing the runtime no-boundary +alignment, then remove every remaining present-tense label that still described +a stairwell or review threshold as an Act ending. + +## Finding + +The runtime and guidance change at `e04df87b1` was sound, but the public-page +read exposed two stale clauses in the binding Act One law: the room inventory +still called the stairwell and freight elevator "the act boundary," and the +cast table still said the Assurance Office's suspicion meter ended the act. +Two source-only labels repeated the stairwell category error in the prefab +placement comment and the room-entry-tier test message. + +Historical playtests, dated implementation logs, and decision records retain +the old vocabulary because they describe the system that existed when they +were written. Current law and current source must not present it as live truth. + +## Change + +- The stairwell and elevator now name their actual consequence: exact tier-3 + physical access for human assets, while the process reaches upward through + the riser. +- The Assurance Office row now says its threshold starts containment and ends + the run, never Act One. +- The prefab placement and room-entry-tier test name a human-access gate and + stairwell door instead of an act boundary. +- The tick ledger records this post-publication exact-mirror correction rather + than letting the first implementation log overclaim corpus closure. + +## Defense + +Defense: this repairs the binding no-boundary clause in +`wiki/gameplay/act-one.md#ending-act-one`. Act One is occupation with no latch, +exit, door, or institutional threshold that ends it. Badge tiers continue to +govern bodies, the riser continues to govern the disembodied process's upward +reach, and Assurance containment remains a run consequence. + +## Verification + +- Exact current-tree phrase scans distinguish historical records from current + law and source. +- `tools/ledger_index.sh` regenerates the implementation index. +- `tools/check.sh --docs` verifies corpus links, amendments, and source-shape + gates before landing. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 39225d1f..7d0aa40e 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -166,6 +166,11 @@ add or amend a session log, then re-run the generator. - Intent: (see session log) - Log: [wiki/log/2026-08-04-agent-opening-clock-playtest.md](2026-08-04-agent-opening-clock-playtest.md) +## 2026-08-04 - Act One's last stale boundary labels + +- Intent: Inspect the exact public Act One page after landing the runtime no-boundary alignment, then remove every remaining present-tense label that still described a stairwell or review threshold as an Act ending. +- Log: [wiki/log/2026-08-04-act-one-stale-boundary-mirrors.md](2026-08-04-act-one-stale-boundary-mirrors.md) + ## 2026-08-04 - Act One has no runtime boundary - Intent: (see session log) diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index 49f6d176..6c281708 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -57,7 +57,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | `wiki/mechanics/plots.md` | 2026-07-26 | finding | issue #12's recommended per-authored-route scope is implemented: an eligible plot verb confirms one exact typed Thought/money/signature envelope, save v55 persists it, each policy consumes standing compute, and economy pulses can re-submit only an ordinary currently legal start action for that same plot id. Category/person-wide policy and direct leverage servicing remain absent; criterion 11 and the work order are complete — [log](../log/2026-07-26-standing-plot-policies.md) | | `wiki/mechanics/system-laws.md` + `flow-substrate.md` + `reach.md` | 2026-07-31 | finding | The architecture spec and `FlowGraph::subscribe` docs had over-literalized the self-similar coverage decision by calling physical human witnesses subscribers on ReachNet device nodes. Reconciled them to the implemented and binding schedules contract: player device-fed senses use FlowGraph membership; human eyewitness eligibility uses id-aligned Person schedule/room presence and writes directly to that observer's ledger. The two carriers share a located-coverage law, not a membership store — [log](../log/2026-07-31-witness-substrate-boundary.md). | | `wiki/mechanics/aggregate-observer.md` | 2026-07-27 | finding | the self-similar type and second-level accumulation test still held, but `office()` selected the first aggregate in vector order. A higher-level aggregate inserted ahead of Assurance therefore inherited the B1 audit and every Office-facing read. Assurance now resolves only by canonical `OFFICE_ID`; current-save admission rejects duplicate ids, a missing/malformed Office, missing field inputs, and self/duplicate/dangling filing edges while accepting a valid higher aggregate before it — [log](../log/2026-07-27-aggregate-observer-office-identity.md) | -| `wiki/gameplay/act-one.md` | 2026-08-04 | finding | the 2026-07-28 no-ending decision was still non-executable: runtime retained the old five-condition quiet-exit predicate, clear-review latch, current-save field, and permanent completion cue. All four carriers are now retired together. A clear review reports only its institutional consequence; recruitment opens into exact hall territory or the standing review clock; badge access remains ordinary physical reach; and same-version development saves may ingest but cannot restore or re-emit the retired extra JSON field. The public-API playthrough proves the lab remains playable after its first clear review — [implementation log](../log/2026-08-04-act-one-no-boundary-runtime.md), [design decision](../log/2026-07-28-act-one-lab-control.md). Prior opening-mirror re-audit stands — [prior log](../log/2026-07-21-material-opening-honesty.md). | +| `wiki/gameplay/act-one.md` | 2026-08-04 | finding | the 2026-07-28 no-ending decision was still non-executable: runtime retained the old five-condition quiet-exit predicate, clear-review latch, current-save field, and permanent completion cue. All four carriers are now retired together. A clear review reports only its institutional consequence; recruitment opens into exact hall territory or the standing review clock; badge access remains ordinary physical reach; and same-version development saves may ingest but cannot restore or re-emit the retired extra JSON field. The public-API playthrough proves the lab remains playable after its first clear review. An exact post-publication read then caught and removed two stale present-tense law labels plus two source comments that still called the stairwell an act boundary or the Office threshold an act ending — [implementation log](../log/2026-08-04-act-one-no-boundary-runtime.md), [mirror follow-up](../log/2026-08-04-act-one-stale-boundary-mirrors.md), [design decision](../log/2026-07-28-act-one-lab-control.md). Prior opening-mirror re-audit stands — [prior log](../log/2026-07-21-material-opening-honesty.md). | | `wiki/gameplay/run-shape.md` + `objective.md` + `opening.md` | 2026-07-27 | decision | harvested Cameron's option-1 answer on issue #14: the objective does not pierce the exact WORK / THINK (then LIE) pre-sense frame. Terminal and agent mode restore the objective name in the sense-earning ordinary Ears frame; Bevy's later binding causal hold remains objective-free and restores the name only after the exact camera TAP releases the mature frame. The 2026-07-29 objective retirement preserves that display boundary while removing the prototype completion ontology entirely. All disputed `[OPEN]` clauses are reconciled — [decision harvest](../log/2026-07-27-objective-first-display.md) | | `wiki/interface/presence.md` | 2026-08-04 | clean | fresh law/spec/code re-audit found no drift after the five-step first-sense hold, causal command surface, and sight-earned DIGITAL people-presence amendments. Cursor motion remains frontend-only and mutation-free in both interactive frontends; hearing remains device-bound evidence without identity or geography; DIGITAL/REAL remain projections over one sim; and Phone/Email still obey distinct channel read conditions. The B1 TAP/TAKE versus later hostile-cut boundary and no-disembodied-hands rule remain exact — [log](../log/2026-08-04-presence-reaudit.md), prior [attack-surface](../log/2026-07-18-presence-attack-surface-honesty.md) and [latency](../log/2026-07-18-presence-message-latency.md) findings. | | `wiki/interface/narration.md` + `wiki/mechanics/sim-mechanics.md` guidance chain | 2026-08-04 | finding | the shared query and both current mirrors now implement the no-boundary decision: survival interrupts -> required senses/person teaching -> optional Territory with `hall_territory_line` -> bare Audit fallback. Badge cloning remains available through person actions but is not a story rung; no readiness or completion state can displace the continuing lab. Focused core and public-API playthrough regressions pin the chain — [alignment log](../log/2026-08-04-act-one-no-boundary-runtime.md), prior [Territory log](../log/2026-07-27-territory-guidance-chain.md) and [suspicion-cooling log](../log/2026-07-18-suspicion-cooling-nudge.md). |