festifun/plan/lane-F-social.md
m3ultra 545f7a347d Plan: Phase 5 spec + directives round 4 (M10-M17, lanes E/F/G)
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>
2026-07-17 17:08:44 +10:00

1.1 KiB
Raw Permalink Blame History

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 modify annotate.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 __f4d debug 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: M13M15 acceptance passes with browser evidence, frontend npm run build clean, merged to main with synthetic end-to-end intact.