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 rendered
1## 1. Contract and validation23- [ ] 1.1 Add strict validation for `properties[WORD].accent`,4 `properties[WORD].describe`, and unsupported glossary fields; reject packs5 atomically with field-specific errors.6- [ ] 1.2 Normalize glossary keys/values and derive each level's implemented7 custom-property set from `automata[].property` without adding behavior from8 glossary data alone.9- [ ] 1.3 Add loader, catalog, pack-service, CommonJS export, and shared-link10 tests for valid glossaries, malformed glossaries, missing glossaries, and11 atomic failure preservation.1213## 2. Board and ledger presentation1415- [ ] 2.1 Thread normalized glossary and level-property metadata through the16 catalog/stage presentation boundary.17- [ ] 2.2 Make board word roles and property colors data-driven while retaining18 core-property behavior and TICK fallback.19- [ ] 2.3 Make ledger roles and accessible rule details use the same metadata;20 avoid changing the D21 beat-strip geometry or timing.21- [ ] 2.4 Add focused renderer tests for a non-TICK custom property and for22 consistency between board and ledger classification.2324## 3. First-encounter teaching2526- [ ] 3.1 Add a progress-backed encounter store keyed by pack ID and property27 word, with legacy progress preserved.28- [ ] 3.2 Emit a stable card request containing tile, accent, description, and a29 level-derived example sentence before proof input is accepted.30- [ ] 3.3 Implement ENTER acknowledgement, accessible card copy, and repeat31 suppression within a pack while allowing the same word in another pack.32- [ ] 3.4 Expose the same description through inspect and ledger hover or33 keyboard-focus details without mutating gameplay state.3435## 4. Verification and coordination3637- [ ] 4.1 Add the desktop, 390x844 mobile, reduced-motion, and no-console-error38 browser fixture for a non-TICK imported custom-property pack.39- [ ] 4.2 Re-run the existing automata browser fixtures to ensure D21 beat-strip40 behavior remains unchanged.41- [ ] 4.3 Run the full Node suite, production build, strict OpenSpec validation,42 and relevant share/import flows.43- [ ] 4.4 Post the renderer/card evidence to the design inbox for D24 review;44 obtain a separate worlds-team handoff before bundling Clockwork.45- [ ] 4.5 Leave `pairs`/OPEN-SHUT implementation and acceptance to W13.