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-refresh-rules-after-contact-destruction / proposal.md
proposal.md 1.2K source

Why

Contact destruction can remove a word after the last rule scan of a turn. The settled rule table then contains a sentence that no longer exists, and the next input can be blocked by a phantom property. Tidewater has a concrete ROCK IS STOP reproduction and cannot be bundled reliably until this is fixed.

What Changes

  • Recompute active rules, sentence spans, property indexes, and derived automata carriers after contact removals before exposing settled state.
  • Make the settled turn's rule deltas and control status reflect the surviving board.
  • Add a regression for a STOP word destroyed by SINK, including the next move, Undo, reset, and state restoration.
  • Preserve the established single contact pass and its SINK → DEFEAT → WIN order; broader contact cascades and rule precedence changes remain separate work.

Capabilities

New Capabilities

None.

Modified Capabilities

  • rule-engine: settled rules and derived properties must match surviving word entities after contact destruction.

Impact

  • Engine turn settlement and rule indexes; returned state and event rule deltas.
  • Undo, reset, replay/restore, and solver consumers of settled snapshots.
  • Tidewater re-verification against the corrected rule behavior.