Repository navigation
spec(automation): owner_voice_reel -- the 15 s owner-voice reel recipe as data (Closes #10279) - #10281
Merged
Conversation
…e as data (Closes #10279) The 2026-10-18 reel in the owner's voice (T27F deck frames, 999 voice-clone, 999 whisper captions, ffmpeg on the lab) was decided by lab-only JS glue. Its numbers and rules now live in specs/automation/owner_voice_reel.t27: - 30 fps, 15 s, 3 s CTA hold, voice offset 400 ms; - captions at y = 1600 (the slide rows occupy 1100-1400), 0xFFFF00, one word each; font size min(124, 940 / (len * 0.72)) in integers; - a word shows until min(next start, end + 350 ms); - music at 0.10, fade-out from 13.6 s; voice normalised to I = -15 LUFS. The measured reel's 21 word timings, lengths and drawn font sizes are data in the spec; the tests hold the formula to all 21 fc.txt font sizes and to three of its enable windows. One recorded deviation (caption 7 was two words) is counted, not hidden. Lab (t27c at 043cdea, zig 0.16.0): 8 of 8 tests pass, 0 vacuous, 3 invariants proved at comptime. 9 planted mutants, 9 caught. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #10279
What
specs/automation/owner_voice_reel.t27(moduleowner_voice_reel) holds the recipe of the 2026-10-18 15 s vertical reel in the owner's voice. Until now its numbers lived only in lab-only JS glue (caps.mjs,frames.mjs,fc.txton the Railway lab):The measured reel is data in the spec: the 21 whisper word timings, each caption's length in characters, and the font size the lab drew each caption at. The Russian words themselves stay out of the ASCII file; the layout needs only their lengths.
Tests (lab only, never the Mac)
t27c test-reportat 043cdea, zig 0.16.0, on the Railway lab:the_voice_ends_before_the_cta_hold: 10.16 s from 0.4 s ends at 10.56 s; 11.6 s is the longest voice that fits, and 11.601 s is refused.captions_never_overlap_on_the_lab_reelandoverlapping_timings_are_refused: the 21 real windows never overlap and end before the hold; out-of-order, zero-length and past-the-hold timings are refused. The windows equal three of fc.txt'senableranges exactly.font_sizes_match_the_lab_reel: 21 of 21 font sizes match fc.txt, 0 mismatches.the_caption_clears_the_slide_rows: the tallest caption with its border starts below y = 1400 and ends inside the frame.9 planted mutants, 9 caught: dropping the next-start clamp, tail 350 to 450, offset 400 to 900, char width 720 to 700, font cap 124 to 130, caption y 1600 to 1450 (fails at compile), fade-out 13.6 s to 14 s, CTA hold 3 s to 2 s, and
<=to<invoice_fits.Recorded, not hidden
one_word_per_captioncounts it and allows no other.This PR does not claim a review.
🤖 Generated with Claude Code