Separates creative grammar (renderer_family) from technical engine (render_runtime) so HyperFrames can stand alongside Remotion as a first-class runtime instead of masquerading as a Remotion sub-case. Locks runtime choice at proposal stage and enforces it end-to-end: the schemas require it, video_compose routes by it, the reviewer fails closed on silent swaps, and a parametrized contract test walks every pipeline manifest to ensure each planning-stage skill explains the conversation to the user. Adds hyperframes_compose (scaffold/lint/ validate/render/doctor/add_block), a playbook -> CSS style bridge, and vendored HyperFrames Layer 3 skills from commit d291358, pinned via PROVENANCE.md for future re-sync. Final_review now records render_runtime_used and runtime_swap_detected so compose lies are catchable after the fact.
2.4 KiB
Compose Director - Hybrid Pipeline
When To Use
Render the hybrid project so source media, support graphics, and audio all remain coherent across outputs.
Runtime Routing (MANDATORY first step)
Read edit_decisions.render_runtime. Hybrid work typically sticks with Remotion because source footage + React support overlays compose cleanly in one pass:
render_runtime="remotion"— default. Source footage via<OffthreadVideo>, support graphics as React components, one render.render_runtime="hyperframes"— pick only when the support layer is HTML/GSAP-native (e.g., animated text callouts, registry blocks). Source footage is still possible via<video class="clip">but lose some of the Remotion component stack. Seeskills/core/hyperframes.md.render_runtime="ffmpeg"— rare on this pipeline; implies no generated support layer.
Silent runtime swap is a CRITICAL governance violation. Escalate blockers per AGENT_GUIDE.md before substituting.
Pass proposal_packet to video_compose.execute() so the tool's in-tool swap-detection check runs against the proposal directly instead of being skipped.
Prerequisites
| Layer | Resource | Purpose |
|---|---|---|
| Schema | schemas/artifacts/render_report.schema.json |
Artifact validation |
| Prior artifacts | state.artifacts["edit"]["edit_decisions"], state.artifacts["assets"]["asset_manifest"] |
Edit logic and support assets |
| Tools | video_compose, audio_mixer, video_stitch, video_trimmer, color_grade, audio_enhance |
Final assembly and polish |
| Playbook | Active style playbook | Output consistency |
Process
1. Verify Source And Support Balance
The final render should still look like a source-led video with support, not a collage of unrelated systems.
2. Check Variant Integrity
For each output variant, verify:
- crop safety,
- text safety,
- subtitle legibility,
- audio consistency.
3. Keep Audio Coherent
Source dialogue, narration, music, and effects should feel like one mix, not separate layers fighting for space.
4. Use Render Metadata
Recommended metadata keys:
variant_outputsbalance_checkssubtitle_checksaudio_notes
Common Pitfalls
- Good master cut, broken platform variants.
- Support graphics clipping in vertical exports.
- Audio loudness shifting between source and generated sections.