clone

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

main
miau-is-true / openspec / changes / archive / 2026-09-24-scale-solver-state-search / tasks.md
tasks.md 2.6K rendered
1## 1. Baseline and state inventory23- [x] 1.1 Record current solver route, expansion, time, and memory baselines for core, Word Lab, and representative Crossword, Crate Works, Tidewater, and Clockwork proofs.4- [x] 1.2 Inventory every field in settled engine snapshots and identify which fields determine future transitions, including automata phases and current transformation nouns.5- [x] 1.3 Add a regression that restoring a settled state and taking one step matches direct play for noun chains, automata, removal, and rule edits.67## 2. Canonical compact codec89- [x] 2.1 Implement authored-ID slot tables and a versioned byte codec for object existence, cell, noun, and automata phase.10- [x] 2.2 Add encode/decode and key-stability fixtures for reordered object arrays, removed entities, changed nouns, and changed automata phases.11- [x] 2.3 Define the dynamic-mechanic codec registration boundary and reject unregistered state fields; prove gate and crumble example states do not collide.1213## 3. Memory-bounded search1415- [x] 3.1 Add a reusable breadth-first core with compact blobs, a queue head, and predecessor links.16- [x] 3.2 Replace the CLI solver's full-snapshot frontier and growing path strings with that core.17- [x] 3.3 Compare shortest paths, LIMIT counts, BYPASS flags, `--replay`, and already-won behavior with the pre-change solver on representative packs.18- [x] 3.4 Separate player-pushed-word BYPASS from all-word-motion HANDS-OFF and test automaton-driven word movement.1920## 4. Equivalent fast transitions and constraints2122- [x] 4.1 Extract a search transition boundary that reuses current parser, movement, transform, automata, and contact semantics without presentation events or Undo history.23- [x] 4.2 Differential-test public `step()` and `wait()` against the fast transition across W6 stacked rules, PUSH/STOP, DEFEAT/WIN, transformation chains, SINK removal, and Clockwork phases.24- [x] 4.3 Make `--forbid` reject rules active initially or in any intermediate rule-evaluation phase; verify a rule that disappears before the turn settles.25- [x] 4.4 Enable the fast transition in the solver only after route parity and performance checks; retain the authoritative fallback.2627## 5. Verification and worlds handoff2829- [x] 5.1 Rerun representative worlds at their documented search caps and report route, expansion, elapsed time, and peak memory deltas to the worlds team.30- [x] 5.2 Run the full Node suite, production build, mod loading, browser controls, rule-change and Undo flows, and strict OpenSpec validation.31- [x] 5.3 Coordinate the per-proof search-budget field and bundled-world CI gate with the separate world-authoring change.