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>
18 lines
1.1 KiB
Markdown
18 lines
1.1 KiB
Markdown
# 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`](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:** M13–M15 acceptance passes with browser evidence, frontend `npm run build` clean,
|
||
merged to `main` with synthetic end-to-end intact.
|