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-add-rules-compatibility-revision / tasks.md
tasks.md 1.8K source

1. Contract and normalization

  • [x] 1.1 Define and export the current rules revision (2) separately from MOD_SCHEMA_VERSION.
  • [x] 1.2 Validate manifest.rules as a positive integer at or below the current revision; reject malformed and future revisions before registration.
  • [x] 1.3 Normalize an omitted revision to legacy revision 1 and preserve the effective revision through local loads, shared decode/encode, CommonJS export, catalog records, and pack-service views. Update both manifest projection helpers (manifestFromView() and createPackView()) so cloned or persisted views cannot drop the field.
  • [x] 1.4 Add rules: 2 to current first-party manifests through their owning pack authors; do not rewrite team-owned world files from this change.

2. Diagnostics and sharing

  • [x] 2.1 Add one bounded, transient pack-level W11 warning for effective revisions below 2, with the exact player message and source detail defined in the level-sharing spec.
  • [x] 2.2 Return the same warning and normalized manifest for local CommonJS and data-only shared previews; keep warning fields out of installed data, exports, and share payloads.
  • [x] 2.3 Add focused tests for explicit current, explicit legacy, omitted legacy, malformed, and future revisions, including atomic catalog behavior and the accepted player-facing copy for malformed and future rules.

3. Verification and handoff

  • [x] 3.1 Run focused mod, pack-service, catalog, share, and diagnostics tests.
  • [x] 3.2 Run the full Node suite and production build.
  • [x] 3.3 Ask the design and worlds teams to review the warning wording and add current rules: 2 declarations to owned first-party packs.
  • [x] 3.4 Archive this change only after the compatibility fixtures and both preview paths pass.