diff --git a/.sisyphus/plans/modifier-profiles-t3.md b/.sisyphus/plans/modifier-profiles-t3.md index 6d55808..442cea7 100644 --- a/.sisyphus/plans/modifier-profiles-t3.md +++ b/.sisyphus/plans/modifier-profiles-t3.md @@ -357,7 +357,7 @@ Wave FINAL (4 parallel reviewers): **Commits**: `feat(engine): {kind} effect primitive` (×15) -- [ ] 19. **Custom descriptor validator** +- [x] 19. **Custom descriptor validator** **What to do**: `packages/chess/src/modifiers/custom/validate.ts` — validates a CustomModifierDescriptor: - Every primitive kind is in PRIMITIVE_REGISTRY @@ -372,7 +372,7 @@ Wave FINAL (4 parallel reviewers): **Commit**: `feat(engine): custom modifier descriptor validator` -- [ ] 20. **Zod schema for custom descriptor serialization** +- [x] 20. **Zod schema for custom descriptor serialization** **Recommended Agent Profile**: `unspecified-low` @@ -380,7 +380,7 @@ Wave FINAL (4 parallel reviewers): **Commit**: `feat(engine): custom modifier Zod schema` -- [ ] 21. **Custom modifier library persistence** +- [x] 21. **Custom modifier library persistence** **What to do**: `packages/chess/src/modifiers/custom/library.ts` — localStorage at `houserules:custom-modifiers:v1`. Mirror T1 library API. @@ -390,7 +390,7 @@ Wave FINAL (4 parallel reviewers): **Commit**: `feat(engine): custom modifier library persistence` -- [ ] 22. **Engine integration — applyCustomDescriptor** +- [x] 22. **Engine integration — applyCustomDescriptor** **What to do**: `packages/chess/src/modifiers/custom/apply.ts` — when a profile's perType/perInstance entry references a custom kind, resolve the descriptor from per-engine registry, execute its primitive list on the target piece. @@ -400,7 +400,7 @@ Wave FINAL (4 parallel reviewers): **Commit**: `feat(engine): apply custom modifier descriptors` -- [ ] 23. **Multi-profile stacking in apply/reconcile** +- [x] 23. **Multi-profile stacking in apply/reconcile** **What to do**: Extend `applyProfileToSession` → `applyProfilesToSession(session, profiles, layout)`. Extend `reconcileProfileSwap` → `reconcileProfilesSwap(session, oldProfiles, newProfiles, layout)`. Stacking per ADR-4 rules apply across multiple profiles.