# Theme C invest / narrow / defer decision Status: provisional after Phase 3 scaffolding Date: 2026-08-10 ## Decision: **Invest** (narrowed to Speaker ID first, Corrections protocol ready) ### Evidence - Phase −1 action service landed; legacy + CCv2 share mutation semantics. - Non-blocking ClipService APIs prevent cold ffmpeg joins from the bridge. - Packaged CCv2 Speaker ID workspace mounts behind feature flag with transcript-scoped keys, revisioned commands, and ClipTransport T0 (base64). - Corrections revisioned command/ack service exists; apply/export duplicate-safe. - Browser harness tests cover audio identity, transcript switch, and keyboard input suppression. - PlaybackHost contract extracted for Theme D without inventing word timings. ### Narrowing - Do **not** remove the legacy Speaker ID fragment path (Phase 9 criteria). - Speaker ID CCv2 flag is **default-on** (Phase 5). Keep flag-off rollback (`TX_SPEAKER_ID_WORKSPACE_COMPONENT=0`) for one release window. When the workspaces package is missing, the page falls through to legacy automatically. - Corrections CCv2 UI migration follows Speaker ID default-on; protocol is ready and legacy Corrections Studio decisions already route through `CorrectionsActionService`. - Phase 4 voice confirm/reject still use legacy session callbacks/facades (not yet revisioned `SpeakerIdActionService` commands); waived for default-on. ### Defer / escalate - Full SPA + Python API remains deferred until written evidence that CCv2 remount/bytes/focus limits block product goals after default-on soak.