mirror of
https://github.com/hanzoai/video.git
synced 2026-11-03 04:21:39 +00:00
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.6 KiB
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_selectiondecision with hyperframesrejected_because: "caption-burn parity deferred on podcast-repurpose". - Pass
proposal_packet/brieftovideo_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:
- short highlight clips
- quote-led clips
- 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:16for short-form social1:1for quote-led or feed-safe clips16:9for 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_groupsaudio_notessubtitle_checksfailed_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.