Help YouTubers/UP主 prepare video content: write structured scripts (spoken script), blog posts, platform-specific publishing materials, and an X (Twitter) promo tweet.
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 script in the user's preferred language. The script should be conversational and natural for speaking.
- See
templates/script.mdfor the output format template - See
references/script-guidelines.mdfor detailed writing rules - See
references/examples-tutorial.mdfor the canonical tutorial / configuration-type sample script - read it before writing if the topic is a configuration / how-to / setup video
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-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
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-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)
Technical explanations / reviews / any video containing technical facts must do this, cannot be skipped. Verify the content before style proofreading - because the review may require deleting or rewriting entire sections.
- Verify one by one: 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 tiers: ✅ Holds (has official source, can be stated directly) / ⚠️ Needs on-screen citation (non-official source, keep but show visible evidence on screen during recording) / ❌ Delete (no source or is inference, remove from script and blog)
- Never let the model's guesses / hallucinations into the draft: Delete any inference not supported by a source, or change it to "official hasn't disclosed, no guessing"
- Closed-source / research preview content: The script must have a disclosure sentence ("research preview, some details undisclosed") and a boundary sentence ("won't guess at undisclosed implementation"); check the enabling mechanism (environment variables / commands / menus) against the current official documentation; for disputed numbers, default to official
- Deliverable: Write the verification results as
fact-check.mdand put it in the video directory for easy review and traceability. For the format seetemplates/fact-check.md
Step 9: Apply personal-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-writing-styleskill and apply it to every generated file:script.md,blog.md,youtube.md,bilibili.md,x.md - Spoken scripts are no exception:
script.mdAlthough it is meant to be "spoken," the punctuation and style rules must still be fully applied — Chinese curly quotes, half-width em dash " - ", ASCII ellipsis "......", no heading numbering, concise titles, and no full-width/English punctuation left behind - Preserve colloquialism and natural speech flow: personal-writing-style only unifies punctuation and tone, and does not impose template structure (do not turn script.md into the Hook/introduction/body/CTA routine)
x.mdstill follow personal-writing-style'sreferences/social-media-style.md(link placement, bullet vs prose, tone)
Step 10: Generate Cover (cover image, optional)
The cover is not a default deliverable - first ask the user whether they want a cover, and generate it only when needed.
Ask:
要不要顺手做一张封面?
- 视频缩略图(YouTube / Bilibili)→ 我用 `cover-design`(代码驱动的排版封面,文字清晰、适合缩略图)
- 文章头图(博客 / X Article)→ 我用 `cover-image`(AI 生成的插画风头图)
- Thumbnail-type request → call
cover-designskill - Article header image-type request → call
cover-imageskill - Save the deliverable into the video directory (e.g.
cover.html/cover.png)
Step 11: Review & Iterate
After completion, 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
- Colloquial script — the script is for speaking, not for reading
- Do not add timestamps — do not estimate timestamps in either the script section headings or the YouTube description; the pacing is controlled by the author
- Do not auto-publish — only generate files, do not perform any publishing actions
- Preserve user style — If the user provides a previous video style reference, try to keep it consistent
- Promotional info reuse — After the first inquiry, save it to auto memory, and auto-fill it afterward
- Date directory — Create a separate directory for each episode of video by the date of that day
- Technical content must be reviewed before publishing — For videos containing technical facts, such as technical interpretations/reviews, every item must be fact-checked before publishing (see Step 8). Points without an official source must either be deleted or given a visible citation on screen. Never let the model's guesses/hallucinations enter the script, and produce
fact-check.mdfor archiving - Unified style ending — All generated Chinese scripts (including spoken scripts) must be checked with
personal-writing-styleat the end, see Step 9, and this cannot be skipped - Generate covers as needed — The cover is not a default output; ask the user first; use
cover-designfor thumbnails, and usecover-imagefor article header images (see Step 10)