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.
This commit is contained in:
@@ -230,6 +230,7 @@ stages:
|
||||
- video_stitch
|
||||
tools_available:
|
||||
- video_compose
|
||||
- hyperframes_compose
|
||||
- video_stitch
|
||||
- audio_mixer
|
||||
checkpoint_required: true
|
||||
@@ -238,6 +239,8 @@ stages:
|
||||
- Output video exists and is playable
|
||||
- "Duration within +/-5% of target"
|
||||
- Audio is clear with proper narration/music balance
|
||||
- "render_runtime in edit_decisions matches proposal_packet — silent swap to another runtime is a CRITICAL governance violation"
|
||||
- "If render_runtime='hyperframes': `hyperframes lint` and `hyperframes validate` must pass before render"
|
||||
success_criteria:
|
||||
- Schema-valid render_report with output paths
|
||||
- Output file exists and passes ffprobe validation
|
||||
|
||||
@@ -98,6 +98,7 @@ stages:
|
||||
- Free/local tool options are highlighted where applicable
|
||||
- "Audio architecture decided: single narrator / character dialogue / narrator+characters"
|
||||
- "Provider choice presented as comparison table with costs — agent recommends but user decides"
|
||||
- "render_runtime chosen explicitly — remotion for React scene stack, hyperframes for HTML/GSAP motion graphics, ffmpeg for simple concat. See skills/core/hyperframes.md and skills/meta/animation-runtime-selector.md for the decision matrix. Record in decision_log with category render_runtime_selection."
|
||||
success_criteria:
|
||||
- Schema-valid proposal_packet with at least 3 concept_options
|
||||
- selected_concept includes animation_mode and reuse_strategy
|
||||
@@ -243,6 +244,7 @@ stages:
|
||||
- video_stitch
|
||||
tools_available:
|
||||
- video_compose
|
||||
- hyperframes_compose
|
||||
- audio_mixer
|
||||
- video_stitch
|
||||
checkpoint_required: true
|
||||
@@ -252,6 +254,8 @@ stages:
|
||||
- Motion timing survives the final render
|
||||
- Audio sync matches the animatic intent
|
||||
- Duration within +/-5% of target
|
||||
- "render_runtime in edit_decisions matches render_runtime locked in proposal_packet — any swap requires a render_runtime_selection decision in decision_log"
|
||||
- "HyperFrames renders MUST pass `hyperframes lint` and `hyperframes validate` before the render step — never skip validation"
|
||||
- "Post-render self-review MANDATORY: extract keyframes, visually inspect each scene, flag weak frames before presenting to user"
|
||||
success_criteria:
|
||||
- Schema-valid render_report artifact
|
||||
|
||||
@@ -233,6 +233,7 @@ stages:
|
||||
- audio_enhance
|
||||
tools_available:
|
||||
- video_compose
|
||||
- hyperframes_compose
|
||||
- audio_mixer
|
||||
- video_stitch
|
||||
- video_trimmer
|
||||
@@ -245,6 +246,8 @@ stages:
|
||||
- Motion-required delivery was preserved without silent fallback
|
||||
- Audio dynamics are controlled and intelligible
|
||||
- Letterbox or frame treatment improves rather than harms the output
|
||||
- "render_runtime in edit_decisions matches proposal_packet — silent swap is a CRITICAL governance violation"
|
||||
- "Cinematic work typically picks render_runtime='remotion' (CinematicRenderer) for video-led pieces; render_runtime='hyperframes' for kinetic title cards and HTML/GSAP-driven trailers"
|
||||
success_criteria:
|
||||
- Schema-valid render_report artifact
|
||||
- Output file exists and passes ffprobe validation
|
||||
|
||||
@@ -166,6 +166,7 @@ stages:
|
||||
- Resolution matches target_platform canvas
|
||||
- Uniform LUT applied across the timeline
|
||||
- Music is mixed in (MANDATORY — silent output only with explicit user opt-out recorded in brief)
|
||||
- "render_runtime locked at proposal MUST stay 'remotion' on this pipeline until HyperFrames end-tag parity lands — the overlay/concat end-tag stack depends on Remotion CinematicRenderer components. Silent swap to hyperframes or ffmpeg is a CRITICAL governance violation."
|
||||
- "End-tag rendered via Remotion (MANDATORY — absence only with explicit opt-out). Default mode: overlay (ProRes 4444 with alpha composited on final scenes). Fallback: concat (opaque card appended after body)."
|
||||
- "Overlay mode: extract a frame from the overlay region and verify text is visible over footage, not over black. Concat mode: last frame must be the end-tag card."
|
||||
- No silent fallback from a motion-led promise
|
||||
|
||||
@@ -187,6 +187,7 @@ stages:
|
||||
- audio_enhance
|
||||
tools_available:
|
||||
- video_compose
|
||||
- hyperframes_compose
|
||||
- audio_mixer
|
||||
- video_stitch
|
||||
- video_trimmer
|
||||
@@ -198,6 +199,8 @@ stages:
|
||||
- Source and support layers remain balanced
|
||||
- Aspect-ratio variants preserve readability
|
||||
- Audio stays coherent across footage and generated elements
|
||||
- "render_runtime in edit_decisions matches proposal_packet — silent swap is a CRITICAL governance violation"
|
||||
- "Hybrid typically uses render_runtime='remotion' so source footage and React support overlays compose in one pass; pick 'hyperframes' only when support layers are HTML/GSAP-native"
|
||||
success_criteria:
|
||||
- Schema-valid render_report artifact
|
||||
- Output file exists and passes ffprobe validation
|
||||
|
||||
@@ -209,6 +209,7 @@ stages:
|
||||
- audio_enhance
|
||||
tools_available:
|
||||
- video_compose
|
||||
- hyperframes_compose
|
||||
- audio_mixer
|
||||
- video_trimmer
|
||||
- audio_enhance
|
||||
@@ -218,6 +219,8 @@ stages:
|
||||
- Output video is playable and crisp at target resolution
|
||||
- UI text remains readable after crops and scaling
|
||||
- Audio is clear with no keyboard/click noise
|
||||
- "render_runtime in edit_decisions matches proposal_packet — silent swap is a CRITICAL governance violation"
|
||||
- "For synthetic UI/terminal demos, render_runtime='remotion' (TerminalScene) is preferred; render_runtime='hyperframes' is valid for custom HTML UIs — in that case, lint+validate must pass before render"
|
||||
success_criteria:
|
||||
- Schema-valid render_report artifact
|
||||
- Output file exists and passes ffprobe validation
|
||||
|
||||
Reference in New Issue
Block a user