plan/20-phase5.md is the phase-5 canonical spec: M10 beats/onsets, M11 auto-director, M12 cinematic export (lane E); M13 anchor manager + friend tags, M14 photo mode, M15 moment FX (lane F); M16 server-side camera paths, M17 static memory-capsule export (lane G). foundation2 freezes the new contracts (beats.json, camPath JSON, paths table, PATCH anchors, __F4D_API_BASE__ / manifest.capsule, transport/scene3d hooks) and pre-wires all UI so parallel lanes never touch shared files. DIRECTIVES Round 4 records the fresh-eyes upgrades (FFT caching, WebAudio master clock, spatial audio; suite floor now 121), ratifies the additive contract amendments, and sets run order: foundation2 -> E, G, F (own worktrees, mandatory) -> integration2 (real-footage field test, v0.2.0 proposal). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
Lane F — Social & fun UX (branch lane/f-social)
Scope: phase-5 milestones M13 + M14 + M15 (anchor manager + friend tags, photo mode, moment FX) — see 20-phase5.md.
- Owned files:
frontend/src/anchorPanel.js,frontend/src/photoMode.js,frontend/src/fx.js. Nothing else — buttons, imports, and hooks are pre-wired by foundation2. - Contracts you consume (frozen):
PATCH /api/anchors/{id}+ existing anchor GET/POST/DELETE,scene3d.focusOn(x,y,z),scene3d.setHelpersVisible(bool),scene3d.addObject/removeObject, the M8 annotation flow (drive it, don't modifyannotate.js). - This is the "friends connect & remember" lane — labels, colors, and jump-to should feel like tagging people, not editing database rows. Keep interactions one-click where possible.
- All verification is in-browser: use the
__f4ddebug pump (phase-5 pitfall #2) and put screenshots/measurements in your status file. No backend tests to write; the suite must simply stay green.
Done when: M13–M15 acceptance passes with browser evidence, frontend npm run build clean,
merged to main with synthetic end-to-end intact.