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.6 KiB

Compose Director - Podcast Repurpose Pipeline

When To Use

Render the podcast-derived outputs with audio fidelity as the top priority. The visuals need to support the speech, not compete with it.

Runtime Routing (HARD CONSTRAINT — Remotion or FFmpeg only)

Phase 1 deferred from HyperFrames. edit_decisions.render_runtime must be "remotion" (audiograms, composed outputs) or "ffmpeg" (pure-audio-led clip exports). HyperFrames caption-burn parity is deferred, and podcast outputs lean on Remotion's word-level caption stack.

  • If edit_decisions.render_runtime == "hyperframes", stop. Re-open the idea stage and surface the constraint to the user. Never silently rewrite the runtime.
  • Per AGENT_GUIDE.md → "Present Both Composition Runtimes (HARD RULE)": tell the user HyperFrames exists and why it isn't viable on this pipeline, rather than silently locking remotion. Record a render_runtime_selection decision with hyperframes rejected_because: "caption-burn parity deferred on podcast-repurpose".
  • Pass proposal_packet/brief to video_compose.execute() for end-to-end runtime-swap detection.

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"] Output plans and asset paths
Tools video_compose, audio_mixer Rendering and mix control
Playbook Active style playbook Brand consistency

Process

1. Render Highest-Value Outputs First

Priority order:

  1. short highlight clips
  2. quote-led clips
  3. optional long-form companion video

This keeps the most publishable assets available first.

2. Preserve Audio Quality

  • avoid unnecessary re-encoding,
  • keep speech intelligible and stable,
  • use music sparingly and only when it does not compete,
  • verify subtitle sync after render.

3. Respect Platform Shapes

  • 9:16 for short-form social
  • 1:1 for quote-led or feed-safe clips
  • 16:9 for long-form YouTube companion output

4. Verify Every Deliverable

  • correct duration,
  • correct aspect ratio,
  • readable subtitles,
  • accurate speaker attribution,
  • stable audio,
  • consistent brand treatment.

5. Use Render Report Metadata

Recommended metadata keys:

  • deliverable_groups
  • audio_notes
  • subtitle_checks
  • failed_outputs

Common Pitfalls

  • Letting visual treatments degrade audio quality.
  • Rendering the full companion first and delaying the clips that matter most.
  • Forgetting that a simple, readable clip beats a technically elaborate but confusing one.