clone

a browser grid puzzle game where you push words around to rewrite the rules of each level

Record mechanics and world integration roadmap

Dami committed 38875f9
commit
38875f91256d6ca6871209ed64b15653e143254c
parent
9e91d4229e810be7370a9f4b6592c6cbc83ae173
author
Dami <dami.etoile@gmail.com>
1 file changed, +12 -1
Mdocs/architecture-review.md13++++++++++++-
M docs/architecture-review.md +12 -1
@@ -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.