scene-spec
Produce a standalone schema-valid .video-gen-spec.json. Two modes:
| Mode | Input | Use case |
|---|---|---|
| Convert mode | storyboard_md provided | Take an existing human-readable storyboard.md and translate it into the strict spec for handoff to AI video gen tools. |
| Direct mode | script_path + brief_path provided | Skip the human-readable storyboard entirely; produce only the spec. Useful for scripted automation. |
For most workflows, use storyboard-from-script which produces both. This skill is for narrow cases where only the spec is needed.
Pre-flight
- Either
storyboard_mdexists, ORscript_path+brief_pathboth exist. - Read schemas/video-gen-spec.schema.json — output MUST validate.
- If converting from
storyboard_md: read it + parse scene blocks.
Procedure
Convert mode (storyboard_md → scene-spec.json)
- Read
storyboard_md. Parse:- Frontmatter for:
brand,template_archetype,duration_target_sec,aspect_ratio,script_ref,brief_ref,schema_version - Scene sections (Scene 1..N) for:
scene_id,start_sec,duration_sec,visual_prompt,audio(VO line + music + SFX),caption,camera_behavior - Hook variants section
- Frontmatter for:
- Build the JSON with required top-level fields per schema:
schema_version,pipeline: "demandgen-video",brand,market,output_dir,generated_at(current ISO timestamp),reference_images: [](or populated if storyboard references them),scenes,global_settings,script(full script text),audio_spec,caption_spec,hook_variants. - Validate against schema. Fix any errors before writing.
- Write to
output_path(default: same directory as the source storyboard, namedscene-spec.json).
Direct mode (script + brief → scene-spec.json)
- Read script + brief.
- Determine template_archetype if not provided (per storyboard-from-script Step 1).
- Decompose script into scenes (per storyboard-from-script Step 3).
- Build JSON same as Convert mode.
Append Log entry
Schema strictness
- Default
schema_version: "1.5"(Franky Shaw v3.0 augmentations — product_character, viral_template, icp_avatar.spoken_language). - For Demand Gen world-class plan features (per_hook_text_assets, creative_source segmentation, channel_bucket), use
schema_version: "1.8". - Validate every output. Don't ship a broken spec.
Hard rules
- MUST validate against schema. If validation fails, fix and re-write.
output_dirfield in the JSON should point to where rendered video assets land (typicallyBrands/{brand}/Marketing/storyboards/{date}-{slug}/output/).- Don't fabricate scenes. If converting from storyboard.md and a section is unclear, surface to user.
Failure modes
- storyboard.md scene parsing fails — surface specific section, ask Adam to clarify.
- Schema validation error — print the offending field + expected shape; fix and retry.
- Schema version mismatch (e.g., storyboard says v1.3, user wants v1.5 features) — flag, ask Adam to upgrade or downgrade.