diff --git a/sessions/0026/SESSION-0026.0-TRANSCRIPT-2026-06-27T15-26--INPROGRESS.md b/sessions/0026/SESSION-0026.0-TRANSCRIPT-2026-06-27T15-26--INPROGRESS.md index 371586e..e397003 100644 --- a/sessions/0026/SESSION-0026.0-TRANSCRIPT-2026-06-27T15-26--INPROGRESS.md +++ b/sessions/0026/SESSION-0026.0-TRANSCRIPT-2026-06-27T15-26--INPROGRESS.md @@ -14,10 +14,56 @@ ## Launch prompt -_(launch prompt not captured at claim time)_ +Build scrub-driven altitude transitions in the simulator, per the approved design at +`docs/superpowers/specs/2026-06-27-scrub-driven-altitude-transitions-design.md`. Write the +implementation plan from that spec, review it, then execute it. Make the Altitude knob +position continuously drive the transition: dragging the dial scrubs the morph video's +currentTime and crossfades the two adjacent scale soundtracks by knob angle; hold-partway +(no auto-complete), fully reversible, re-roll the destination clip on each fresh approach, +scroll-wheel auto-scrubs one altitude then locks, lock-per-altitude preserved. Phase 1: +build against current morphs. Phase 2: re-bake all 154 morphs all-intra for smooth seeking, +re-push via git-LFS. Unit tests for pure scrub logic + extend Playwright E2E. + +## Plan + +> Anchor: design docs/superpowers/specs/2026-06-27-scrub-driven-altitude-transitions-design.md (R2a — ELIGIBLE) +> Session type: planning-and-executing (fused) — write the plan, then execute it, ship via §9. + +Scrub-driven altitude transitions. Continuous `pos` (float) drives morph `currentTime` + +two-soundtrack audio crossfade by `frac(pos)`; integer crossing commits + locks + re-rolls. +Phase 1 = interaction against current morphs; Phase 2 = all-intra re-bake (154 morphs, LFS). +Pure scrub logic kept separable + unit-tested; Playwright E2E extended to assert currentTime ++ audio gains track the dial and reverse on turn-back. + +### Progress (checkpoint @ Phase-1 done) + +- Plan: `docs/superpowers/plans/2026-06-27-scrub-driven-altitude-transitions.md` (approved "execute as-is"). +- **Phase 1 DONE** (branch `session-0026`, 5 commits): + - T1 `simulator/static/scrub.js` (pure UMD math) + `simulator/unit/scrub.test.js` (9 `node --test`). + - T2 two-element audio crossfade (`