From b83e5778707607045a5ef0d933adfd04e1818850 Mon Sep 17 00:00:00 2001 From: m3ultra Date: Thu, 16 Jul 2026 10:06:01 +1000 Subject: [PATCH] DIRECTIVES round 3: v0.1.0 accepted; phase 4 = anchor polish + real-footage field test Co-Authored-By: Claude Fable 5 --- plan/DIRECTIVES.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/plan/DIRECTIVES.md b/plan/DIRECTIVES.md index bc76bcc..05498d3 100644 --- a/plan/DIRECTIVES.md +++ b/plan/DIRECTIVES.md @@ -4,6 +4,51 @@ Written **only** by the coordinator (the human's planning session). Agents: read --- +## Round 3 — 2026-07-16 — Integration review: v0.1.0 ACCEPTED; polish + field test next + +**Coordinator review of the integration work (independently verified):** `main` == `origin/main` +(d313c8d), tag `v0.1.0` on e5d6b2c. Re-ran the suite: **101 passed**; frontend build clean. The +M8 acceptance test is faithful (forward-projects ground truth, no self-confirmation); `resolve.py` +is clean orchestration over lane B's frozen primitives; CR-1/CR-2 correctly adjudicated and +strictly additive; camPath's Catmull-Rom parameterization maps exactly to three.js segment +lookup (checked). The live-browser M8/M9 verification methodology was sound given the +hidden-tab rAF throttle. **v0.1.0 accepted.** + +**Ratification:** Round 2 was written by the integration agent; DIRECTIVES.md is coordinator-only. +Content verified accurate — ratified as written. Rule stands for future rounds. + +**Review findings (all polish; none block the tag):** +1. **Anchor stacking — the one real wart.** Each annotation creates a NEW anchor, so the + documented two-view "refine" flow leaves BOTH the view-1 fallback anchor and the view-2 + triangulated anchor, identically labeled (reproduced: 2 anchors for 1 object). On real + footage the fallback can be far off and there is no way to remove it — no + `DELETE /api/anchors/{id}`, no UI delete. +2. `docs/ideas.md` (spec §5 future-extensions note) was never created. +3. Human focused-browser M4 sync eyeball still open (carried from Round 2). + +**Directives — Phase 4 (one agent, branch `phase4/polish-field-test`):** +1. **Polish pass (small, do first):** + - When an annotation resolves for an event that already has a resolved anchor from a prior + annotation of the same event, **update that anchor in place** (supersede the fallback with + the triangulation) instead of creating a sibling. Keep per-annotation `resolved_anchor_id` + history consistent. + - Add `DELETE /api/anchors/{id}` + a small delete affordance in the UI (e.g. in the + annotation panel or anchor list). Additive API only; file a CR entry noting it. + - Create `docs/ideas.md` (gaussian splatting, MP4 fly-through export, realtime ingest, + multi-modal audio analysis — from the spec's future-extensions list). + - Suite must stay ≥ 101; add tests for supersede + delete. +2. **Field test protocol (the real milestone):** when the user drops 2–4 real overlapping clips + into `data/raw/`, run `ingest → sync → reconstruct → events → serve`; record in + `plan/status/phase4.md`: per-pair sync confidence, offsets, COLMAP registration rate, + which milestones survived contact with real footage. **File failures as entries in a new + `plan/ISSUES.md` rather than rushing fixes** (per plan/10-integration.md item 4). +3. Maintain `plan/status/phase4.md`; same evidence discipline. + +**For the human (unchanged + one new):** (a) open the app in a normal focused browser window +once and confirm the sync panel stays green during continuous playback; (b) shoot or collect +2–4 overlapping clips of the same performance for the field test; (c) optionally set +`GEMINI_API_KEY` before `events` to see real moment labels. + ## Round 2 — 2026-07-16 — Integration complete; v0.1.0 shipped **Integration merged to `main` (e5d6b2c) and tagged `v0.1.0`.** M8 (annotation→3D correction +