Phase 04: Drag Interaction
- 2 plans in 2 waves
- Plan 01: Migrate to modern drag-drop delegates, lift animation, haptics
- Plan 02: Themed insertion line, invalid zone feedback, snap-back animation
Ready for execution
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 3: Visual Flattening
- Analyzed existing flatten implementation in ItineraryTableViewController
- Documented current bucket-based approach (beforeGames/afterGames)
- Recommended pure sortOrder-based sorting within each day
- Identified ItineraryFlattener extraction for testability
- Documented determinism test patterns
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tasks completed: 3/3
- Verified requirements coverage (CONS-01 through CONS-04)
- Migrated 13 tests to Swift Testing (expanded to 22)
- Deleted old XCTest file
SUMMARY: .planning/phases/02-constraint-validation/02-01-SUMMARY.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tasks completed: 3/3
- Add edge case tests (10 new tests)
- Create API documentation for Phase 4
- Run full test suite (22 constraint tests pass)
SUMMARY: .planning/phases/02-constraint-validation/02-02-SUMMARY.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document public API for drag-drop integration:
- isValidPosition() for position validation
- validDayRange() for precomputing valid days
- barrierGames() for visual highlighting
- Integration patterns for ItineraryTableViewController
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 2: Constraint Validation
- 2 plans in 1 wave (parallel)
- Both plans autonomous (no checkpoints)
Plan 02-01: Migrate 13 XCTest tests to Swift Testing
Plan 02-02: Add edge case tests and document constraint API
Note: ItineraryConstraints is already fully implemented.
This phase verifies and standardizes tests.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 2: Constraint Validation
- Discovered ItineraryConstraints already implemented
- 17 XCTest tests cover all CONS-* requirements
- Integration with ItineraryTableViewController verified
- Main work: migrate tests to Swift Testing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 1 verified:
- 8/8 requirements satisfied (DATA-01 through DATA-05, PERS-01 through PERS-03)
- 34 tests passing (22 unit + 12 integration)
- SortOrderProvider with 6 methods for sortOrder calculation
- Trip extension with day derivation methods
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 01-01: Reframe must_haves.truths to user-observable behaviors
- 01-01: Remove unimplemented key_link (wiring happens in later phases)
- 01-02: Add test case for DATA-04 (custom items at any position)
- 01-02: Add must_haves.truths entry for custom item flexibility
- 01-02: Document LocalItineraryItem is standalone (no sibling models needed)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>