From 0efed7427c7c106f94ce1d07f4e842cba96e5f36 Mon Sep 17 00:00:00 2001 From: calesthio Date: Sat, 18 Apr 2026 22:16:27 -0700 Subject: [PATCH] video-compose: catch TTS punctuation leaks in final review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a transcript_comparison check to VideoCompose._run_final_review that word-diffs the whisper/whisperx transcript against script.txt and fails loudly when the TTS engine literally voiced punctuation tokens (dot, dots, ellipsis, comma, dash, hyphen, period). Chirp3-HD did this to ellipses in a production run and it slipped past review; now it cannot. Also corrects the "tiny background video" gotcha in skills/core/hyperframes.md. After six renders of blaming HyperFrames CSS, the real root cause was 640x360 Pexels sources combined with a fit-and-pad pre-transform — HyperFrames was rendering the letterboxed input faithfully. Gotcha now walks through the ffprobe diagnostic and the scale-to-cover fix, and keeps the wrapper-div pattern for the right reasons (aspect mismatch handling, not framework bug workaround). Four regression tests cover the new check: punctuation-leak detection, clean-audio false-positive guard, graceful skip when inputs missing, and always-present transcript_comparison section. --- skills/core/hyperframes.md | 98 ++++++----- tests/tools/test_hyperframes_compose.py | 165 +++++++++++++++++++ tools/video/video_compose.py | 210 +++++++++++++++++++++++- 3 files changed, 431 insertions(+), 42 deletions(-) diff --git a/skills/core/hyperframes.md b/skills/core/hyperframes.md index b56378e2..3902eae1 100644 --- a/skills/core/hyperframes.md +++ b/skills/core/hyperframes.md @@ -288,54 +288,76 @@ Same pattern as Remotion. Things the upstream docs don't warn about but will cost you a 60-minute render to discover. Fix at author time, not at render time. -### Video elements need explicit size, in BOTH HTML attrs and `!important` CSS +### Full-frame background video: source-resolution trap (NOT a framework bug) -HyperFrames runtime applies inline `style="width:...px; height:...px"` to -every `