Communitygithub.com

lhaovo/short-video-skills

Translates a finalized storyboard into two directly executable lists—an Asset List (which images to prepare and their prompts) and a Generation List (duration, mode, material references, and prompts for each video segment). Covers visualization, asset numbering, segment splitting, Seedance video prompt syntax, first-frame strategy, consistency, and failure diagnosis. Use when the user says 'turn the storyboard into prompts,' 'write video prompts,' 'which images does this video need,' 'generation list,' or 'a specific shot won't generate.' Only translates and produces lists; does not rearrange content or directly generate images or videos.

What is short-video-skills?

This AI agent skill, named "Video Prompt Station," serves as a critical translation layer between a human-readable storyboard and machine-executable generation instructions for short-form videos. Its core purpose is to automate the structured process of breaking down a storyboard into two essential deliverables: an Asset List detailing every image required (with specific image prompts) and a Generation List specifying the duration, mode (e.g., first/last frame, reference image, or text-to-video), material references, and video prompts for each segment. It targets platforms like Seedance and is designed for use with AI coding agents such as Claude Code, Cursor, and Codex. The skill enforces nine strict quality checks to ensure consistency, correct asset referencing, and accurate transcription of voiceover text. It explicitly does not judge content quality, restructure the narrative, or generate final assets; instead, it provides a reliable, prompt-ready blueprint to minimize generation failures and ensure the final output matches the intended storyboard.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lhaovo/short-video-skills/tree/HEAD/short-video-prompt

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Video Prompt Station

A storyboard meant for human eyes and a generation list that can run smoothly are separated by a layer of translation. This skill provides that translation layer.

It produces two files: an Asset List (which images to prepare) and a Generation List (how to generate each segment).

It does not re-select topics, modify the script structure, or judge the quality of the content—those are upstream tasks. It also does not generate images or videos directly; it only articulates instructions clearly enough for direct execution.


I. Five Ironclad Rules

Listed first because each one corresponds to a common type of failure.

  1. Assets First. No numbering means no prompts allowed. If the same product looks different in segment 3, the root cause is almost always that assets were not established.
  2. One video prompt describes one continuous moment. When the scene changes, split it into a new segment. Don't let the model do scene transitions.
  3. Reuse the subject's anchor phrase verbatim. Using a synonym is the same as changing the person.
  4. Determine the product source before writing prompts. Prioritize real footage or official materials when available. If not available, AI generation is acceptable, but geometry, printing, and logos must be hardcoded. Shots with parameter or efficacy claims must use real footage or official materials.
  5. Write video prompts positively; use negative prompts only for image prompts. These two syntaxes cannot be borrowed from each other. See references/prompt-syntax.md, section eight.

II. Input

Required

ItemSourceWhat to do if missing
StoryboardPlan document, Section 4: Six-column short table and detailed per-shot descriptionsIf shot numbers, numeric durations, or key handover fields are missing, reject the input, do not guess.
Product real name and specificationsPlan document, Section 1If missing, ask the user. If not feasible, mark as "To be confirmed."
Target modelUser specifies, default is SeedanceUse the default; no need to ask further.

Short table six columns: Shot Number / Duration (s) / What this shot shows / Voiceover / On-screen Text / Shot Function. Detailed descriptions supplement audience cognition, pre-requisites, key visible facts, and duration intent per shot number.

Optional

  • Aspect ratio (default 9:16), video resolution (default 480p, consistent with the generation side)
  • Min/Max segment duration (default 5–10 seconds)
  • Whether audio is needed (Must be ON. The model reads the voiceover directly; turning it off leaves the audio silent. Only turn it off when explicitly confirmed it's a silent shot.)

Two Entry Points

Entry PointHandling
Standard EntryReads the plan's Section 4, required fields complete, proceed directly to step 3.
Relaxed EntryOnly has an external markdown table. Parse it first, display it back to the user for verification, and mark any missing fields.

For relaxed parsing, explicitly state: "This is a degraded parsing result, please verify." Silent failures are more troublesome than reporting errors.


III. Eight Steps

1 Read Table → 2 Visualize → 3 Extract Assets → 4 Split Segments → 5 First Frame → 6 Compose Prompts → 7 Output Lists → 8 Self-Check

Step 1 · Read Table

Match the short table with the detailed shot descriptions by shot number, and remember the product information. This step is only for "health check," not creation. If the planning skill is installed, run its scripts/check_plan.py --plan <plan_path>; when this skill is installed standalone, check each shot against the input field checklist. If an old five-column table lacks handover fields, reject it and request it be filled.

Three checks:

  • Shot numbers are sequential and durations are positive.
  • Duration of each shot is between 2–6 seconds (mark any outliers).
  • The storyboard has a "what this shot shows" column, not just voiceover.

Step 2 · Visualize

This is the only creative step in the entire skill, and also the one most easily skipped.

The storyboard provides content descriptions ("Explains why it's hot outside but cool inside"), but prompts need images. Each segment must be filled with the following fields:

ItemWhat to askExample
SubjectWhat is in the frameWhite ceramic lunchbox, lifted lid
StateCurrent state of the subjectLid open, lunchbox on the table
ActionWho is doing what, one single actionSpoon inserted from the center
EnvironmentWhere, what's aroundOffice desk, microwave in the background
LightingLight source direction, color temperatureWarm top white light, window light from the left
Shot TypeFraming sizeClose-up
Camera Position/AngleCamera position relative to subjectDesk height, 30 degrees in front-side
Camera MovementHow the camera moves (choose only one)Fixed shot, slow push-in

All fields are mandatory. Each segment's list must explicitly write out the subject, state, action, environment, lighting, shot type, camera position/angle, and camera movement. When a field is clearly inapplicable, state the reason. If a field is missing, try to fill it first; if you can't, ask the user one question—do not leave it blank and write it into the prompt, because the model will always make something up for blank fields.

"Key visible facts" and "pre-requisites" from the storyboard must be clearly assigned in the generation list: either a visible state in the first frame or an action occurring within the video segment. An action that unfolds over time cannot be required to be expressed in a single first frame showing the beginning, middle, and end simultaneously.

Step 3 · Extract Assets

Follow references/assets.md to do four things: number, split, determine source, and produce a master table.

  • Numbering prefix: PR Product / SC Scene / CH Character / SP Prop
  • Criterion for inclusion: Referenced by two or more segments, or requires identity consistency.
  • Three source tiers: Real footage / Official materials (use if available), AI generation (use when no real footage available, lock geometry and printing), To be supplemented.

Step 4 · Split Segments

Find the intersection of three constraints:

  1. Segment duration ≥ Voiceover word count / 4 words per second (Model reads Chinese at about 4–5 words per second; use the lower bound)
  2. Single segment duration 5–10 seconds (model limits, see prompt-syntax.md)
  3. One action per segment

The reason for using 4 instead of 6.5 for rule 1: The model does not speed up its reading; it simply drops the latter half of the sentence. Segments cut with an optimistic reading speed will result in generated videos missing sentences, which is far more troublesome than having one extra segment.

Max voiceover per segment: 36 characters. If exceeded, split the segment. Do not compress text to fit.

For unusually long shots, use extension + handover frames: explicitly write what visual state the previous segment's final frame is in, not just "continues from previous segment."

Step 5 · First Frame

Not every segment needs a first frame. Determine based on sensitivity:

First Frame RequiredDirect Text-to-Video Acceptable
Product close-up, hand-held actions, logo or text appearingEmpty shot, atmosphere, transition, pure lighting effects

First frame images are written using image prompts (see assets.md Section 4, Seven Modules), with the principle: "Real product as base + AI-generated scene."

Step 6 · Compose Prompts

Write using the six-block structure from references/prompt-syntax.md:

[Style and Aspect Ratio] → [Material References] → [Lock Subject] → [Timeline] → [Voiceover & Sound] → [Quality Constraints]

Four must-include items: a single camera movement, a Motion: list, the voiceover text verbatim (read the script, don't change words), and No subtitles.

The fifth block now carries the voiceover itself—there's no separate dubbing stage anymore; the model reads the lines from this block. Copy the voiceover column from the storyboard word for word, without adding tone markers, bracketed notes, or changing a single word. If you change a word, the subtitles will be out of sync.

Step 7 · Output Lists

Fill two templates and save them to an upstream-specified directory (default: 02-资产清单.md, 03-生成清单.md).

Step 8 · Self-Check

Run six checks; run the script if available:

python scripts/check_gen_list.py --dir <production_directory>

Exit codes: 0 Pass / 2 Fatal items found / 3 File unreadable.


IV. Two Deliverables

Asset List (02-资产清单.md)

A table with six columns, followed by the image prompt for each asset:

NumberTypeUseSourceReferenced by SegmentsStatus
  • Type: Product Main Body / Product Detail / Scene / Character / Prop
  • Source: Real or Official Material / AI Generation / To Be Supplemented
  • Status: Existing / Image to Generate / To Be Shot

Generation List (03-生成清单.md)

A summary table + the full prompt for each segment (prompts are too long to be in the table):

Segment #Shot #DurationModeReferenced AssetsFirst FramePost-ProductionCandidate CountPre-requisite/Key Fact
  • Mode: First/Last Frame / Reference Image / Text-to-Video
  • First Frame: S01_f01 or "None"
  • Candidate Count: Suggested 2–4

The three mode options are provided for downstream selection; not all models support them. KIE Seedance currently only supports Text-to-Video, First Frame, and First/Last Frame modes. The Reference Image mode must be downgraded to First Frame—the downgrade rule is in short-video-generate. This skill just writes the list as specified; it doesn't need to adjust its output based on the model's capabilities.

Below the table, for each segment (e.g., ### S01 · Shots 1–2 | 8s | First/Last Frame), provide the eight visual fields and the complete prompt, along with the first frame source, pre-requisites, and post-production items.

Templates are in assets/.


V. Nine Self-Checks

#CheckWhat to do if it fails
1Every segment has a shot number, no extra segmentsGo back to Step 4 to re-split.
2Sum of segment durations differs from total storyboard duration by ≤1 secondAdjust segment lengths, do not modify the storyboard.
3All asset numbers referenced in the list are defined in the asset listAdd definition or remove reference.
4Primary mode is unique (First/Last Frame and Reference Image are not mixed)Unify across the entire video.
5Product shots have their source specified; shots with claims use real footage or official materialsGo back to Step 3 to change the source.
6Every video prompt includes: a single camera movement, Motion:, and No subtitlesFix each one.
7For segments with voiceover, the voiceover block is word-for-word identical to the storyboard's voiceover columnCompare segment by segment; even a single wrong character must be corrected.
8All visual fields are completeCheck F7 only verifies that the "Visual Fields" table within a segment exists, is complete, and has values; it does not infer from prose keywords. Subject, state, action, environment, lighting, shot type, camera position/angle, camera movement, and dependencies/visible facts must all be filled in, with reasons for inapplicable items.
9Dependencies are passed alongStoryboard pre-requisites and key visible facts have been mapped to either a first frame or a segment action.

Checker F8 only confirms that the summary table has "Pre-requisite/Key Fact" filled in for each segment; it cannot prove that the content is actually represented by the first frame or in-segment action. G2 still requires manual per-segment mapping verification.

The precise meaning of check #4: First/Last Frame and Reference Image are mutually exclusive. Text-to-Video mode is only for shots without a subject. If product shots mix the two primary modes, the outputs will not join up seamlessly.

Check #7 is new and the easiest to miss. The method is simple but effective: Place the storyboard's voiceover column and the list's voiceover block side-by-side, and compare word-by-word. If you change a single punctuation mark or swap a synonym, the subtitles will need to be updated accordingly—but subtitles are done in S4, and by then it's too late.

While you're at it, check two things: whether any segment's voiceover exceeds 36 characters (the model will skip words), and whether any annotation like (laughs) or [excited] has snuck in (the model will read it out loud).


VI. Boundaries

  • Does not rearrange content: Shot numbers, sequence, and durations come from upstream; this skill does not modify the structure.
  • Does not judge content quality: Topic selection, hooks, and structural validity are upstream responsibilities.
  • Does not generate directly: Only produces lists and prompts. Image generation is handled by short-video-assets, video generation by short-video-generate.
  • Does not guarantee first-try success: Generation is probabilistic; this skill only ensures that a "good candidate" has a higher probability.
  • Does not copy parameters: Model parameters change; this skill provides principles and general guidelines. Specific values should be referenced from the official documentation.

VII. Reference Documents

FileWhen to Read
references/prompt-syntax.mdWhen writing video prompts; adjusting camera movement, timeline, or material references
references/assets.mdWhen extracting assets, writing image prompts for asset images or first frames
references/consistency.mdWhen multiple segments don't match, products deform, or faces are wrong
references/troubleshooting.mdWhen a specific segment repeatedly fails to generate

Templates: assets/asset-list-template.md, assets/gen-list-template.md Validation: scripts/check_gen_list.py

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

lhaovo/short-video-skills

为视频生成准备可用的图——把资产清单变成能直接喂给图生视频的素材:排生产顺序、定资产级别、出候选图、做一致性验收、按编号落盘、回写清单状态。支持三种来源:实拍、AI 生成、官方素材,不强制实拍。当用户说「准备素材」「出资产图」「首帧图」「角色三视图」「产品图跑一下」「资产对不上」「这条要哪些图」时使用。只管把图做出来并验收,不写分镜,不直接生成视频。

lhaovo/short-video-skills

一条短视频从策划到发布的流程总控:建制作目录、依次走「剧本分镜 → 提示词 → 生成 → 交付 → 发布」五段、每段设门禁、记录流程状态、支持跨会话续做。当用户要开一条新片子、问「下一步做什么」、想接着做某条没做完的片子、要把分镜变成提示词、要整理素材与成片、要准备发布包时使用。本技能只规定流程、目录与产物标准,不重复各环节的写作规范。

lhaovo/short-video-skills

把已过 G2 的生成清单落成真实视频片段——按段建 KIE Seedance 任务、轮询、下载、媒体体检、抽帧质检、听声核台词,并把每段的状态与请求指纹写进生成台账。三种模式互斥(文生 / 首帧图生 / 首尾帧图生)。旁白由模型直接念,台词照稿写进提示词,不走独立 TTS 配音。当用户提到视频生成、出片段、跑 Seedance、首帧图生、首尾帧、原生音频、台词念错、任务查询、片段下载、生成失败重试时使用。只管「把已定的画面和台词变成成段素材」,不重新设计视觉、不改台词文本、不做字幕、不做剪辑。

lhaovo/short-video-skills

把「我想拍点什么」变成一条想清楚的片子——先定主题(出 5 个候选、标明类型、给出推荐与淘汰理由),再定结构与分段剧本,最后切成镜头级内容分镜。支持两种入口:一句话主题(需要发散选题)与已有拆解剧本(跳过选题,先问复刻需求与复刻强度再判定改写)。当用户提到选题、定主题、短视频策划、写剧本、写大纲、分镜、镜头脚本、不知道拍什么、内容怎么排、科普干货、剧情软广、钩子怎么写、复刻别人的剧本时使用。只管内容层(讲什么、怎么讲),不碰执行层;内置的内容红线只防明显自伤,不替代合规审查。

Related Skills