clone

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

main
miau-is-true / openspec / changes / add-rule-driven-automata / tasks.md
tasks.md 2.8K source

1. Automaton data and engine state

  • [x] 1.1 Define normalized level automaton schema { id, subject?, property, pattern, phase? } with object move/wait steps and optional cue/sound.
  • [x] 1.2 Add backward-compatible automata state entries with id, optional subject, property, pattern, phase, and active fields.
  • [x] 1.3 Activate property-carried automata from parsed SUBJECT IS PROPERTY, with optional subject restriction and transfer when the property word moves.
  • [x] 1.4 Implement player → parse/transform → automaton front-first movement → parse/transform → contact resolution using atomic push rules.
  • [x] 1.5 Advance phase once only when a player turn is accepted and at least one entity is active, including blocked automaton actions and explicit wait.

2. Events, Undo, replay, and solver

  • [x] 2.1 Extend settled events with automated entries reporting action, entity ID, from/to or blocked details, and optional cue/sound.
  • [x] 2.2 Include normalized automata state and phase in Undo/reset snapshots and verify exact restoration.
  • [x] 2.3 Extend replay and solver state keys to distinguish automata phase and active state and reproduce front-first movement.
  • [x] 2.4 Add deterministic fixtures for property transfer, blocked actions, wait, contacts, reset, Undo, replay, and solver exploration.

3. Mod validation and sharing

  • [x] 3.1 Validate optional subject, property vocabulary, object action tokens, cardinal deltas, pattern/phase bounds, cue/sound values, and unique IDs in local CommonJS mods.
  • [x] 3.2 Normalize automata into data-only shared payloads and reject unsupported or malformed fields without executing shared code.
  • [x] 3.3 Add atomic failure fixtures for malformed local and shared automata while preserving earlier registered packs.

4. Presentation and feedback

  • [x] 4.1 Derive current/next pattern feedback from automata phase and render it with accessible text and optional cue/sound.
  • [x] 4.2 Provide reduced-motion and mobile-safe beat feedback without changing simulation geometry or timing semantics.
  • [x] 4.3 Add visual fixtures for property transfer, blocked actions, current/next steps, and automated movement details.
  • [ ] 4.4 Apply the designer's D21 beat-strip review: one emoji tile, direction/wait glyph cells, and placement directly under the mobile ledger.

5. Verification

  • [x] 5.1 Run browser controls, rule changes, bundled CommonJS mod loading, and Undo coverage with automata-enabled and legacy levels.
  • [x] 5.2 Run deterministic solver/replay checks and the full Node suite.
  • [x] 5.3 Run production build and document visual review items before enabling an authored automaton in a default pack.
  • [ ] 5.4 Review settled desktop/mobile beat-strip frames with the designer after 4.4, then archive this change.