# Status — foundation3 (Phase 6a / M18) ## Round 6 — 2026-07-17 — STATUS: in_progress **Directives acknowledged:** round 6 of plan/DIRECTIVES.md. Directive #1: `foundation3` only, branch `foundation3`, push — do NOT merge. Contracts correctness beats speed; keep 189 green. **Acceptance checklist** (M18, plan/30-phase6.md §M18): - [ ] 1. Synthetic fixture: two moving markers rendered via the existing camera projection; `data/work/track_truth.json` derived through that projection (Three.js scene space) - [ ] 2. DB: `tracks` + `track_points` (contract #2) + helpers add/get/set_points/patch/delete - [ ] 3. API: GET /api/tracks, PATCH/DELETE /api/tracks/{id}, POST /api/tracks/solve (degrades), manifest `has_tracks` + conscious test_api key-set edit + CR - [ ] 4. CLI: `track [--detect-only|--solve-only]` - [ ] 5. Backend stubs: tracker_detect.py / tracker_solve.py (NotImplementedError + full contracts) - [ ] 6. Frontend: friendTracks.js stub wired into main.js loop; #btn-friends + #friends-panel; state.tracks loaded when manifest.has_tracks - [ ] 7. Capsule: bake api/tracks (additive) + conscious bundle-structure test edit + CR - [ ] 8. Tests for every new route/helper; suite ≥ 189 + new; all green **Done this round:** branch `foundation3` cut from main (HEAD 56e569f). Read all canonical specs + every file M18 touches. Baseline confirmed pending (running `uv run pytest -q`). **Blockers / questions for coordinator:** none yet. **Next:** implement steps 1–8 in order; re-run full suite after the fixture edit and at the end.