← Creative ClawCONTENT HISTORY

Update to Creative Claw

Snapshot Oct 3, 2026 · 06:03 UTC · version 5.3.0

Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED · RULE-BASED ANALYSIS

Instructions updated for creativeclaw-build-film

Instruction wording changed from “[reference production](references/video/reference-production.md) before preparing media and ” to “”. 21 additional added or edited lines are in the evidence.

Observed in instructions or declared skills. Runtime behavior has not been tested.

Skill instructions

Before

[reference production](references/video/reference-production.md) before preparing media and [Review/Auto handling](references/video/review.md) before submission. ## Reference-first production Strongly recommend image preparation before v...

After

[Review/Auto handling](references/video/review.md) before submission. ## Reference-first pipeline Unless the user asked for direct text-to-video, supplied a ready shot image, or is editing footage, follow this before `generate_video`. A ...

Supporting files

Before

[{"relative_path":"agents/openai.yaml","size_in_bytes":539},{"relative_path":"references/images/gpt-image-2.md","size_in_bytes":10996},{"relative_path":"references/images/index.md","size_in_bytes":456},{"relative_path":"references/images...

After

[{"relative_path":"agents/openai.yaml","size_in_bytes":539},{"relative_path":"references/images/gpt-image-2.md","size_in_bytes":11212},{"relative_path":"references/images/index.md","size_in_bytes":456},{"relative_path":"references/images...

Compare saved observations

Download comparison JSON
Full technical diff · 2 changed fields

changed /included_files

BEFORE
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 539
  },
  {
    "relative_path": "references/images/gpt-image-2.md",
    "size_in_bytes": 10996
  },
  {
    "relative_path": "references/images/index.md",
    "size_in_bytes": 456
  },
  {
    "relative_path": "references/images/nano-banana-2.md",
    "size_in_bytes": 8817
  },
  {
    "relative_path": "references/images/nano-banana-pro.md",
    "size_in_bytes": 8779
  },
  {
    "relative_path": "references/images/seedream-5-pro.md",
    "size_in_bytes": 9556
  },
  {
    "relative_path": "references/job-recovery.md",
    "size_in_bytes": 3786
  },
  {
    "relative_path": "references/media-assembly.md",
    "size_in_bytes": 3876
  },
  {
    "relative_path": "references/platform-upload.md",
    "size_in_bytes": 1416
  },
  {
    "relative_path": "references/video/gemini-omni.md",
    "size_in_bytes": 9538
  },
  {
    "relative_path": "references/video/index.md",
    "size_in_bytes": 1823
  },
  {
    "relative_path": "references/video/minimax-h3-max.md",
    "size_in_bytes": 9097
  },
  {
    "relative_path": "references/video/other-models.md",
    "size_in_bytes": 4257
  },
  {
    "relative_path": "references/video/recipe-character-scene.md",
    "size_in_bytes": 2966
  },
  {
    "relative_path": "references/video/recipe-product-ad.md",
    "size_in_bytes": 2998
  },
  {
    "relative_path": "references/video/recipe-source-edit.md",
    "size_in_bytes": 2620
  },
  {
    "relative_path": "references/video/reference-production.md",
    "size_in_bytes": 7381
  },
  {
    "relative_path": "references/video/review.md",
    "size_in_bytes": 1909
  },
  {
    "relative_path": "references/video/seedance-2-5.md",
    "size_in_bytes": 12711
  },
  {
    "relative_path": "references/video/seedance-mini.md",
    "size_in_bytes": 1480
  },
  {
    "relative_path": "references/video/ugc-paths.md",
    "size_in_bytes": 2923
  },
  {
    "relative_path": "references/video/wan-3.md",
    "size_in_bytes": 8665
  },
  {
    "relative_path": "references/workflow-basics.md",
    "size_in_bytes": 7159
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 539
  },
  {
    "relative_path": "references/images/gpt-image-2.md",
    "size_in_bytes": 11212
  },
  {
    "relative_path": "references/images/index.md",
    "size_in_bytes": 456
  },
  {
    "relative_path": "references/images/nano-banana-2.md",
    "size_in_bytes": 8855
  },
  {
    "relative_path": "references/images/nano-banana-pro.md",
    "size_in_bytes": 8824
  },
  {
    "relative_path": "references/images/seedream-5-pro.md",
    "size_in_bytes": 9556
  },
  {
    "relative_path": "references/job-recovery.md",
    "size_in_bytes": 3786
  },
  {
    "relative_path": "references/media-assembly.md",
    "size_in_bytes": 8654
  },
  {
    "relative_path": "references/platform-upload.md",
    "size_in_bytes": 1416
  },
  {
    "relative_path": "references/video/gemini-omni.md",
    "size_in_bytes": 10085
  },
  {
    "relative_path": "references/video/index.md",
    "size_in_bytes": 2176
  },
  {
    "relative_path": "references/video/minimax-h3-max.md",
    "size_in_bytes": 11220
  },
  {
    "relative_path": "references/video/other-models.md",
    "size_in_bytes": 4653
  },
  {
    "relative_path": "references/video/recipe-character-scene.md",
    "size_in_bytes": 2941
  },
  {
    "relative_path": "references/video/recipe-product-ad.md",
    "size_in_bytes": 3265
  },
  {
    "relative_path": "references/video/recipe-source-edit.md",
    "size_in_bytes": 3357
  },
  {
    "relative_path": "references/video/reference-production.md",
    "size_in_bytes": 5865
  },
  {
    "relative_path": "references/video/review.md",
    "size_in_bytes": 1909
  },
  {
    "relative_path": "references/video/seedance-2-5.md",
    "size_in_bytes": 15084
  },
  {
    "relative_path": "references/video/seedance-mini.md",
    "size_in_bytes": 1579
  },
  {
    "relative_path": "references/video/ugc-paths.md",
    "size_in_bytes": 2988
  },
  {
    "relative_path": "references/video/voice-in-video.md",
    "size_in_bytes": 3328
  },
  {
    "relative_path": "references/video/wan-3.md",
    "size_in_bytes": 9107
  },
  {
    "relative_path": "references/workflow-basics.md",
    "size_in_bytes": 7260
  }
]

changed /skill_md_contents

BEFORE
"---\nname: creativeclaw-build-film\ndescription: \"Produce a complete multi-shot Creative Claw film from planning through an assembled first cut. Use for ads, explainers, music videos, or stories that require several coordinated clips, narration, and approval gates.\"\n---\n\n# Build Film\n\nRead [video model selection](references/video/index.md), then only the selected model's guide. Model families are covered locally, with live-schema guidance for additional models; do not load every guide or require a sibling model skill. Read [reference production](references/video/reference-production.md) before preparing media and [Review/Auto handling](references/video/review.md) before submission.\n\nRead [shared execution guidance](references/workflow-basics.md) once per task before using tools. It covers existing authorization, model discovery, optional cost checks, imports, and recovery.\n\nRun a stateful, multi-shot production with explicit approvals. Use `creativeclaw-generate-video` for a single clip and `creativeclaw-plan-video` when the user wants planning only.\n\nFor worked production flows, read only the relevant recipe: [product ad](references/video/recipe-product-ad.md), [consistent Character scene](references/video/recipe-character-scene.md), or [source edit and extension](references/video/recipe-source-edit.md). These explain asset preparation, shot prompting, assembly and output checks, without authorizing extra paid drafts.\n\n## Reference-first production\n\nStrongly recommend image preparation before video: reuse the user's media, develop shot-appropriate references with creativeclaw-generate-image, and prefer at least three complementary images where the video model supports them. Read [image model selection](references/images/index.md) and only the chosen image guide, plus [the reference-first workflow](references/video/reference-production.md) for approval, Character sheets, audio-first control and cross-shot continuity. Existing references count; do not force extra paid assets, exceed model limits or ignore an explicit direct-generation request.\n\nUse the video's Review card as the single approval of its exact references and settings, without a duplicate chat approval. Honor separately requested earlier checkpoints and consent requirements. Review does not gate earlier image/audio charges. For connected clips, reuse stable visual/audio anchors and request dialogue, ambience and effects without independently generated music per shot.\n\n## 1. Create and plan\n\n1. Use `list_film_projects` and `get_film_project` to resume an existing project when appropriate; otherwise call `create_film_project` with the name, brief, Character IDs, theme, and target duration.\n2. Follow `creativeclaw-plan-video` to create the script, shot list, model plan, and storyboard.\n3. Save stable shot IDs and patch the project with `update_film_project`. Do not replace approved fields accidentally.\n4. Honor script and storyboard review stages, including approval already given or explicit instructions to proceed through them. Advance `drafting`, `script_ok`, and `storyboard_ok` truthfully; do not repeat approval questions.\n\n## 2. Establish timing and audio\n\nFor narration-driven production, generate or reuse speech with `creativeclaw-generate-voiceover` before locking shot durations. Use returned alignment/timestamps or inspected duration. Do not add separate narration to native-dialogue clips unless requested. Avoid music generated independently inside each clip. Require a consistent shared voice/ambience plan and reference anchors for connected shots. Use `creativeclaw-generate-music` once for a requested continuous project score or song and `creativeclaw-generate-sound-effects` for ambience, Foley, and effects. Establish a supported assembly method before creating tracks that need layering.\n\nWhen the user asks about cost or supplies a budget, estimate supported planned generations and total them; identify processing costs excluded by `estimate_generation`. Do not add another approval gate for authorized production.\n\n## 3. Generate shots\n\n1. Keep storyboard and reference approval state truthful. In Review mode, prepare each shot request for approval without claiming it is rendering; mark rendering only after the applicable approval and actual submission. Honor a separately requested storyboard checkpoint.\n2. For each shot, read the selected local model guide, check current parameters, and call `generate_video` with the approved prompt, model and duration. Use a clean `image_url` for literal-frame animation or ordered references for reference-guided composition, not both.\n3. Maintain Character and product continuity through approved canonical anchors. Build identity into literal start frames before animation, or bind identity in a supported reference-only request. `character_id` does not automatically add a second visual reference.\n4. On `approval_required`, retain the Recovery Job ID and pause that shot until the user submits it. Resolve submitted jobs needed for assembly with `check_job`, inspect every clip, and write each approved `clipUrl` back to its shot.\n\n## 4. Combine audio and clips\n\nUse the narration prepared for timing. Read [media-assembly.md](references/media-assembly.md) before combining tracks or clips. The film assembler can optionally overlay one project-level `audioUrl`; it does not automatically mix every shot's `audioUrl`.\n\nWhen per-shot narration or dialogue is required, use `merge_media({ operation: \"merge_audio_video\" })` to mux the approved audio into each shot clip before saving that final `clipUrl`. Alternatively, merge an approved full-length narration track and set it with `update_film_project({ id, audio_url })` before assembly. Preserve individual shot updates with `patch_shots`.\n\n## 5. Assemble and approve\n\n1. Verify that every intended shot has an approved `clipUrl` in order.\n2. Call `assemble_film` with `mode: \"connect\"` by default. It preserves every clip and reports target-duration overage as a warning. Use `mode: \"cut_end\"` only when the user wants the fully assembled output trimmed at `targetDurationS`.\n3. Resolve the queued job with `check_job`. Only the completed URL is the first cut; completion saves `assembledUrl` and `preview_ok`. Verify playback order, full duration, and audio.\n4. When the user requests opening or closing bookends, use `creativeclaw-add-video-intro-outro` after the first cut exists. That workflow may offer HTML-rendered cards, but it must not call `render_html_video` unless the user explicitly chooses HTML/HyperFrames/code-driven rendering.\n5. Do not imply that assembly adds transitions, captions, sound design, or per-shot audio mixing. If those are required, create the needed processed clips with exposed tools before assembly.\n6. Set `preview_ok` when the first cut exists. Set `final` only after the user has reviewed and approved it.\n\n## Recovery\n\nResume from saved project state rather than regenerating approved media. If a shot fails or has a quality issue, report the problem and propose a repair. Require explicit authorization before another generation attempt for that shot; approval of the film or storyboard alone does not authorize replacement takes. After an authorized replacement succeeds, patch only that shot's URL. Do not restart the full film. Never claim completion from queued job IDs.\n"
AFTER
"---\nname: creativeclaw-build-film\ndescription: \"Produce a complete multi-shot Creative Claw film from planning through an assembled first cut. Use for ads, explainers, music videos, or stories that require several coordinated clips, narration, and approval gates.\"\n---\n\n# Build Film\n\nRead [video model selection](references/video/index.md), then only the selected model's guide. Model families are covered locally, with live-schema guidance for additional models; do not load every guide or require a sibling model skill. Read [Review/Auto handling](references/video/review.md) before submission.\n\nRead [shared execution guidance](references/workflow-basics.md) once per task before using tools. It covers existing authorization, model discovery, optional cost checks, imports, and recovery.\n\nRun a stateful, multi-shot production with explicit approvals. Use `creativeclaw-generate-video` for a single clip and `creativeclaw-plan-video` when the user wants planning only.\n\nFor worked production flows, read only the relevant recipe: [product ad](references/video/recipe-product-ad.md), [consistent Character scene](references/video/recipe-character-scene.md), or [source edit and extension](references/video/recipe-source-edit.md). These explain asset preparation, shot prompting, assembly and output checks, without authorizing extra paid drafts.\n\n## Reference-first pipeline\n\nUnless the user asked for direct text-to-video, supplied a ready shot image, or is editing footage, follow this before `generate_video`. A video request authorizes one keyframe per shot: say so, don't ask.\n\n1. Anchors, reuse first: `search_assets`, `list_characters`, `get_theme`. Person: Character sheet + face portrait (real person: also their best original photo). Product: real photo or packshot, plus a label/logo close-up when text matters. A recurring person or product with no anchor: create it first (creativeclaw-create-avatar, creativeclaw-product-photoshoot).\n2. Look line: one sentence (palette, light, lens, medium), pasted into every keyframe and video prompt.\n3. Keyframe per shot: `generate_image` with the same image model all project (default `image/nano-banana-2`), `aspect_ratio` = the video's ratio, main anchor in `image_url`, others in `extras.image_urls`, roles named. One clean full-bleed frame; no text, grid or labels.\n4. Compare it to the anchors (face, label, logo, colors); fix with one targeted edit.\n5. Show keyframes and the plan (model, duration, ratio) in one message. Review mode: call `generate_video` now; the card is the approval. Auto: ask once unless the user said go.\n6. One mode per shot. People, several subjects or big motion: `image_urls` = [keyframe, identity anchor, product anchor], 2–4 total; `character_id` is fine here. Exact opening (product hero, logo reveal): `image_url` = keyframe, no `image_urls` or `character_id`.\n7. Next shot: same anchors and look line. A previous clip's last frame is only an extra composition cue.\n\nDetails: [reference production](references/video/reference-production.md). Image prompting: [image model index](references/images/index.md) and only the chosen guide.\n\n## 1. Create and plan\n\n1. Use `list_film_projects` and `get_film_project` to resume an existing project when appropriate; otherwise call `create_film_project` with the name, brief, Character IDs, theme, and target duration.\n2. Follow `creativeclaw-plan-video` to create the script, shot list, model plan, and storyboard.\n3. Save stable shot IDs and patch the project with `update_film_project`. Do not replace approved fields accidentally.\n4. Honor script and storyboard review stages, including approval already given or explicit instructions to proceed through them. Advance `drafting`, `script_ok`, and `storyboard_ok` truthfully; do not repeat approval questions.\n\n## 2. Establish timing and audio\n\nWhen a Character speaks and the voice is unknown, ask one question: design a new voice from a description (`design_voice`, three auditions), use your own voice (recording plus consent, creativeclaw-clone-voice), or pick a stock voice. If the voice doesn't matter, pick a stock voice and name it. Design auditions use the Character's real lines. In ChatGPT the Voice Studio card saves the choice; read it back from `list_characters` rather than saving again.\n\nPick one voice path per speaking shot from [voice in video](references/video/voice-in-video.md). Gemini Omni, the default, accepts no audio: native dialogue there, or route exact-voice shots to an audio-capable model or `video/sync-3`. Generate or reuse speech with `creativeclaw-generate-voiceover` before locking shot durations: at most 2.5 words per clip second, about 0.5 s of air at each end, lengths from the audio's `wordTimings`. Do not add separate narration to native-dialogue clips unless requested.\n\nPrompt shots for dialogue, ambience and effects only, with no music. Use `creativeclaw-generate-music` once for a requested project score or song and `creativeclaw-generate-sound-effects` for ambience, Foley, and effects.\n\nWhen the user asks about cost or supplies a budget, estimate supported planned generations and total them; identify processing costs excluded by `estimate_generation`. Do not add another approval gate for authorized production.\n\n## 3. Generate shots\n\n1. Keep approval state truthful. In Review mode, a shot is rendering only after the user submits its card. Honor a separately requested storyboard checkpoint.\n2. For each shot, read the selected local model guide, check current parameters, and call `generate_video` with the approved prompt, model and duration, in one input mode (pipeline step 6).\n3. Maintain Character and product continuity through the same anchors. `character_id` appends the saved image to `image_urls` as a reference, never a start frame. Use it in reference mode; omit it with `image_url`/`last_frame_url` (the server rejects that mix).\n4. On `approval_required`, retain the Recovery Job ID and pause that shot until the user submits it. Resolve submitted jobs needed for assembly with `check_job`, inspect every clip, and write each approved `clipUrl` back to its shot.\n\n## 4. Combine audio and clips\n\nUse the narration prepared for timing. Read [media-assembly.md](references/media-assembly.md) before combining tracks or clips.\n\n- Per-shot audio: `merge_media` `merge_audio_video` with `audio_mode: \"mix\"` keeps the shot's own sound and layers the new track at the clip's length (`original_volume`, `added_volume` 0–1; about 0.3 for music under speech). The default `audio_mode: \"replace\"` discards the shot's audio and ends at the shorter input. Save the result as the shot's `clipUrl` with `patch_shots`.\n- Project narration: set it with `update_film_project({ id, audio_url })`. `assemble_film` narration replaces every shot's audio; use `with_narration: false` when shots carry dialogue, then layer narration or music over the cut with `audio_mode: \"mix\"`.\n\n## 5. Assemble and approve\n\n1. Verify that every intended shot has an approved `clipUrl` in order.\n2. Call `assemble_film` with `mode: \"connect\"` by default. It preserves every clip and reports target-duration overage as a warning. Use `mode: \"cut_end\"` only when the user wants the fully assembled output trimmed at `targetDurationS`.\n3. Resolve the queued job with `check_job`. Only the completed URL is the first cut; completion saves `assembledUrl` and `preview_ok`. Verify playback order, full duration, and audio.\n4. When the user requests opening or closing bookends, use `creativeclaw-edit-media` after the first cut exists. That workflow may offer HTML-rendered cards, but it must not call `render_html_video` unless the user explicitly chooses HTML/HyperFrames/code-driven rendering.\n5. Assembly adds no transitions, captions or sound design; make those with the editing tools.\n6. Set `preview_ok` when the first cut exists. Set `final` only after the user has reviewed and approved it.\n\n## Recovery\n\nResume from saved project state rather than regenerating approved media. If a shot fails or has a quality issue, report the problem and propose a repair. Require explicit authorization before another generation attempt for that shot; approval of the film or storyboard alone does not authorize replacement takes. After an authorized replacement succeeds, patch only that shot's URL. Do not restart the full film. Never claim completion from queued job IDs.\n"

SKILL.md line diff

--- before
+++ after
@@ -5,7 +5,7 @@
 
 # Build Film
 
-Read [video model selection](references/video/index.md), then only the selected model's guide. Model families are covered locally, with live-schema guidance for additional models; do not load every guide or require a sibling model skill. Read [reference production](references/video/reference-production.md) before preparing media and [Review/Auto handling](references/video/review.md) before submission.
+Read [video model selection](references/video/index.md), then only the selected model's guide. Model families are covered locally, with live-schema guidance for additional models; do not load every guide or require a sibling model skill. Read [Review/Auto handling](references/video/review.md) before submission.
 
 Read [shared execution guidance](references/workflow-basics.md) once per task before using tools. It covers existing authorization, model discovery, optional cost checks, imports, and recovery.
 
@@ -13,11 +13,19 @@
 
 For worked production flows, read only the relevant recipe: [product ad](references/video/recipe-product-ad.md), [consistent Character scene](references/video/recipe-character-scene.md), or [source edit and extension](references/video/recipe-source-edit.md). These explain asset preparation, shot prompting, assembly and output checks, without authorizing extra paid drafts.
 
-## Reference-first production
+## Reference-first pipeline
 
-Strongly recommend image preparation before video: reuse the user's media, develop shot-appropriate references with creativeclaw-generate-image, and prefer at least three complementary images where the video model supports them. Read [image model selection](references/images/index.md) and only the chosen image guide, plus [the reference-first workflow](references/video/reference-production.md) for approval, Character sheets, audio-first control and cross-shot continuity. Existing references count; do not force extra paid assets, exceed model limits or ignore an explicit direct-generation request.
+Unless the user asked for direct text-to-video, supplied a ready shot image, or is editing footage, follow this before `generate_video`. A video request authorizes one keyframe per shot: say so, don't ask.
 
-Use the video's Review card as the single approval of its exact references and settings, without a duplicate chat approval. Honor separately requested earlier checkpoints and consent requirements. Review does not gate earlier image/audio charges. For connected clips, reuse stable visual/audio anchors and request dialogue, ambience and effects without independently generated music per shot.
+1. Anchors, reuse first: `search_assets`, `list_characters`, `get_theme`. Person: Character sheet + face portrait (real person: also their best original photo). Product: real photo or packshot, plus a label/logo close-up when text matters. A recurring person or product with no anchor: create it first (creativeclaw-create-avatar, creativeclaw-product-photoshoot).
+2. Look line: one sentence (palette, light, lens, medium), pasted into every keyframe and video prompt.
+3. Keyframe per shot: `generate_image` with the same image model all project (default `image/nano-banana-2`), `aspect_ratio` = the video's ratio, main anchor in `image_url`, others in `extras.image_urls`, roles named. One clean full-bleed frame; no text, grid or labels.
+4. Compare it to the anchors (face, label, logo, colors); fix with one targeted edit.
+5. Show keyframes and the plan (model, duration, ratio) in one message. Review mode: call `generate_video` now; the card is the approval. Auto: ask once unless the user said go.
+6. One mode per shot. People, several subjects or big motion: `image_urls` = [keyframe, identity anchor, product anchor], 2–4 total; `character_id` is fine here. Exact opening (product hero, logo reveal): `image_url` = keyframe, no `image_urls` or `character_id`.
+7. Next shot: same anchors and look line. A previous clip's last frame is only an extra composition cue.
+
+Details: [reference production](references/video/reference-production.md). Image prompting: [image model index](references/images/index.md) and only the chosen guide.
 
 ## 1. Create and plan
 
@@ -28,30 +36,35 @@
 
 ## 2. Establish timing and audio
 
-For narration-driven production, generate or reuse speech with `creativeclaw-generate-voiceover` before locking shot durations. Use returned alignment/timestamps or inspected duration. Do not add separate narration to native-dialogue clips unless requested. Avoid music generated independently inside each clip. Require a consistent shared voice/ambience plan and reference anchors for connected shots. Use `creativeclaw-generate-music` once for a requested continuous project score or song and `creativeclaw-generate-sound-effects` for ambience, Foley, and effects. Establish a supported assembly method before creating tracks that need layering.
+When a Character speaks and the voice is unknown, ask one question: design a new voice from a description (`design_voice`, three auditions), use your own voice (recording plus consent, creativeclaw-clone-voice), or pick a stock voice. If the voice doesn't matter, pick a stock voice and name it. Design auditions use the Character's real lines. In ChatGPT the Voice Studio card saves the choice; read it back from `list_characters` rather than saving again.
+
+Pick one voice path per speaking shot from [voice in video](references/video/voice-in-video.md). Gemini Omni, the default, accepts no audio: native dialogue there, or route exact-voice shots to an audio-capable model or `video/sync-3`. Generate or reuse speech with `creativeclaw-generate-voiceover` before locking shot durations: at most 2.5 words per clip second, about 0.5 s of air at each end, lengths from the audio's `wordTimings`. Do not add separate narration to native-dialogue clips unless requested.
+
+Prompt shots for dialogue, ambience and effects only, with no music. Use `creativeclaw-generate-music` once for a requested project score or song and `creativeclaw-generate-sound-effects` for ambience, Foley, and effects.
 
 When the user asks about cost or supplies a budget, estimate supported planned generations and total them; identify processing costs excluded by `estimate_generation`. Do not add another approval gate for authorized production.
 
 ## 3. Generate shots
 
-1. Keep storyboard and reference approval state truthful. In Review mode, prepare each shot request for approval without claiming it is rendering; mark rendering only after the applicable approval and actual submission. Honor a separately requested storyboard checkpoint.
-2. For each shot, read the selected local model guide, check current parameters, and call `generate_video` with the approved prompt, model and duration. Use a clean `image_url` for literal-frame animation or ordered references for reference-guided composition, not both.
-3. Maintain Character and product continuity through approved canonical anchors. Build identity into literal start frames before animation, or bind identity in a supported reference-only request. `character_id` does not automatically add a second visual reference.
+1. Keep approval state truthful. In Review mode, a shot is rendering only after the user submits its card. Honor a separately requested storyboard checkpoint.
+2. For each shot, read the selected local model guide, check current parameters, and call `generate_video` with the approved prompt, model and duration, in one input mode (pipeline step 6).
+3. Maintain Character and product continuity through the same anchors. `character_id` appends the saved image to `image_urls` as a reference, never a start frame. Use it in reference mode; omit it with `image_url`/`last_frame_url` (the server rejects that mix).
 4. On `approval_required`, retain the Recovery Job ID and pause that shot until the user submits it. Resolve submitted jobs needed for assembly with `check_job`, inspect every clip, and write each approved `clipUrl` back to its shot.
 
 ## 4. Combine audio and clips
 
-Use the narration prepared for timing. Read [media-assembly.md](references/media-assembly.md) before combining tracks or clips. The film assembler can optionally overlay one project-level `audioUrl`; it does not automatically mix every shot's `audioUrl`.
+Use the narration prepared for timing. Read [media-assembly.md](references/media-assembly.md) before combining tracks or clips.
 
-When per-shot narration or dialogue is required, use `merge_media({ operation: "merge_audio_video" })` to mux the approved audio into each shot clip before saving that final `clipUrl`. Alternatively, merge an approved full-length narration track and set it with `update_film_project({ id, audio_url })` before assembly. Preserve individual shot updates with `patch_shots`.
+- Per-shot audio: `merge_media` `merge_audio_video` with `audio_mode: "mix"` keeps the shot's own sound and layers the new track at the clip's length (`original_volume`, `added_volume` 0–1; about 0.3 for music under speech). The default `audio_mode: "replace"` discards the shot's audio and ends at the shorter input. Save the result as the shot's `clipUrl` with `patch_shots`.
+- Project narration: set it with `update_film_project({ id, audio_url })`. `assemble_film` narration replaces every shot's audio; use `with_narration: false` when shots carry dialogue, then layer narration or music over the cut with `audio_mode: "mix"`.
 
 ## 5. Assemble and approve
 
 1. Verify that every intended shot has an approved `clipUrl` in order.
 2. Call `assemble_film` with `mode: "connect"` by default. It preserves every clip and reports target-duration overage as a warning. Use `mode: "cut_end"` only when the user wants the fully assembled output trimmed at `targetDurationS`.
 3. Resolve the queued job with `check_job`. Only the completed URL is the first cut; completion saves `assembledUrl` and `preview_ok`. Verify playback order, full duration, and audio.
-4. When the user requests opening or closing bookends, use `creativeclaw-add-video-intro-outro` after the first cut exists. That workflow may offer HTML-rendered cards, but it must not call `render_html_video` unless the user explicitly chooses HTML/HyperFrames/code-driven rendering.
-5. Do not imply that assembly adds transitions, captions, sound design, or per-shot audio mixing. If those are required, create the needed processed clips with exposed tools before assembly.
+4. When the user requests opening or closing bookends, use `creativeclaw-edit-media` after the first cut exists. That workflow may offer HTML-rendered cards, but it must not call `render_html_video` unless the user explicitly chooses HTML/HyperFrames/code-driven rendering.
+5. Assembly adds no transitions, captions or sound design; make those with the editing tools.
 6. Set `preview_ok` when the first cut exists. Set `final` only after the user has reviewed and approved it.
 
 ## Recovery
Full snapshot data
{
  "description": "Produce a complete multi-shot Creative Claw film from planning through an assembled first cut. Use for ads, explainers, music videos, or stories that require several coordinated clips, narration, and approval gates.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 539
    },
    {
      "relative_path": "references/images/gpt-image-2.md",
      "size_in_bytes": 11212
    },
    {
      "relative_path": "references/images/index.md",
      "size_in_bytes": 456
    },
    {
      "relative_path": "references/images/nano-banana-2.md",
      "size_in_bytes": 8855
    },
    {
      "relative_path": "references/images/nano-banana-pro.md",
      "size_in_bytes": 8824
    },
    {
      "relative_path": "references/images/seedream-5-pro.md",
      "size_in_bytes": 9556
    },
    {
      "relative_path": "references/job-recovery.md",
      "size_in_bytes": 3786
    },
    {
      "relative_path": "references/media-assembly.md",
      "size_in_bytes": 8654
    },
    {
      "relative_path": "references/platform-upload.md",
      "size_in_bytes": 1416
    },
    {
      "relative_path": "references/video/gemini-omni.md",
      "size_in_bytes": 10085
    },
    {
      "relative_path": "references/video/index.md",
      "size_in_bytes": 2176
    },
    {
      "relative_path": "references/video/minimax-h3-max.md",
      "size_in_bytes": 11220
    },
    {
      "relative_path": "references/video/other-models.md",
      "size_in_bytes": 4653
    },
    {
      "relative_path": "references/video/recipe-character-scene.md",
      "size_in_bytes": 2941
    },
    {
      "relative_path": "references/video/recipe-product-ad.md",
      "size_in_bytes": 3265
    },
    {
      "relative_path": "references/video/recipe-source-edit.md",
      "size_in_bytes": 3357
    },
    {
      "relative_path": "references/video/reference-production.md",
      "size_in_bytes": 5865
    },
    {
      "relative_path": "references/video/review.md",
      "size_in_bytes": 1909
    },
    {
      "relative_path": "references/video/seedance-2-5.md",
      "size_in_bytes": 15084
    },
    {
      "relative_path": "references/video/seedance-mini.md",
      "size_in_bytes": 1579
    },
    {
      "relative_path": "references/video/ugc-paths.md",
      "size_in_bytes": 2988
    },
    {
      "relative_path": "references/video/voice-in-video.md",
      "size_in_bytes": 3328
    },
    {
      "relative_path": "references/video/wan-3.md",
      "size_in_bytes": 9107
    },
    {
      "relative_path": "references/workflow-basics.md",
      "size_in_bytes": 7260
    }
  ],
  "name": "creativeclaw-build-film",
  "skill_md_contents": "---\nname: creativeclaw-build-film\ndescription: \"Produce a complete multi-shot Creative Claw film from planning through an assembled first cut. Use for ads, explainers, music videos, or stories that require several coordinated clips, narration, and approval gates.\"\n---\n\n# Build Film\n\nRead [video model selection](references/video/index.md), then only the selected model's guide. Model families are covered locally, with live-schema guidance for additional models; do not load every guide or require a sibling model skill. Read [Review/Auto handling](references/video/review.md) before submission.\n\nRead [shared execution guidance](references/workflow-basics.md) once per task before using tools. It covers existing authorization, model discovery, optional cost checks, imports, and recovery.\n\nRun a stateful, multi-shot production with explicit approvals. Use `creativeclaw-generate-video` for a single clip and `creativeclaw-plan-video` when the user wants planning only.\n\nFor worked production flows, read only the relevant recipe: [product ad](references/video/recipe-product-ad.md), [consistent Character scene](references/video/recipe-character-scene.md), or [source edit and extension](references/video/recipe-source-edit.md). These explain asset preparation, shot prompting, assembly and output checks, without authorizing extra paid drafts.\n\n## Reference-first pipeline\n\nUnless the user asked for direct text-to-video, supplied a ready shot image, or is editing footage, follow this before `generate_video`. A video request authorizes one keyframe per shot: say so, don't ask.\n\n1. Anchors, reuse first: `search_assets`, `list_characters`, `get_theme`. Person: Character sheet + face portrait (real person: also their best original photo). Product: real photo or packshot, plus a label/logo close-up when text matters. A recurring person or product with no anchor: create it first (creativeclaw-create-avatar, creativeclaw-product-photoshoot).\n2. Look line: one sentence (palette, light, lens, medium), pasted into every keyframe and video prompt.\n3. Keyframe per shot: `generate_image` with the same image model all project (default `image/nano-banana-2`), `aspect_ratio` = the video's ratio, main anchor in `image_url`, others in `extras.image_urls`, roles named. One clean full-bleed frame; no text, grid or labels.\n4. Compare it to the anchors (face, label, logo, colors); fix with one targeted edit.\n5. Show keyframes and the plan (model, duration, ratio) in one message. Review mode: call `generate_video` now; the card is the approval. Auto: ask once unless the user said go.\n6. One mode per shot. People, several subjects or big motion: `image_urls` = [keyframe, identity anchor, product anchor], 2–4 total; `character_id` is fine here. Exact opening (product hero, logo reveal): `image_url` = keyframe, no `image_urls` or `character_id`.\n7. Next shot: same anchors and look line. A previous clip's last frame is only an extra composition cue.\n\nDetails: [reference production](references/video/reference-production.md). Image prompting: [image model index](references/images/index.md) and only the chosen guide.\n\n## 1. Create and plan\n\n1. Use `list_film_projects` and `get_film_project` to resume an existing project when appropriate; otherwise call `create_film_project` with the name, brief, Character IDs, theme, and target duration.\n2. Follow `creativeclaw-plan-video` to create the script, shot list, model plan, and storyboard.\n3. Save stable shot IDs and patch the project with `update_film_project`. Do not replace approved fields accidentally.\n4. Honor script and storyboard review stages, including approval already given or explicit instructions to proceed through them. Advance `drafting`, `script_ok`, and `storyboard_ok` truthfully; do not repeat approval questions.\n\n## 2. Establish timing and audio\n\nWhen a Character speaks and the voice is unknown, ask one question: design a new voice from a description (`design_voice`, three auditions), use your own voice (recording plus consent, creativeclaw-clone-voice), or pick a stock voice. If the voice doesn't matter, pick a stock voice and name it. Design auditions use the Character's real lines. In ChatGPT the Voice Studio card saves the choice; read it back from `list_characters` rather than saving again.\n\nPick one voice path per speaking shot from [voice in video](references/video/voice-in-video.md). Gemini Omni, the default, accepts no audio: native dialogue there, or route exact-voice shots to an audio-capable model or `video/sync-3`. Generate or reuse speech with `creativeclaw-generate-voiceover` before locking shot durations: at most 2.5 words per clip second, about 0.5 s of air at each end, lengths from the audio's `wordTimings`. Do not add separate narration to native-dialogue clips unless requested.\n\nPrompt shots for dialogue, ambience and effects only, with no music. Use `creativeclaw-generate-music` once for a requested project score or song and `creativeclaw-generate-sound-effects` for ambience, Foley, and effects.\n\nWhen the user asks about cost or supplies a budget, estimate supported planned generations and total them; identify processing costs excluded by `estimate_generation`. Do not add another approval gate for authorized production.\n\n## 3. Generate shots\n\n1. Keep approval state truthful. In Review mode, a shot is rendering only after the user submits its card. Honor a separately requested storyboard checkpoint.\n2. For each shot, read the selected local model guide, check current parameters, and call `generate_video` with the approved prompt, model and duration, in one input mode (pipeline step 6).\n3. Maintain Character and product continuity through the same anchors. `character_id` appends the saved image to `image_urls` as a reference, never a start frame. Use it in reference mode; omit it with `image_url`/`last_frame_url` (the server rejects that mix).\n4. On `approval_required`, retain the Recovery Job ID and pause that shot until the user submits it. Resolve submitted jobs needed for assembly with `check_job`, inspect every clip, and write each approved `clipUrl` back to its shot.\n\n## 4. Combine audio and clips\n\nUse the narration prepared for timing. Read [media-assembly.md](references/media-assembly.md) before combining tracks or clips.\n\n- Per-shot audio: `merge_media` `merge_audio_video` with `audio_mode: \"mix\"` keeps the shot's own sound and layers the new track at the clip's length (`original_volume`, `added_volume` 0–1; about 0.3 for music under speech). The default `audio_mode: \"replace\"` discards the shot's audio and ends at the shorter input. Save the result as the shot's `clipUrl` with `patch_shots`.\n- Project narration: set it with `update_film_project({ id, audio_url })`. `assemble_film` narration replaces every shot's audio; use `with_narration: false` when shots carry dialogue, then layer narration or music over the cut with `audio_mode: \"mix\"`.\n\n## 5. Assemble and approve\n\n1. Verify that every intended shot has an approved `clipUrl` in order.\n2. Call `assemble_film` with `mode: \"connect\"` by default. It preserves every clip and reports target-duration overage as a warning. Use `mode: \"cut_end\"` only when the user wants the fully assembled output trimmed at `targetDurationS`.\n3. Resolve the queued job with `check_job`. Only the completed URL is the first cut; completion saves `assembledUrl` and `preview_ok`. Verify playback order, full duration, and audio.\n4. When the user requests opening or closing bookends, use `creativeclaw-edit-media` after the first cut exists. That workflow may offer HTML-rendered cards, but it must not call `render_html_video` unless the user explicitly chooses HTML/HyperFrames/code-driven rendering.\n5. Assembly adds no transitions, captions or sound design; make those with the editing tools.\n6. Set `preview_ok` when the first cut exists. Set `final` only after the user has reviewed and approved it.\n\n## Recovery\n\nResume from saved project state rather than regenerating approved media. If a shot fails or has a quality issue, report the problem and propose a repair. Require explicit authorization before another generation attempt for that shot; approval of the film or storyboard alone does not authorize replacement takes. After an authorized replacement succeeds, patch only that shot's URL. Do not restart the full film. Never claim completion from queued job IDs.\n"
}

SHA-256 of public snapshot: 22b679725e354a5edd86eef05b9fd9a3f89fa4038982c496ec96a8abb9601285