Files
calesthio 50891a75b7 hyperframes: add HTML/CSS/GSAP as a parallel composition runtime
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.
2026-04-18 18:37:00 -07:00

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. See skills/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_outputs
  • balance_checks
  • subtitle_checks
  • audio_notes

Common Pitfalls

  • Good master cut, broken platform variants.
  • Support graphics clipping in vertical exports.
  • Audio loudness shifting between source and generated sections.