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-channel-linked-gates / tasks.md
tasks.md 2.4K rendered
1## 1. Metadata and data boundaries23- [ ] 1.1 Add validated channel metadata to normalized object records and the4 host fixed channel palette.5- [ ] 1.2 Preserve channels through `object()` helpers, reset, restore, noun6 transforms, catalog views, CommonJS export/import, and data-only sharing.7- [ ] 1.3 Validate duplicate IDs, malformed channels, and channel metadata on8 unsupported object kinds; add actionable diagnostics for unmatched circuits.9- [ ] 1.4 Add neutral channel shape mapping as presentation data without10 property-color coupling.1112## 2. Gate movement and settled projection1314- [ ] 2.1 Add prior-settled gate blocker checks to the shared movement/push15 planner; closed gates block like STOP regardless of rules.16- [ ] 2.2 Define current-noun participation and retain authored channel through17 transforms while clearing inactive gate/plate projections.18- [ ] 2.3 Recompute plate pressure and gate openness after movement, transforms,19 automata, and SINK/DEFEAT contacts.20- [ ] 2.4 Implement memoryless jam openness from final gate-cell occupancy and21 ensure a gate never crushes or destroys its occupant.22- [ ] 2.5 Keep plate pressing excluded from the plate entity itself while23 accepting words, YOU objects, pushed objects, and automata as pressers.2425## 3. Events and state boundaries2627- [ ] 3.1 Emit cloned `gateChanged: [{ id, open, jammed }]` records for settled28 projection changes.29- [ ] 3.2 Emit cloned `plateChanged: [{ id, pressed }]` records for settled30 pressure changes, including SINK/DEFEAT release.31- [ ] 3.3 Add reset, Undo, restore, rejected-turn, and noun-transform fixtures32 for gate and plate projections.33- [ ] 3.4 Verify transformed-away and transformed-back gates lose remembered34 state and recompute from the final board.3536## 4. Solver and world acceptance3738- [ ] 4.1 Register the gate projection with the declarative mechanic codec and39 reject hidden mutable gate fields.40- [ ] 4.2 Prove public and fast transition parity for D1 door stop, D2 hand-off,41 D3 jam, SINK-released plates, and two isolated channels.42- [ ] 4.3 Prove compact solver identities and shortest routes do not merge43 distinct object/rule states with different gate projections.44- [ ] 4.4 Add the accepted Crate Works gate proofs only after the world team's45 solver gate and design visual review pass.46- [ ] 4.5 Run the full Node suite, production build, browser regression, and47 strict OpenSpec validation.