Skip to content

Latest commit

 

History

History
35 lines (28 loc) · 1.75 KB

scene-compile-pace.md

File metadata and controls

35 lines (28 loc) · 1.75 KB

Milestone — Scene compile pacing and visual_map stability

Goal: scene-compile must not emit unpaced cascading FadeIns when timing.json has no words, and yaml-generate must not retarget committed Manim visual_map rows. Related CLI paths (lint, compose, TTS, generate-all) fail closed instead of exiting 0 on empty work.

Branch / PR: cursor/scene-compile-pace-2ccd

Follows timestamps-fail-closed.md (#78). Closes the remaining hole in issue #56 (missing/empty Whisper words).

Shipped

  • pacing_violations requires timing.json words whenever any labeled story box is not pace: none (unlabeled images stay exempt)
  • linted_class_block_from_spec / scene-compile raise SceneGenerationError for paced labels when words are missing or empty
  • Explicit pace: none on every story box still compiles without words
  • discover_visual_map preserves existing manim scene / class (even when the class is missing from scenes.py or the file is empty)
  • Unused scene classes fill empty manim slots in file order (no positional overwrite of a committed class)
  • docgen lint exits 1 when a listed segment has no narration file
  • docgen compose with no args uses segments.default if nonempty, else segments.all (empty default no longer composes nothing and succeeds)
  • TTS raises TTSError when stripped narration is empty
  • generate-all / rebuild-after-audio wrap RuntimeError as ClickException without swallowing SystemExit from run_pre_push; empty segments.all is an error

Not this milestone

  • Clock / _TimedScene / dwell math (no docgen benchmark baseline bump)
  • Archived Playwright / Embabel / slides