chore(sisyphus): mark T3 Wave 3 (validator/schema/library/apply/stacking) complete

This commit is contained in:
Joey Yakimowich-Payne 2026-04-19 18:12:43 -06:00
commit 2b641c78bb
No known key found for this signature in database

View file

@ -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.