Three viewer-facing fixes bundled.
1. Captions now track voice exactly
WordCaption was clamping each word to a 0.28s minimum frame budget. When narration sped up (up to 1.5×) to fit a click window, captions visibly lagged the voice — every page would finish a few hundred ms after the spoken line. Fixes:
- Drop the per-word floor when voice is provided; let the highlight track the voice exactly.
- Cap the effective caption span at the segment duration so a sequence cut-off can't make captions outrun the on-screen voice.
- Pick the latest started caption page over an earlier still-fading one — a slow page-out can no longer visually block a page that's already started speaking.
2. Verification stamps over the video
New animated overlay drawn at the EXACT moment the agent declared each goal's outcome — a green check (pass), red cross (fail), or grey dash (skipped) with the goal's shortLabel below it. 1.8s lifetime, de-overlaps when goals end close together. Punctuates the recording so viewers see "this thing was just verified" without having to wait for the outro checklist.
Hand-drawn SVG (no emoji) with stroke-dash drawing animation, spring scale-in, and label slide-up.
3. Demo discipline — kills the "click and re-check the same thing" loop
The agent was clicking + screenshotting + re-snapshotting + re-clicking the same surface multiple times per goal. From the viewer's perspective, that's dead video — the same thing happening over and over with no forward progress.
Both fast and meticulous prompts now open with an explicit:
ONE GOAL = ONE DEMO BEAT — ACT (1–3 user actions) → VERIFY (one check) → OUTCOME → STOP. The first verification IS the verdict. Once you've seen the success state once, your next message is OUTCOME. No 'just to be sure' second screenshot.
The stuck-loop tripwire now fires on the second occurrence (was third) and explicitly names the cases: re-screenshotting / re-snapshotting / re-clicking / re-typing a surface you already touched in this goal.
Versions kept in sync
package.json→ 1.4.7plugin/.claude-plugin/plugin.json→ 1.4.7v1tag force-pushed to point at this commit