Communitygithub.com

Short Video Control Panel

A full-process controller for short video production from planning to publishing: creates production directories, walks through the five stages of 'Script & Storyboard → Prompts → Generation → Delivery → Publishing', sets gate checks for each stage, records process status, and supports cross-session continuation.

What is Short Video Control Panel?

The Short Video Control Panel skill is a comprehensive workflow orchestrator designed for AI agent users (e.g., Claude Code, Cursor, Codex) to manage end-to-end short video production pipelines. It standardizes the entire process into five sequential stages: Script & Storyboard (S1), Prompts (S2), Generation (S3), Delivery (S4), and Publishing (S5). Each stage has a clear entry gate (G1–G5) that must be passed before proceeding, preventing common rework issues. The skill enforces a strict directory structure under `outputs/`, with a status file `00-流程状态.md` that acts as a persistent checkpoint, allowing users to resume production across sessions or even by different team members. It integrates with sub-skills like `short-video-plan`, `short-video-prompt`, `short-video-assets`, and `short-video-generate`, but does not duplicate their content creation, prompting, asset generation, or delivery work; instead, it defines the directory, gate criteria, and handoff standards between stages. This skill is ideal for developers and content creators who need a robust, scalable, and auditable framework for producing short videos on platforms like Douyin, Video Account, and Xiaohongshu.

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

Ask in your favorite AI

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

Documentation

What does Short Video Control Panel do?

A video, from idea to release, happens entirely within one directory. This skill manages three things: how the directory is built, how the five stages are walked through, and what qualifies as passing each stage.

It does not teach scriptwriting (that's what short-video-plan is for), does not replace generation models, and does not perform actual editing. What it guarantees is: at any point during production, opening the directory tells you which step you're on, what to do next, and whether you can move forward.


Part 1: Five Stages

S1 Script & Storyboard → G1 → S2 Prompts → G2 → S3 Generation → G3 → S4 Delivery → G4 → S5 Publishing → G5 → Complete
StageWhat to DoMain DeliverableWho Does It
S1 Script & StoryboardTopic selection, type, structure, script, content storyboard01-Plan.mdshort-video-plan
S2 PromptsStoryboard → Asset list + Generation list02-AssetList.md, 03-GenerationList.mdshort-video-prompt
S3 GenerationPrepare assets first, then produce segmented videos04-Assets/short-video-assets + short-video-generate
S4 DeliveryStitch segments, subtitles, music, mixing05-Finalized/Editing tools
S5 PublishingTitle, cover, topics, timing, identifiers06-PublishPack.mdThis skill

Only advance one stage at a time. Bypassing stages is the primary source of rework—entering generation without passing G2 will result in assets that don't match the storyboard shot numbers.


Part 2: Directory Standards (This Skill is the Sole Authority)

All deliverables go into the same directory, defaulting to the project root outputs/. Other stages will no longer define their own directory rules; they must all follow this section.

2.1 Structure

outputs/
└── 2026-09-29-SleepDeprivationLikeADHD/
    ├── 00-ProcessStatus.md
    ├── 01-Plan.md
    ├── 02-AssetList.md
    ├── 03-GenerationList.md
    ├── 04-Assets/
    │   ├── 01-AssetImages/
    │   ├── 02-FirstFrame/
    │   └── 03-Clips/
    ├── 05-Finalized/
    │   └── Finalized-v1.mp4
    └── 06-PublishPack.md

The purpose of the number prefix: as soon as you open the directory, files are sorted in process order; a quick glance tells you which stage you're on and which are missing—no extra navigation file needed.

2.2 Directory Name

Format is fixed: YYYY-MM-DD-Title

ItemRequirement
DateDate of directory creation, never changes after that
SeparatorOne hyphen between date and title; hyphens also used to connect words within the title
LengthTitle 8–15 characters
DisallowedSlashes, backslashes, colons, asterisks, question marks, quotation marks, angle brackets, vertical bars, spaces, and punctuation
DuplicateSame day, same title: append -2, -3

The title should be the most recognizable phrase from the chosen proposition, not a category name:

InvalidValid
Popular Science TipsSleepDeprivationLikeADHD
Douyin Short VideoHotFoodOutsideColdInside
Oct22TopicThermosCoffeesColdInHalfDay

Judgment method: If you look at the directory name three months later, can you remember which video this was? Category names will definitely be forgotten within three months; a proposition won't.

2.3 Three Unbreakable Rules

  1. The directory name, once created, must never change. Changing it will immediately break asset reference paths. To change the title, edit the publishing title in 06-PublishPack.md, not the directory.
  2. Do not change the date across days. If you continue the next day, the directory keeps the original creation date—do not create a new directory.
  3. One video, one directory. For series or matrix content, do not create subdirectories; create a new top-level directory with a distinguishing word in the title.

2.4 First Steps for a New Project

When the user says "start a new one," first gather three things, then create the directory:

  • Platform (Douyin / WeChat Channels / Xiaohongshu)
  • Target duration
  • One-sentence direction

Then do four things in order:

  1. Generate the directory name per 2.2, read it to the user for confirmation—this is the only chance to rename without penalty
  2. Create the directory and the four subdirectories: 04-Assets/01-AssetImages, 02-FirstFrame, 03-Clips, 05-Finalized
  3. Write 00-ProcessStatus.md: current stage = S1, fill in the project acceptance profile, and mark all five gates as "Not Started"
  4. Transition to S1, hand over to the content layer

If you build the directory without confirming the name first, the cost of renaming later will be borne by the user.


Part 3: Status File

00-ProcessStatus.md is the save point for this video. Update it immediately after each stage advancement—don't batch it.

Required fields:

FieldPurpose
Directory name, creation date, platform, target durationIdentification
Current stageOne of six: S1 / S2 / S3 / S4 / S5 / Completed
Five gate resultsG1–G5 individually: Passed / Not Passed / Not Started
Deliverable listExisting files + Missing files
Blocking itemsWhat's currently blocking progress, waiting on whom
Project acceptance profileContent type, goal, rhythm intention, maximum non-dialogue interval limit, silent segment handling, hard constraints, approver/finalization conditions
Version logOne line per change: date + what changed + why

Template is in assets/flow-state-template.md.

It solves one very concrete problem: switch sessions, come back a week later, or hand off to someone else—reading this one file allows you to resume. Without it, on day three you'd have to go through all the assets to remember where you were.


Part 4: Five Gates

A gate has only two outcomes: pass, or don't pass. If it doesn't pass, you stay in the current stage. No "let's just move ahead and see."

G1 · Script & Storyboard Pass (S1 → S2)

  • 01-Plan.md has all five sections complete, and all eight self-check questions pass
  • Total storyboard duration deviates from target by ≤30%
  • Each shot is 2–6 seconds, shot numbers are sequential with no gaps
  • Redline self-check passed: no unproven claims, no fabricated testimonials, no absolute wording, no personal information
  • User has confirmed the topic choice and script
  • Project acceptance profile filled; if platform, target duration, or hard constraints are unconfirmed, record user-authorized defaults, otherwise stay at S1
  • Acceptance profile declares the maximum non-dialogue interval limit; projects allowing long silences must specify the handling method for those segments
  • Each shot has filled fields: function, audience cognition, prerequisites, key visible facts, and duration intention; textless shots describe handling via action, sound effects, music, or atmosphere
  • When using the planning skill, run its scripts/check_plan.py to eliminate mechanical field, duration, and dependency numbering errors; when only this process skill is installed, manually verify against the G1 checklist and record that the script was not run

G2 · Generation List Pass (S2 → S3)

  • Every prompt has a corresponding shot number; no extra segments
  • Total segment duration differs from total storyboard duration by ≤1 second
  • All asset references in the generation list are defined in the asset list—no dangling references
  • Main mode is finalized: first & last frame OR reference image, one of the two; text-to-video only for shots without a subject
  • Product parameter, packaging, logo shots are marked as "must use real images"—not handed over to pure text-to-video
  • Dialogue shots: the original dialogue text is written into the prompt, word-for-word consistent with the storyboard's spoken line (no separate voiceover; if this is skipped, the segment will be silent)
  • The "visual field" table for each prompt's description specifies: subject, state, action, environment, lighting, shot size, camera position/angle, camera movement, and dependencies/visible facts; non-applicable items must explain why
  • Key visible facts, prerequisites, and duration intention from the storyboard are mapped to the first frame or segment action

G3 · Asset Pass (S3 → S4)

  • Every segment has a usable version; missing ones are written into blocking items
  • Product geometry is not deformed; labels are readable and unchanged
  • Adjacent segments connect: same product, same lighting direction, same frame
  • Iconic identifying points and their quantities from the IP/character trait list have been verified shot-by-shot in the final version clips
  • When multiple candidates exist for the same shot, the selected version is written into the list
  • Dialogue segments have been checked sentence by sentence: no missing lines, no mispronounced key words
  • Final dialogue conclusions are recorded in 04-Assets/00-DialogueFinal.json; fuzzy keyword transcriptions are only for human verification assistance
  • A manual, full-video asset review has been completed in chronological order, checking cross-shot causality, character/prop state, spatial continuity, and rhythm; pre-generation first-frame storyboards cannot replace this
  • When a final clip's dialogue timeline is available, perform a rhythm pre-check first; if no finalized video subtitles exist, record that final verification will be done at S4—do not treat the pre-check as conclusive
  • Non-dialogue items promised in the generation list (e.g., sound effects, superimposed text) all have an S4 execution plan—no unfulfilled promises

G4 · Finalized Video Pass (S4 → S5)

  • Actual duration deviates from target by ≤10%
  • Run this skill's scripts/check_rhythm.py using the finalized video subtitles and actual duration; attach the report and listening verification conclusions in 00-ProcessStatus.md; subtitle gaps are only a proxy metric for non-dialogue segments
  • Subtitles match the actual spoken audio (not the original script—if mispronounced, what was actually said takes precedence)
  • Voice is clear; background music does not overpower the voice
  • Aspect ratio, resolution, and frame rate meet the target platform's requirements
  • Longest non-dialogue interval in the finalized video is determined by manual listening, with subtitle gap reports assisting localization; if it exceeds the value declared in the acceptance profile and the segment was not declared as non-verbal in the storyboard, reject it
  • Segments declared as allowing long silence must specify in the storyboard how the gap is filled (action, sound effects, music, atmosphere), and mark the corresponding files and timestamps in the delivery deliverables
  • All non-dialogue items promised in the generation list are completed and have locatable deliverables, or have an explicit waiver from the approver

G5 · Pre-Publishing Pass (S5 → Complete)

  • Heavily regulated categories (medications, health supplements, medical devices, finance, education) have undergone separate review
  • AI-generated content has been labeled as required by the platform
  • Title, cover, topics, and publication time are all ready
  • No personal information, no unauthorized portraits or locations

Part 5: Handoff Cards

Stages only exchange information through files—not through "what we were just talking about." At the end of each stage, fill out a card and write it into the "Handoff" section of the status file:

HandoffWhat the Card Must Include
S1 → S2Six-column storyboard summary and per-shot details (cognition/dependencies/visible facts/duration intention), product real name and specifications, information that must be presented authentically
S2 → S3Each segment's generation task: segment number, duration, prompt, reference image number, mode, candidate count
S3 → S4Asset list: file name, segment number, duration, usability; whether dialogue has been checked segment by segment, whether BGM has been selected
S4 → S5Finalized video file, duration, aspect ratio, cover asset, selling points, and topic keywords

Full field specifications are in references/stage-specs.md.


Part 6: Resuming an Unfinished Video

When the user says something like "continue that 'SleepDeprivation' video":

  1. List directories under outputs/, match by name; if no match, ask—don't guess
  2. Read 00-ProcessStatus.md, only look at the current stage and blocking items first—don't read all deliverables yet
  3. Report three lines: where you are, what's blocking, what's next
  4. After confirmation, proceed to the corresponding stage

Don't start over from scratch. Also, don't skip the status file to infer the stage—guessing wrong could re-open a gate that was already passed.


Part 7: Relationship with Sub-Skills

LayerWhoManages What
Process LayerThis skillDirectory, stages, gates, status, handoffs
Content Layershort-video-planTopic selection, type, structure, script, content storyboard
Prompt Layershort-video-promptStoryboard → Asset list + Generation list
Asset Layershort-video-assetsList → Images: scheduling, producing candidates, acceptance, saving to disk
Generation Layershort-video-generateList → Clips: creating tasks, polling downloads, media health checks, tracking
Delivery LayerEditing toolsStitching, subtitles, music, mixing

Three rules:

  • Content layer does not define directories—it only places deliverables in the locations specified by the process layer
  • Prompt layer does not restructure content—it only translates; this skill does not copy its methodology
  • Asset layer does not modify content or prompts—it only ensures images are produced, match requirements, and pass verification
  • Generation layer does not alter visual design—it only animates the already-fixed frames, leaving traceable task records
  • Process layer does not rewrite any layer's writing standards—it only judges whether the gate is passed

In case of conflict: directory and file names follow this skill; content decisions follow short-video-plan.


Part 8: Boundaries

  • Does not write script standards: topic selection, structure, script, storyboard writing methods are in the content layer; this skill does not duplicate them
  • Does not replace generation models: describes tasks and acceptance criteria clearly; does not guarantee a specific generation will succeed
  • Does not perform actual editing: defines finalized video standards; actual editing is done in editing tools
  • Does not promise traffic: the five gates ensure "no step in the process is missed, assets can be connected, and publishing is compliant"—but do not guarantee viewership numbers
  • Does not replace platform rules or legal review: platform policies and laws can change; heavily regulated categories must be separately confirmed

Part 9: Reference Materials (Load on Demand)

FileWhen to Read
references/stage-specs.mdBefore each stage, when filling out handoff cards
references/delivery-and-publish.mdAt S4 for finalizing the video, at S5 for creating the publish pack
references/regression-cases.mdAfter modifying gate scripts or judging criteria, for retesting
assets/flow-state-template.mdWhen creating a new process, or whenever updating the status
assets/publish-pack-template.mdAt S5, when filling out the publish pack

S2's methodology is not within this skill—it is handled by short-video-prompt. This skill is only responsible for: checking G1 before entering S2, and running G2 after the new list is produced.

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

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

lhaovo/short-video-skills

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

lhaovo/short-video-skills

把已定稿的分镜表翻成可直接执行的两份清单——资产清单(要准备哪些图、每张图的图像提示词)与生成清单(每段视频的时长、模式、素材引用与提示词)。覆盖画面化、资产编号、切分生成单元、Seedance 视频提示词写法、首帧方案、一致性与失败诊断。当用户说「把分镜变成提示词」「写视频提示词」「这条片子要哪些图」「生成清单」「某个镜头生成不出来」时使用。只做翻译与清单,不重新编排内容,不直接出图出片。

Related Skills