Video Generation
This Skill is responsible for converting formal project content into executable AI generation inputs. The long-term sources remain video/script/, video/materials/, and video/shots/; disposable generation packs are merely derivative helpers for the user's external generation.
Before deciding how much content a single generation will cover and which generation method to use, read references/planning/GENERATION-STRATEGY.md. When generating a large batch of materials or shots, additionally read references/planning/BATCHING.md: first validate the baseline with high-risk representative samples, then expand the current parallel batch only after stabilization—do not prescribe a fixed batch size. When the existing video is mostly correct but needs continuous extension or generative local edits, additionally read references/transform/EDIT-EXTEND.md, first determining whether deterministic post-production or a new shot would actually be more appropriate.
1. Identify Generation Objects
Generation objects can be:
- Reusable image assets (characters, scenes, props, products) used across multiple shots;
- Video for a specific shot;
- Shot-specific first frame, last frame, storyboard sketch/keyframe, supplementary images, or sound;
- Long-term voice reference for a character, or whole-film music/narration draft.
First load the formal permanent content: reusable assets use the video-materials definitions, shot video uses the video-shot's SHOT.md. Do not reconstruct long-term facts from disposable packs or old chat history.
2. Write Long-Term Prompts
Before writing a generic video prompt for a shot, read references/prompting/VIDEO-PROMPT.md; if the current project has the corresponding model adapter installed, the adapter then compiles the generic shot intent into the final execution prompt for that model. All model adapters uniformly follow references/prompting/MODEL-ADAPTER-CONTRACT.md, specifying the exact endpoint/model/mode, current official capability verification, input mapping, execution settings, and unknowns. When the same shot needs to be tested in parallel across multiple models, additionally read references/prompting/MODEL-COMPARISON.md, keeping the same SHOT.md and consecutive generation result numbering without duplicating shot directories per model.
Prompts for reusable assets are saved in the corresponding video/materials/ directory; shot prompts are saved in the corresponding shot directory using a small number of explicit versions like prompt_v01.md, prompt_v02.md, etc.
Prompts should only compile the information the current generation model truly needs. Internal shot/asset definitions can be more complete than the final model prompt; model capabilities, fields, duration, and reference input limits are determined by the actually loaded model adapter Skill or official documentation—do not hardcode them in this Skill. Execution settings (model/endpoint, duration, aspect ratio, sound on/off) and boundaries with long-term project records follow references/prompting/EXECUTION-PARAMETERS.md.
If there are no reliable model-specific rules, remain generic, clear, and verifiable in describing visuals and actions, and inform the user that generic prompts are being used—do not fabricate specific model capabilities.
3. Select Reference Materials
Use the minimal sufficient reference set. Every reference must answer "What does it stabilize?": character identity, costume, scene, product structure, motion, cinematography, or another specific role.
Do not cram unrelated references into the same generation to avoid identity competition, style contamination, or product structure drift.
4. Organize Disposable Generation Packs
Before formal packaging, read references/planning/GENERATION-PACK.md, and follow it according to the dependency batch (image/sound/video pack), return naming, minimal reference set, import-back, and deletion boundaries; when the pack needs to be handed directly to the user, use references/planning/PACK-TEMPLATES.md to generate a self-contained task file. For project-level pack initialization, formal file copying, returns directory, status checks, zipping, and safe cleanup, prioritize reusing this Skill's built-in scripts/generation_pack.py; do not write ad-hoc packing scripts for each project. This CLI only handles the file lifecycle—it does not decide prompts, reference responsibilities, or review conclusions.
Create a descriptive directory under the project's .tmp/. The pack should remain simple by default:
.tmp/<generation-pack>/
├── README.md
├── <prompt files>
└── materials/
Only copy the prompts and reference materials needed for this specific generation batch. The README must at least specify:
- The goal(s) of this generation;
- Recommended generation order (if there are dependencies);
- Which references each item uses;
- Return filenames;
- Hard constraints the user must explicitly check.
Image assets should use their corresponding long-term filenames upon return; before naming returned shot videos, use generation_pack.py next-take to query the next unused monotonically increasing takeNN for that shot—do not manually guess numbers or restart from take01 after switching models.
5. Import Results
After the user brings back generation results, first verify file correspondence, then place the formal results back into their respective permanent directories:
- Reusable assets →
video/materials/<category>/; - Shot results →
video/shots/<shot-id>/; - Shot-specific sound/images → the same shot directory.
Only after video-review has explicitly accepted a returned file should you use generation_pack.py archive --confirm-reviewed to copy it to its permanent location; this action keeps the original file in returns/ and returns a SHA-256—do not overwrite existing permanent files. After all formal archival is complete and the temporary pack is confirmed to contain no unique information, use cleanup to delete the disposable generation pack.
6. Iteration Discipline
When generation fails, first determine whether the issue originates from:
- Long-term assets/identity definitions;
- The SHOT.md itself;
- Prompt expression;
- Model execution randomness;
- Defects fixable through deterministic post-production.
A single retry should change only one major variable at a time. Do not rely on endlessly lengthening prompts as a substitute for problem diagnosis.
Completion Criteria
The pack the user receives is ready to execute the current generation task directly; return filenames are clear; the formal project remains the sole long-term source of truth; after results are archived, temporary packs can be safely deleted.