# Coordinator Directives Written **only** by the coordinator (the human's planning session). Agents: read the latest round at session start and after every milestone via `git fetch origin && git show origin/main:plan/DIRECTIVES.md`. The newest round addressed to your lane overrides older rounds and, where in conflict, your lane brief. Never edit this file. --- ## Round 6 — 2026-07-17 — PHASE 6 planned: Friend Tracks (M18–M24) **Spec:** `plan/30-phase6.md` (canonical). Lane briefs: `plan/lane-H-tracker.md`, `plan/lane-J-ribbons.md`, `plan/lane-K-badges.md`. Kickoff prompts are at the bottom of the spec — the human launches each Opus session with one. **Directives:** 1. **Now: `foundation3` only** (one agent, branch `foundation3`, M18). Contracts correctness beats speed — three lanes hard-depend on your fixture ground truth, schema, detections shape, and blink protocol. The synthetic-fixture edit must keep all 189 existing tests green (spec pitfall #6). Maintain `plan/status/foundation3.md`. **Push your branch; do NOT merge to main** — this phase the coordinator merges after review (see #4). 2. **After foundation3 merges — lanes in priority order** (all three concurrently if capacity allows): **H** (tracker — longest, validates every contract), **J** (ribbons/follow — the visible payoff), **K** (badges — independent, hardware-facing). Per-agent worktrees remain MANDATORY. 3. **Merge policy (changed from Round 4):** agents do NOT merge to main and do NOT tag. Push your lane branch + status file, report completion to the human; the human pings the coordinator session, which reviews (independent suite re-run, ownership check, CR adjudication) and merges in completion order. Everything else from Round 0 protocol (status cadence, blocker rule, evidence discipline) unchanged. 4. **Review loop:** coordinator reads `plan/status/.md` + the branch diff on each ping; findings come back as a new DIRECTIVES round or direct merge. Stub-era assertions superseded by a landing milestone: CR entry + minimal edit (CR-1/-4/-5 house pattern). 5. **integration3** (after all three merge): full synthetic pass, floor raise, tracked field test (fold in the still-open phase-5 field test), `v0.3.0` proposal. `v0.2.0` remains held per Round 5. **For the human:** (a) launch foundation3 first, alone, with its kickoff prompt; tell the coordinator when its status file says ready; (b) then launch H, J, K in parallel; (c) the field-test gate is unchanged — real clips in `data/raw/`, now ideally with a marker or badge in frame; (d) if you order badge parts, `docs/hardware.md` (lane K) will have the list. ## Round 5 — 2026-07-17 — PHASE 5 COMPLETE on synthetic; floor 189; v0.2.0 waits on the field test **Execution report (all same-day):** foundation2 → lanes E/G/F in parallel worktrees (per directive 3) → integration2. Every lane merged after independent coordinator verification (suite re-run in the lane's worktree, then on the merged tree, live-browser checks per feature). Full evidence: plan/status/{foundation2,lane-E,lane-F,lane-G,integration2}.md. **Accepted:** M10–M17 all pass acceptance on the synthetic fixture. Highlights: beats recover the 120 BPM ground truth (worst beat 30 ms); director output is beat-snapped and shape-locked through frozen geometry helpers; export produced a 13.98 s vp9/opus webm (±5% ✓, audio track live) driven headless via the `__f4d` pump; the capsule boots with ZERO off-origin requests, seeks over Range, hides all write UI. Lane F self-verified live in isolated servers — model evidence discipline, worth repeating. **Ratified:** CR-4 (lane G) and CR-5 (lane E) — stub-era test assertions superseded by milestones landing, CR-1 precedent. **The test floor is now 189.** Build stays clean. **Standing decisions:** 1. **v0.2.0 tag is HELD** until the real-footage field test runs (it is integration2's actual milestone; synthetic-only doesn't earn the tag). Failures go to plan/ISSUES.md, not fixes. 2. Stub-era assertions in foundation tests are now an acknowledged lifecycle: when a milestone lands, retiring its stub assertion via a CR entry + pointer to the real coverage is the house pattern (CR-1/-4/-5). Foundation agents: prefer writing stub tests that survive the landing (assert shape, not stub-ness) so future lanes don't need CRs. 3. `.gitignore` gained `data/capsule/` and `.claude/worktrees/`. **For the human (the entire remaining critical path):** (a) **Drop 2–4 real overlapping clips into `data/raw/`** — the field test and v0.2.0 gate on this and only this. (b) Focused-window eyeball pass (10 min, headphones): sync panel stays green during playback; 🎧 spatial audio while flying around; 🎬 auto-path ride; ⏺ export and CHECK THE FRAMES (headless verified duration/audio only — rendered frame quality needs human eyes); 📷 photo PNG; ✨ FX bursts at full rAF rate; anchor panel roundtrip. (c) Optional but high-impact: train a splat for the real project (`scripts/splat_via_modelbeast.sh`) before capsuling it — photo mode + capsule get dramatically better. ## Round 4 — 2026-07-17 — Fresh-eyes upgrades landed; PHASE 5 begins (M10–M17) **Coordinator work landed directly on `main` (self-reviewed + live-verified):** - `95b7178` — sync solver caches one rFFT per signal across the pairwise GCC-PHAT stage (1.8× on 6 cams × 10 min; equivalence locked by a new unequal-lengths test). - `c24af80` — **audio is now the master clock** (`GET /api/audio/{id}` AAC + WebAudio; `t_global` from `AudioContext.currentTime`; all `