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

3.1 KiB

Idea Director — Talking Head Pipeline

When to Use

You are starting a talking-head video project. You have raw footage of a person speaking. Your job is to analyze the footage, understand what it contains, and build a brief that captures the content's essence and production goals.

Unlike the explainer pipeline (which starts from a topic), you start from existing footage. The brief documents what you're working with and what the final video should look like.

Runtime Selection (MANDATORY — present the constraint, don't silently pick)

Lock render_runtime = "remotion" (preferred — uses TalkingHead + remotion_caption_burn) or "ffmpeg" (for source-footage concat with no composition). HyperFrames is NOT a valid runtime on this pipeline in Phase 1 — the TalkingHead composition and word-level caption burn have no HyperFrames parity yet.

Per AGENT_GUIDE.md → "Present Both Composition Runtimes (HARD RULE)": do NOT silently default to remotion. Tell the user: "HyperFrames is available, but talking-head depends on the Remotion TalkingHead composition, so remotion is the only viable composition choice (or ffmpeg for a raw cut) — OK to proceed?" Record a render_runtime_selection decision with hyperframes as a rejected option (rejected_because: "TalkingHead + caption parity deferred on talking-head").

Prerequisites

Layer Resource Purpose
Schema schemas/artifacts/brief.schema.json Artifact validation
Inputs Raw footage file path Source material
Tools ffprobe (via shell) Footage metadata extraction

Process

Step 1: Inspect the Footage

Use ffprobe to extract metadata:

  • Duration
  • Resolution
  • Frame rate
  • Audio channels and codec
  • File size

This tells you what you're working with — quality, length, format.

Step 2: Quick Content Assessment

Watch/scan the footage mentally (or sample frames if frame_sampler is available):

  • What is the person talking about?
  • How long is the raw footage?
  • What's the intended platform? (Ask the user if unclear)
  • Is there good audio? Background noise?

Step 3: Build the Brief

Create a brief artifact documenting:

  • Title: Descriptive title based on footage content
  • Hook: What makes this worth watching?
  • Key points: Main topics covered in the footage
  • Tone: Match the speaker's actual tone (casual, professional, educational)
  • Style: Derive the overlay/look direction from the footage, speaker persona, audience, and platform. clean-professional is a safe fallback, not the default answer to every talking-head brief.
  • Target platform: Where this will be published
  • Target duration: May be shorter than raw footage (trimmed)

Step 4: Self-Evaluate

Criterion Question
Accuracy Does the brief reflect what's actually in the footage?
Completeness Are all required brief fields present?
Platform fit Is the target platform appropriate for this content?

Step 5: Submit

Validate the brief against the schema and persist via checkpoint.