docs: create roadmap (4 phases)
Phases: 1. Semantic Position Model: DATA-*, PERS-* (foundation) 2. Constraint Validation: CONS-* (rules engine) 3. Visual Flattening: FLAT-* (display bridge) 4. Drag Interaction: DRAG-* (UI layer) All 23 v1 requirements mapped to phases.
This commit is contained in:
68
.planning/STATE.md
Normal file
68
.planning/STATE.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# Project State: Itinerary Editor
|
||||
|
||||
## Project Reference
|
||||
|
||||
**Core Value:** Drag-and-drop that operates on semantic positions (day + sortOrder), not row indices - so user intent is preserved across data reloads.
|
||||
|
||||
**Current Focus:** Beginning Phase 1 - Semantic Position Model
|
||||
|
||||
## Current Position
|
||||
|
||||
**Phase:** 1 - Semantic Position Model
|
||||
**Plan:** Not yet created
|
||||
**Status:** Awaiting plan creation
|
||||
|
||||
```
|
||||
Progress: [----------] 0%
|
||||
Phase 1: [----------] Not Started
|
||||
Phase 2: [----------] Not Started
|
||||
Phase 3: [----------] Not Started
|
||||
Phase 4: [----------] Not Started
|
||||
```
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total Requirements | 23 |
|
||||
| Completed | 0 |
|
||||
| Current Phase | 1 |
|
||||
| Plans Executed | 0 |
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
### Key Decisions
|
||||
|
||||
| Decision | Rationale | Phase |
|
||||
|----------|-----------|-------|
|
||||
| UITableView over SwiftUI List | SwiftUI drag-drop lacks insertion line precision | Pre-planning |
|
||||
| (day, sortOrder) position model | Row indices break on reload; semantic position is stable | Pre-planning |
|
||||
| Insertion lines (not zones) | User wants precise feedback on exact drop location | Pre-planning |
|
||||
| Invalid drops rejected (snap back) | Cleaner than auto-clamping; user knows what happened | Pre-planning |
|
||||
|
||||
### Learned
|
||||
|
||||
- Previous attempts failed due to row-based thinking instead of semantic positioning
|
||||
- Travel was incorrectly treated as structural ("travelBefore") instead of positional
|
||||
- Hard-coded flatten order ignoring sortOrder caused reload issues
|
||||
|
||||
### TODOs
|
||||
|
||||
None yet - awaiting Phase 1 planning.
|
||||
|
||||
### Blockers
|
||||
|
||||
None currently.
|
||||
|
||||
## Session Continuity
|
||||
|
||||
**Last Session:** Project initialized, roadmap created
|
||||
**Next Action:** Create plan for Phase 1
|
||||
|
||||
### Context for Next Session
|
||||
|
||||
Starting fresh. Phase 1 establishes the semantic position model that everything else depends on. Requirements DATA-01 through DATA-05 define the model structure, PERS-01 through PERS-03 define persistence behavior. The key insight from research: row indices are lies, semantic positions are truth.
|
||||
|
||||
---
|
||||
*State initialized: 2026-01-18*
|
||||
*Last updated: 2026-01-18*
|
||||
Reference in New Issue
Block a user