- commit
- 38875f91256d6ca6871209ed64b15653e143254c
- parent
- 9e91d4229e810be7370a9f4b6592c6cbc83ae173
- author
- Dami <dami.etoile@gmail.com>
| M | docs/ | 13 | ++++++++++++- |
@@ -1,6 +1,6 @@
11 # Runtime architecture review22 3-2026-09-23. Scope: browser runtime, deterministic engine, mod/share data, test and authoring boundaries. This review records the baseline and the migration contract for [the active OpenSpec change](../openspec/changes/modularize-runtime-boundaries/proposal.md). The visual design and world files have separate owners.3+2026-09-23. Scope: browser runtime, deterministic engine, mod/share data, test and authoring boundaries. This review records the baseline and the migration contract for [the archived runtime-boundaries OpenSpec change](../openspec/changes/archive/2026-09-24-modularize-runtime-boundaries/proposal.md). The visual design and world files have separate owners.44 55 ## Baseline66 @@ -96,3 +96,14 @@ This closes a new combinatorial risk introduced by stacked alternatives. It does
9696 ## Review boundary9797 9898 The concurrent designer controls `docs/design.md` and `docs/design.html`; the world team controls `docs/worlds/`, `mods/worlds/`, and its OpenSpec change. This review does not rewrite those files. Design or level-authoring consequences should be sent through the existing inbox files. The current architecture work retains the public nzip URL and existing mod format.99+100+## Current follow-through101+102+2026-09-23. The initial refactor is complete. The active work now has separate OpenSpec tracks, so engine semantics, content, and presentation can be accepted independently:103+104+1. **D22 motion:** finish Gift and Workshop scene transitions, verify mobile touch targets against rendered geometry, obtain designer acceptance for Win, then run the public scene/share flow before updating the stable preview. `src/stage/events.js` now owns DOM input wiring outside `stage.js`; the Pause hit map follows its visible tile rectangles, including inert 14px gaps.105+2. **W3 solver and W2 world handoff:** the compact, fast solver includes object nouns and automata phases in its versioned state key and reuses authoritative turn phases. A sequential `check:worlds` gate covers core, Crate Works, Tidewater, and Clockwork while Crossword is revised for W6. The first core proof 02 failed its author contract under PUSH-over-STOP; its corrected lesson is `Stuck at the end`, where removing `ROCK IS PUSH` clears the jam. Finish W3 only after the complete gate passes on that correction.106+3. **W6 content convergence:** rule precedence and stacked parsing are implemented and tested. The worlds team owns the Crossword rework and Tidewater `shell-game` search-space reduction; their solver checks remain open. A `LIMIT` result on a forbidden-rule search is not evidence that a rule is required.107+4. **Mechanic stressors:** review the worlds team's channel-linked gate/plate and step-off FRAIL drafts as data contracts first. For each mechanic, require authored validation, phase order, complete snapshot/restore, compact state-key registration, replay/Undo, settled events, and browser presentation before shipping a default proof. Gate jam history needs explicit state; a FRAIL leftover can be represented by a noun change if the chosen semantics survive differential tests. Record the final choices in focused OpenSpec changes before implementation.108+109+The next structural cleanup should stay bounded: unify rendered hit-region geometry beyond Pause and Win, split the remaining `juice.consume()` event reducer by effect family, and consolidate overlapping mod/engine validation. Each slice needs a behavioral fixture tied to an observed risk; file length alone is not a success metric.