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-custom-property-presentation / tasks.md
tasks.md 2.3K source

1. Contract and validation

  • [ ] 1.1 Add strict validation for properties[WORD].accent, properties[WORD].describe, and unsupported glossary fields; reject packs atomically with field-specific errors.
  • [ ] 1.2 Normalize glossary keys/values and derive each level's implemented custom-property set from automata[].property without adding behavior from glossary data alone.
  • [ ] 1.3 Add loader, catalog, pack-service, CommonJS export, and shared-link tests for valid glossaries, malformed glossaries, missing glossaries, and atomic failure preservation.

2. Board and ledger presentation

  • [ ] 2.1 Thread normalized glossary and level-property metadata through the catalog/stage presentation boundary.
  • [ ] 2.2 Make board word roles and property colors data-driven while retaining core-property behavior and TICK fallback.
  • [ ] 2.3 Make ledger roles and accessible rule details use the same metadata; avoid changing the D21 beat-strip geometry or timing.
  • [ ] 2.4 Add focused renderer tests for a non-TICK custom property and for consistency between board and ledger classification.

3. First-encounter teaching

  • [ ] 3.1 Add a progress-backed encounter store keyed by pack ID and property word, with legacy progress preserved.
  • [ ] 3.2 Emit a stable card request containing tile, accent, description, and a level-derived example sentence before proof input is accepted.
  • [ ] 3.3 Implement ENTER acknowledgement, accessible card copy, and repeat suppression within a pack while allowing the same word in another pack.
  • [ ] 3.4 Expose the same description through inspect and ledger hover or keyboard-focus details without mutating gameplay state.

4. Verification and coordination

  • [ ] 4.1 Add the desktop, 390x844 mobile, reduced-motion, and no-console-error browser fixture for a non-TICK imported custom-property pack.
  • [ ] 4.2 Re-run the existing automata browser fixtures to ensure D21 beat-strip behavior remains unchanged.
  • [ ] 4.3 Run the full Node suite, production build, strict OpenSpec validation, and relevant share/import flows.
  • [ ] 4.4 Post the renderer/card evidence to the design inbox for D24 review; obtain a separate worlds-team handoff before bundling Clockwork.
  • [ ] 4.5 Leave pairs/OPEN-SHUT implementation and acceptance to W13.