01-blog-to-video
Installation
SKILL.md
Blog to Video
Use this skill only after applying the 00-video-production-guardrails skill (../00-video-production-guardrails/SKILL.md). This workflow produces one output artifact — a single composed, captioned video file derived from one source post — and stops there; it has no scene-level multi-provider routing and no optimization or analytics loop in v1.
Input
- A published blog post URL, or its draft text/markdown, supplied by the user.
- If both a draft and a published version exist, ask which is authoritative; do not silently prefer one.
Pipeline
- Extract claims and structure. Read the source post and pull out: its core argument, section structure, and every discrete factual, comparative, or performance claim it makes (numbers, feature descriptions, "faster/better/first" statements, quotes). Keep this extraction as a flat list — it is the faithfulness baseline every later step checks against.
- Write the script and scene plan. Draft a short-video script broken into scenes, where every claim in the script traces back to an item in the extraction list from step 1. Do not add a claim, statistic, or comparison that is not already in the source post — this is the guardrails skill's content and factual accuracy gate applied to a derivative script, not a new gate. If the script needs to compress or drop a nuance for time, drop it; do not round it up into something stronger than the source said.
- Select a provider per scene, by capability, not by name. For each scene, state the capability requirement it needs (for example
{ avatar: true, voice_clone: true, commercial_use: true }for a talking-head scene, or{ text_to_video: true, commercial_use: true }for a b-roll scene) and select a provider using the capability-match-first algorithm indocs/PROVIDER_SELECTION.mdagainst declarations validatingschemas/provider-capability.schema.json. Never hardcode a provider name in the scene plan — the plan records the requirement, not a brand. If any scene needs the same character to recur across other scenes, see../03-character-consistency-technique/SKILL.mdfor how to actually drive the selected provider's consistency mechanism across the run, once selection has picked a provider. - Fail loudly when no provider qualifies. If the selection algorithm returns zero candidates for a scene's requirement (see
docs/PROVIDERS.mdfor current adapter status), stop and report to the user exactly which capability had no candidate. Do not substitute a provider that is missing a required capability, and do not silently drop the scene or ship it unfulfilled — an unmet requirement is a hard stop, not a degrade. - Generate clips. Once a scene has a qualifying provider, generate its clip through that provider's adapter. This skill does not implement adapters itself (see the pack's HeyGen/Google Flow/FFmpeg tracking issues); it only performs the selection in step 3 and consumes whatever adapter is actually wired up.
- Compose and caption. Assemble the generated clips into a single output video in source order, then add synchronized captions covering all spoken dialogue per the guardrails skill's accessibility gate. Treat any auto-generated caption track as a draft to be checked against the script, not a final deliverable.
- Re-run the accuracy check before delivery. Before marking the video done, diff the final on-screen/spoken claims against the step-1 extraction list one more time — composition and captioning sometimes introduce on-screen text (lower thirds, callouts) that was not in the reviewed script. Any new claim found here must be removed or independently verified before delivery.