Help YouTubers or UP主 (video creators) prepare structured 口播稿 (spoken narration scripts), blog posts, platform-specific publishing materials, and an X/Twitter promotional post.
Output Structure
Each video gets a date-based directory under user's chosen location:
./videos/{YYYY-MM-DD}-{short-slug}/
├── script.md # 视频口播稿
├── blog.md # 博客文章
├── youtube.md # YouTube 发布素材
├── bilibili.md # Bilibili 发布素材
├── x.md # X (Twitter) 推广文案
├── fact-check.md # 技术事实审核表(技术类视频必出,见 Step 8)
└── cover.png # 封面(可选,见 Step 10)
Interactive Workflow
Step 1: Gather Information
IMPORTANT: Before writing anything, collect sufficient context from the user. Ask the user:
请提供以下信息,帮我为你准备视频内容:
1. **视频主题**:这期视频讲什么?(必填)
2. **目标平台**:YouTube / Bilibili / 两者都有?(默认:两者)
3. **目标时长**:大约几分钟?(默认:10分钟)
4. **目标观众**:面向什么人群?(如:开发者、AI爱好者、初学者)
5. **关键要点**:你希望视频覆盖哪些要点?(可以是大纲、笔记、或链接)
6. **相关资料**:有没有参考文章、文档、代码仓库?(可选,我可以帮你研究)
已有部分信息的话,直接告诉我就好,缺的我会追问。
If the user provides partial info upfront, only ask for the missing pieces.
Step 2: Research (If Needed)
If the user provides reference URLs, docs, or repos:
- Use WebFetch to read reference articles/docs
- Use Read/Grep/Glob to explore code repos
- Use WebSearch to find supplementary information
- Summarize key points for script use
If the topic is about a specific technology/tool:
- Research its core features and selling points
- Find common pain points it solves
- Look for comparison angles with alternatives
Step 3: Create Directory
Create the date-based directory:
./videos/{YYYY-MM-DD}-{short-slug}/
Example: ./videos/2026-03-07-react-server-components/
The short-slug should be a brief, descriptive kebab-case label derived from the topic.
Step 4: Write Script (script.md)
Write a structured 口播稿 (spoken narration script) in the user's preferred language. The script is what the user reads aloud while recording, so two things matter as much as the content:
- read-aloud friendly (read-aloud first): every sentence must be something you can "say smoothly out loud," not an article written for people to read. Sentences that are too formal or too much like technical documentation will slow down recording - after writing, go through it once and change long modifiers, piles of jargon, and nested clauses into short spoken sentences (see details in
references/script-guidelines.md's "read-aloud friendly" rules). - On-screen presentation recommendations (screen-share cues): as an AI, you need tointelligently judge paragraph by paragraphwhat visual works best with this segment of spoken narration - a certain section of a webpage, an app / terminal interface, a piece of code, or a comparison / quick-reference card - and write it as
(屏幕:……)notes. Purpose: while the user reads from the script, they can tell at a glance what should be shown on screen. Add an "on-screen presentation general rules" summary table at the beginning of the script (visual source + paragraph-by-paragraph mapping), then use inline(屏幕:……)in each body paragraph to map it to the specific content. Not every paragraph needs a visual cut - judging "whether it is needed" is also your job; pure narration segments should be marked "pure narration."
Reference:
templates/script.md- Output format template (including the "on-screen presentation general rules" table and inline screen notes)references/script-guidelines.md- Detailed writing rules (including the two rules "read-aloud friendly" and "on-screen presentation recommendations")references/examples-tutorial.md- Standard model for tutorial / configuration types,read before starting to write configuration / how-to / setup type videos
Step 5: Write Blog Post (blog.md)
Repurpose the video content into a blog post to maximize content utilization. The blog should NOT be a transcript - it should be a standalone article that reads naturally.
- See
templates/blog.mdfor the output format template - See
references/blog-guidelines.mdfor detailed writing rules - IMPORTANT: Follow the
personal-chinese-writing-styleskill conventions
Step 6: Write Platform Descriptions (youtube.md & bilibili.md)
Generate separate publishing materials for each platform. The two platforms share the same core content but differ in structure and promo placement.
- See
templates/youtube.mdandtemplates/bilibili.mdfor output format templates - See
references/platform-differences.mdfor platform-specific rules and guidelines - YouTube chapters: put chapter timestamps in the YouTube description (starting from
00:00, estimated according to the script structure); above the list, first put a disclaimer line: "Timestamps are estimates based on the script structure; adjust them to the actual duration after editing is complete." Do not put chapters in the Bilibili description. - Reference materials block: for videos containing external links (repo / official website / documentation), add a "Reference materials" block at the end of the YouTube description, listing the links, as well as the cover source file path (
cover.html/cover.png) for easy reuse.
Step 7: Write X/Twitter Promo (x.md)
Generate a short promo tweet that the user can post alongside the video to drive traffic. Not a summary — a hook that makes people want to watch.
- See
templates/x.mdfor the output format template - IMPORTANT: Follow
personal-chinese-writing-styleskill'sreferences/social-media-style.mdrules (link position, bullet vs prose, tone) - Leave
[视频链接]as a placeholder — user fills in the real URL on publish
Step 8: Fact Audit (technical fact review)
Required for technical interpretation / reviews / any video containing technical factual points; cannot be skipped. Verify the content once before style proofreading - because the review may require deleting or changing content in that segment.
- Verify item by item: list every technical statement in
script.mdandblog.md, mark the source, and give a verification conclusion. For rules and source grading, seereferences/fact-audit.md - Three conclusion levels: ✅ Valid (has an official source, can be stated directly) / ⚠️ Needs on-screen citation (non-official source, keep it but show visible evidence on screen during recording) / ❌ Delete (no source or is an inference, remove from the script and blog)
- Never let the model's guesses / hallucinations enter the draft: delete any inference not supported by a source, or change it to "the official side has not disclosed it; do not guess"
- Closed-source / research preview content: The script must include a disclosure sentence ("Research preview, some details not yet public") and a boundary sentence ("Do not guess at undisclosed implementations"); verify the enabled mechanisms (environment variables / commands / menus) against the current official documentation; for disputed numbers, default to the official
- Output: Write the verification results as
fact-check.mdinto the video directory for easy review and traceability. For the format, seetemplates/fact-check.md
Step 9: Apply personal-chinese-writing-style (unified style proofreading)
After every file is written and fact-audited, run a dedicated polish pass over all generated Chinese text files. This is a required finishing step, not optional.
- Invoke the
personal-chinese-writing-styleskill and apply it to every generated file:script.md,blog.md,youtube.md,bilibili.md,x.md - The 口播稿 is no exception:
script.mdAlthough it is meant to be "spoken," it must still fully apply the punctuation and style rules — Chinese curly quotation marks, half-width em dash " - ", ASCII ellipsis "......", no heading numbering, concise titles, and no full-width/English punctuation left behind - Additionally do a "read-aloud" review(specific to the 口播稿, beyond standalone-style): Punctuation consistency does not equal easy to read. Go through it once more with
script.md, making sure every sentence rolls off the tongue - turn sentences that are too formal / too technical-document-like (long attributives, piled-up terminology, nested clauses, passive voice) into short colloquial sentences; you can read it silently once, and revise anywhere you stumble. For the criteria, seereferences/script-guidelines.md's "read-aloud friendly."(屏幕:……)On-screen notes are kept and must not be deleted by style proofreading. - Preserve colloquialism and natural speech flow: personal-chinese-writing-style only unifies punctuation and tone, and does not impose a template structure (do not turn script.md into the Hook/introduction/body/CTA routine)
x.mdstill follows personal-chinese-writing-style'sreferences/social-media-style.mdas the standard (link placement, bullet vs prose, tone)
Step 10: Generate Cover (封面, optional)
The cover is not a default output - first ask the user whether they want a cover, and generate it only if needed.
Ask:
要不要顺手做一张封面?
- 视频缩略图(YouTube / Bilibili)→ 我用 `cover-design`(代码驱动的排版封面,文字清晰、适合缩略图)
- 文章头图(博客 / X Article)→ 我用 `cover-image`(AI 生成的插画风头图)
- For thumbnail-type needs → call
cover-designskill - For article header image-type needs → call
cover-imageskill - Save the output into the video directory (e.g.
cover.html/cover.png)
Step 11: Review & Iterate
When done, prompt the user:
视频脚本和配套内容已准备好:
📂 {目录路径}/
├── script.md — 口播稿(约 X 分钟)
├── blog.md — 博客文章
├── youtube.md — YouTube 发布素材
├── bilibili.md — Bilibili 发布素材
├── x.md — X (Twitter) 推广文案
├── fact-check.md — 技术事实审核表(技术类视频)
└── cover.png — 封面(如已生成)
请检查内容,如果需要调整,告诉我:
- 需要修改哪个部分?
- 风格/语气需要调整吗?
- 有要补充的要点吗?
Personal Promotion Info
Users should configure their promotion block. On first use, ask the user for their promotion links and save to auto memory for cross-session persistence.
When asking:
我注意到这是你第一次使用视频策划 skill。请提供你的个人推广信息,我会记住以便后续使用:
- 社交媒体链接(Twitter、Bilibili、YouTube 等)
- 知识星球/社群链接
- 联系方式
- 其他固定推广信息(如课程链接、赞助信息等)
Save to auto memory directory as video-promo.md (e.g. ~/.claude/projects/.../memory/video-promo.md). On subsequent uses, check if this file exists in the memory directory and read it directly — no need to ask again.
Examples
See references/examples.md for detailed examples of different usage scenarios.
Critical Rules
- Ask before writing — when information is insufficient, you must ask follow-up questions; do not guess the user's intent
- Read-aloud friendly — The 口播稿 is meant to be read aloud by the author, so every sentence must roll off the tongue; sentences that are too formal / too technical-document-like must be turned into short colloquial sentences (see Step 4, Step 9, and
references/script-guidelines.md's "read-aloud friendly") - On-screen presentation recommendations — For each paragraph, intelligently determine what visuals should accompany this spoken segment (a section of a webpage / app / terminal / code / comparison card), write them as inline
(屏幕:……)notes, and give an "overall on-screen presentation guidelines" summary table at the beginning of the script; mark pure spoken segments as "pure voiceover" (see Step 4) - Do not add timestamps to the script; chapters only in the YouTube description —
script.mdChapter titles are not marked with timestamps (the pacing is controlled by the author during recording); the YouTube description includes estimated chapter timestamps (from00:00onwards) and add a disclaimer above the list (adjust to actual duration after editing); do not include chapters in the Bilibili description - Do not auto-publish — only generate files, do not perform any publishing operations
- Preserve the user's style — if the user provides a previous video style reference, try to stay consistent with it
- Promo info reuse — save to auto memory after first asking, then auto-fill subsequently
- Date directory — create a separate directory for each video by the current date
- Technical content reviewed before publishing — For videos containing technical facts such as technical explanations/reviews, every fact must be reviewed one by one before publishing (see Step 8); points without official sources must either be deleted or given a visible on-screen citation, never let the model's guesses/hallucinations enter the script, and produce
fact-check.mdfor the record - Unified style ending — All generated Chinese documents (including 口播稿) must be run through
personal-chinese-writing-styleat the end; see Step 9, cannot be skipped - Generate cover as needed — The cover is not a default output, first ask the user; use
cover-designfor thumbnails, andcover-imagefor article header images (see Step 10)