| name | content-creator |
| description | 自动化内容创作工作流:从一个主题出发,产出完整内容包(调研报告、视频脚本、Remotion短视频、小红书笔记、微信公众号文章)。当用户说'为X创建内容'、'帮我做一个关于X的短视频和推文'、'用content-creator制作内容'、'create content about X'、'help me produce a video and posts about Y'、'做一个内容包'、'帮我产出视频+推文'时触发。 |
| version | 3 |
| lastUpdated | "2026-05-22T00:00:00.000Z" |
Content Creator - 自动化内容创作工作流 v3.0
🎵 背景音乐默认启用 ✅
重要更新 (v2.2):
- ✅ 视频渲染默认使用背景音乐
- ✅ 背景音乐文件:
onlineaielements-digital-horizon-466217.mp3
- ✅ 默认音量: 0.25(不喧宾夺主)
- ✅ 位置:
$HOME/content-create/music/
如何使用:
- 复制背景音乐到项目的
video/public/bgm.mp3
- 在
PromoVideo.tsx 中添加:
<Audio
src={staticFile('bgm.mp3')}
volume={0.25}
startFrom={0}
/>
- 渲染视频
背景音乐库:
onlineaielements-digital-horizon-466217.mp3 - 科技感音乐(默认)
silent-40s.mp3 - 静音/40秒(用于配音场景)
⚠️ 重要提示 - 必读!
🚫 永远不要使用模板的默认文案!
场景模板中的默认文案只是示例,不适合所有主题!
- ❌ HookScene 默认: "你还要这样多久?"(仅适合痛点型)
- ❌ PainPointScene 默认: "受够了这种体验?"(仅适合痛点型)
正确做法:
- ✅ 根据主题类型选择合适的场景组合
- ✅ 定制所有文案,匹配主题和目标受众
- ✅ 参考 主题适配指南 选择场景
- ✅ 查看 防错手册 了解常见陷阱
主题类型:
- 📦 产品介绍型 → 积极文案(见 THEME_GUIDE.md)
- 😫 痛点解决型 → 痛苦→期待文案
- 📊 对比评测型 → 客观数据文案
- 📖 教程演示型 → 友好实用文案
- 📈 数据展示型 → 专业分析文案
- 📚 故事叙述型 → 情感共鸣文案
详细指南: 查看 THEME_GUIDE.md 了解不同主题的场景组合和文案风格。
✅ 最新测试结果 (2026-03-05)
测试项目: Sensor Fusion Skill
测试状态: ✅ 完全通过
渲染视频: 35秒,1080×1920,3.84MB,H.264+AAC
测试覆盖率: 100% (所有功能正常)
验证功能:
- ✅ 信息收集模板
- ✅ 视频脚本生成 (6个场景)
- ✅ Remotion 视频渲染
- ✅ 小红书笔记模板
- ✅ 微信公众号模板
- ✅ 背景音乐集成
- ✅ 场景组件库 (6个模板)
🚀 快速开始
使用方式
在 Claude Code 中调用:
"使用 content-creator skill 为 [主题] 创建内容"
"按照 content-creator 工作流制作视频和推文"
"/content-creator [主题] - [描述]"
输出位置:
$HOME/content-create/
📂 默认输出目录
$HOME/content-create/
├── assets/
│ └── music/ # 🎵 共享背景音乐库
│ ├── onlineaielements-digital-horizon-466217.mp3 # 科技感音乐
│ └── silent-40s.mp3 # 静音/40秒
├── {project-name}/ # 每个项目一个文件夹
│ ├── README.md # 项目说明
│ ├── step1-info-collection.md # 信息收集
│ ├── step2-video-script.md # 视频脚本(含优化记录)
│ ├── step3-xiaohongshu.md # 小红书笔记
│ ├── step4-wechat.md # 微信公众号
│ └── video/ # Remotion 项目
│ ├── src/
│ │ ├── index.tsx # 入口文件
│ │ └── PromoVideo.tsx # 主视频组件
│ ├── public/
│ │ └── bgm.mp3 # 背景音乐
│ ├── out/
│ │ └── video.mp4 # 渲染输出
│ ├── package.json
│ ├── tsconfig.json
│ └── remotion.config.ts
🔄 工作流概述
主题 + 简介
↓
┌─────────────────────────────────┐
│ Step 1: 信息收集 │
│ • 多源数据收集 │
│ • 核心功能提炼 │
│ • 故事发现(认知缺口/类比/反常识)│
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ Step 1.5: 叙事设计 ⭐ NEW │
│ • 叙事钩子(3种开场方式选最佳) │
│ • 核心洞察(一句话价值主张) │
│ • 叙事弧线(情绪曲线设计) │
│ • 差异化角度(和竞品内容的区别) │
│ • 受众锚点(主目标用户+语言) │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ Step 2: 视频脚本 + 配音文案 │
│ • 基于叙事弧线设计分镜 │
│ • 场景文案服务于核心洞察 │
│ • 配音文案(ChatTTS可选) │
│ • 视觉元素清单 │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ Step 3: Remotion 视频制作 │
│ • 选择场景模板(9个可用) │
│ • 编写场景组件 │
│ • 添加背景音乐 │
│ • 渲染输出 MP4 │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ Step 4: 平台推文 │
│ • 基于叙事设计写推文(非功能列表)│
│ • 小红书笔记 │
│ • 微信公众号文章 │
└─────────────────────────────────┘
📝 Step 1: 信息收集
1.1 收集渠道
主要渠道:
- GitHub: README、Star 数、Forks、Issues、更新频率
- NPM: 下载量、版本历史、依赖信息
- 官网/文档: 核心功能、技术架构、使用案例
- 社交媒体: 社区反馈、用户评价
- 技术博客: 深度分析、最佳实践
1.2 故事发现框架(优先使用)
⚠️ 这是内容创作的核心。五维卖点是自检清单,故事发现才是创意来源。
五问法:
1. **认知缺口** 🧠 - 目标受众"以为知道但其实不知道"的事情?
- 示例:"用了 Claude Code 但不知道它 50 万行代码长什么样"
2. **类比锚点** 🔗 - 用一个什么类比能让人秒懂?
- 示例:"OpenHarness 之于 Claude Code,就像解剖学教材之于活体"
3. **反常识** 💥 - 有什么"大家都以为是这样但其实不是"的点?
- 示例:"大家都以为 Agent = 大模型,但其实 Agent = 大模型 + Harness"
4. **一句话价值** 🎯 - 只有 10 秒钟,告诉别人一件事?
- 示例:"12K 行代码就能理解 AI Agent 的全部运作逻辑"
5. **对手不说** 🤫 - 和同赛道产品相比,它刻意不做什么?
- 示例:"不做闭源、不做产品化 UI、不做企业集成"
1.3 五维卖点模型(自检用)
信息收集完成后用此模型自检完整性:
1. **信任背书** ⭐ - 谁出品?数据支持?
2. **低门槛** 🚀 - 一行命令?开箱即用?
3. **功能强大** 💪 - 核心功能?性能数据?
4. **通用性强** 🌐 - 跨平台?多场景?
5. **趋势红利** 📈 - 行业趋势?前沿技术?
1.4 信息收集清单
基本信息:
🧭 Step 1.5: 叙事设计(⚠️ 关键步骤,不可跳过)
这是区分"好内容"和"产品说明书"的关键步骤。
信息收集解决"有什么",叙事设计解决"怎么说"。
1.5.1 核心输出
完成叙事设计后,输出文档包含以下 6 个要素:
① 叙事钩子(Hook)
用 3 种方式制造开场吸引力,选择最佳的一个:
- 悬念型:"你天天用 X,但你知道 Y 吗?" → 用好奇心制造缺口
- 冲突型:"Z 用 1/44 的代码做了同样的事——但它不是替代品" → 制造认知冲突
- 数据型:"44 倍精简、98% 覆盖" → 数据冲击
② 核心洞察(Core Insight)
用一句话说清楚"这东西存在的真正意义":
- ❌ "功能强大、开源免费、支持多模型" → 这是卖点罗列
- ✅ "12K 行代码让 AI Agent 的黑盒变得透明" → 这是洞察
③ 叙事弧线(Story Arc)
- 开场:制造认知缺口(你知道 X 但不知道 Y)
- 升级:揭示核心洞察(Y 的本质比你想的更震撼)
- 转折:引入新的可能性(因为你现在能看到/改/学)
- 高潮:具体证据(硬数据支撑)
- 行动:明确的下一步
④ 受众锚点
主目标用户是谁?ta 关心什么?
- 研究者/学生 → "能学到什么?"
- 开发者 → "能用吗?兼容吗?"
- 技术决策者 → "值不值得投入?"
⑤ 差异化信息
和同类已有内容的独特角度。避免和竞品说同样的话。
⑥ 情绪曲线
- 开场:好奇/惊讶 → 中段:理解/兴奋 → 结尾:想要动手试试
1.5.2 质量自检三问
叙事设计完成后,回答这三个问题:
-
删掉所有品牌名和数字后,内容还有价值吗?
→ 如果没有,说明只是信息搬运而非信息提炼
-
看完视频后,观众能用一句话向朋友转述吗?
→ 如果不能,说明叙事不够清晰
-
这个内容和竞品已有内容有什么区别?
→ 如果没区别,说明没有信息差
🎬 Step 2: 视频脚本(基于叙事设计)
⚠️ 重要:视频脚本必须基于 Step 1.5 的叙事设计输出。每个场景都服务于核心洞察,不是独立的功能罗列。
2.1 视频脚本必须包含(缺一不可)
| 必需元素 | 说明 | ❌ 反例 | ✅ 正例 |
|---|
| 痛点演绎 | 用具体场景让观众"看到"问题 | "痛点:效率低" | 模拟聊天对话展示 AI 每次失忆 |
| 竞品对比 | 指名道姓对比,用数据说话 | "比其他方案好" | 表格:ChatGPT vs Claude vs 本产品 |
| 核心卖点可视化 | 抽象概念变成动画 | "支持学习闭环" | 环形动画:任务→经验→技能→进化 |
| 真实使用场景 | 展示具体使用情境 | "多平台支持" | "一天中的 Hermes":早上 Telegram、下午 CLI |
| 紧凑 CTA | 2-3 秒,命令+slogan | 3 步列表 | 终端命令 + 一句话 |
2.2 从叙事弧线映射到场景
节奏要求:总时长 18-25 秒,信息密度 > 节奏舒适度
| 叙事弧线阶段 | 时长 | 设计方向 | 优先自定义 |
|---|
| 痛点演绎 | 3-4s | 具体场景模拟(聊天/终端/操作) | ✅ 必须自定义 |
| 核心差异 | 5-6s | 动画可视化抽象概念 | ✅ 必须自定义 |
| 竞品对比 | 5-6s | 表格/数据对比,指名道姓 | ✅ 必须自定义 |
| 使用场景 | 3-4s | 真实情境快闪 | 可用模板或自定义 |
| CTA | 2-3s | 命令 + slogan | 可用模板或自定义 |
2.3 场景模板库(仅作参考)
⚠️ 模板只是参考和兜底,优先为每个主题设计自定义场景。
可用场景 (从 templates/scenes/ 复制):
| 模板 | 时长 | 用途 | Props |
|---|
HookScene.tsx | 0-5s | 震撼开场 | mainNumber, mainText, painPoints[] |
PainPointScene.tsx | 5-12s | 痛点放大 | painPoints[{icon, title, subtitle}] |
SolutionScene.tsx | 12-20s | 解决方案 | logo, title, subtitles[] |
FeaturesScene.tsx | 20-27s | 功能展示 | title, features[{icon, title, desc}] |
ShockScene.tsx | 5-10s | 数据对比 | title, highlight, stats[] |
CtaScene.tsx | 32-35s | 行动号召 | ctaText, steps[] |
CodeScene.tsx | 5-10s | 代码展示 | title, code, highlight |
CompareScene.tsx | 5-10s | 左右对比 | title, items[] |
QuoteScene.tsx | 5-8s | 核心洞察 | quote, subtitle |
2.3 脚本文档规范
必需章节:
# Step 2: 视频脚本 - {项目名}
**视频时长**: 35 秒
**视频尺寸**: 1080×1920 (竖屏)
**创建日期**: YYYY-MM-DD
**生成模式**: 数据驱动
**背景音乐**: {文件名}
**配音**: 是/否(使用 ChatTTS)
---
## 📝 优化记录
### ✅ 版本 1.0 (日期)
- 创建初始版本
---
## 🎬 分镜设计
### 场景 1: HookScene (0-5秒)
**视觉**: ...
**动画**: ...
**配音**: ...
---
## 🎙️ 配音文案清单
1. "场景1配音" (场景1)
2. "场景2配音" (场景2)
...
---
## 🎨 视觉元素清单
1. ...
2.4 配音文案撰写技巧
黄金原则:
- 简短有力: 每段不超过 10 秒(约 25 字)
- 口语化: 避免书面语,像聊天一样自然
- 节奏感: 短句为主,适当停顿
- 情感表达: 根据场景选择语气
场景匹配:
- HookScene: 悬念、疑问、震撼
- PainPointScene: 痛苦、共鸣、焦虑
- SolutionScene: 期待、希望、兴奋
- FeaturesScene: 自信、专业、可靠
- UsageScene: 实用、简单、易懂
- CtaScene: 行动、紧迫、期待
🎥 Step 3: Remotion 视频制作
⚠️ 核心原则:为内容设计视觉,而不是往模板里填数据。
模板只是参考,每个主题都应该有独特的视觉叙事。
3.0 创意优先原则
❌ 错误做法:选 HookScene → 填 Props → 选 ShockScene → 填 Props → 渲染
✅ 正确做法:基于叙事设计 → 构思独特视觉表达 → 编写自定义场景 → 渲染
视频设计三问(开始编码前必须回答):
- 痛点如何演绎? — 不是文字列出痛点,而是用视觉场景让观众"看到"痛点
- 示例:模拟聊天对话展示 AI 失忆、模拟终端展示手动操作的繁琐
- 为什么选它而不是竞品? — 必须有具体竞品对比,用数据说话
- 示例:表格对比 ChatGPT vs Claude vs Hermes 的 6 个维度
- 核心卖点如何可视化? — 抽象概念必须变成动画
- 示例:学习闭环 → 环形旋转动画;编程式视频 → 代码打字机效果
3.1 视频节奏规范
时长:18-25 秒(不超过 25 秒,短视频平台完播率关键)
节奏模板(可调整,但信息密度必须高):
| 段落 | 时长 | 目的 | 要求 |
|---|
| 痛点演绎 | 3-4s | 引发共鸣 | 必须是具体场景,不是文字列表 |
| 核心差异 | 5-6s | 展示独特价值 | 用动画/可视化表达抽象概念 |
| 竞品对比 | 5-6s | 说服选择 | 必须有具体产品名+数据 |
| 使用场景 | 3-4s | 激发想象 | 展示真实使用情境 |
| CTA | 2-3s | 促进行动 | 命令/链接 + 一句 slogan |
转场:0.3-0.4s fade(快节奏,不拖沓)
3.2 自定义场景设计指南
每个视频应该包含至少 2-3 个自定义场景,而非全部使用预制模板。
自定义场景的设计模式:
const MyCustomScene: React.FC = () => {
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
const opacity = interpolate(frame, [0, fps * 0.5], [0, 1], {
easing: Easing.bezier(0.16, 1, 0.3, 1),
extrapolateLeft: "clamp",
extrapolateRight: "clamp",
});
const scale = spring({ frame, fps, config: { damping: 12, stiffness: 200 } });
return (
<AbsoluteFill style={{ backgroundColor: "#0a0a0a" }}>
{/* 你的创意内容 */}
</AbsoluteFill>
);
};
推荐的自定义场景类型:
| 类型 | 适用场景 | 设计要点 |
|---|
| 聊天模拟 | 展示 AI 交互痛点/优势 | 气泡逐条出现,模拟真实对话 |
| 竞品表格 | 多产品对比 | 行逐条滑入,胜出项高亮 |
| 流程动画 | 展示工作原理 | 环形/线性节点 + 连接线动画 |
| 时间线 | 展示一天/一周的使用 | 时间戳 + 场景卡片快闪 |
| 终端模拟 | 展示安装/使用过程 | 打字机效果 + 命令高亮 |
| 数据仪表盘 | 展示性能/规模 | 数字滚动 + 进度条填充 |
3.3 预制模板的正确用法
预制模板(HookScene、ShockScene 等)只在以下情况使用:
- 时间紧迫,需要快速出片
- 内容本身适合标准化展示(如纯数据展示)
- 作为自定义场景的参考,而非直接使用
混合策略:一个视频中可以 2-3 个自定义场景 + 1 个模板场景(如 CTA)。
3.4 最佳实践(遵循 remotion-best-practices skill)
⚠️ 必须遵循 remotion-best-practices skill 的规则。
核心规则:
- CSS transitions/animations 禁止使用 — 不会正确渲染
- 使用
useVideoConfig() 获取 fps — 不要硬编码帧数
- interpolate 必须加 clamp — 防止值溢出
- 使用
@remotion/transitions 做场景过渡 — TransitionSeries + fade
场景编排:
import { TransitionSeries, linearTiming } from "@remotion/transitions";
import { fade } from "@remotion/transitions/fade";
export const PromoVideo: React.FC = () => {
const { fps } = useVideoConfig();
const t = Math.round(fps * 0.4);
return (
<AbsoluteFill style={{ backgroundColor: "#0a0a0a" }}>
<TransitionSeries>
<TransitionSeries.Sequence durationInFrames={Math.round(3.5 * fps)}>
<PainScene />
</TransitionSeries.Sequence>
<TransitionSeries.Transition
presentation={fade()}
timing={linearTiming({ durationInFrames: t })}
/>
<TransitionSeries.Sequence durationInFrames={6 * fps}>
<CoreValueScene />
</TransitionSeries.Sequence>
{/* ... */}
</TransitionSeries>
</AbsoluteFill>
);
};
package.json 依赖(版本锁定):
{
"dependencies": {
"@remotion/cli": "4.0.464",
"@remotion/media": "4.0.464",
"@remotion/transitions": "4.0.464",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remotion": "4.0.464"
}
}
渲染参数:
│ └── bgm.mp3 # 背景音乐
├── out/
│ └── video.mp4 # 渲染输出
├── package.json
├── tsconfig.json
└── remotion.config.ts
**⚠️ 重要提示**:
- 入口文件必须使用 `.tsx` 扩展名(包含 JSX)
- 必须使用 `registerRoot()` 注册根组件
- 音频文件放在 `public/` 目录
### 3.3 最佳实践(遵循 remotion-best-practices skill)
> ⚠️ **必须遵循 `remotion-best-practices` skill 的规则**。该 skill 提供 30+ 规则文件,覆盖动画、音频、转场等。
**核心规则**:
1. **CSS transitions/animations 禁止使用** — 不会正确渲染
2. **使用 `useVideoConfig()` 获取 fps** — 不要硬编码帧数
3. **interpolate 必须加 clamp** — 防止值溢出
4. **使用 `@remotion/transitions` 做场景过渡** — 不要硬切
**场景编排模式(推荐)**:
```tsx
import { TransitionSeries, linearTiming } from "@remotion/transitions";
import { fade } from "@remotion/transitions/fade";
export const PromoVideo: React.FC = () => {
const { fps } = useVideoConfig();
return (
<AbsoluteFill>
<TransitionSeries>
<TransitionSeries.Sequence durationInFrames={5 * fps}>
<HookScene {...props} />
</TransitionSeries.Sequence>
<TransitionSeries.Transition
presentation={fade()}
timing={linearTiming({ durationInFrames: Math.round(fps * 0.5) })}
/>
<TransitionSeries.Sequence durationInFrames={5 * fps}>
<NextScene {...props} />
</TransitionSeries.Sequence>
</TransitionSeries>
</AbsoluteFill>
);
};
动画模式(推荐):
import { interpolate, Easing, useCurrentFrame, useVideoConfig } from "remotion";
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
const opacity = interpolate(frame, [0, 2 * fps], [0, 1], {
easing: Easing.bezier(0.16, 1, 0.3, 1),
extrapolateLeft: "clamp",
extrapolateRight: "clamp",
});
const bad = interpolate(frame, [0, 60], [0, 1]);
音频(使用 @remotion/media):
import { Audio } from "@remotion/media";
import { staticFile } from "remotion";
<Audio src={staticFile("bgm.mp3")} volume={0.25} />
package.json 依赖(版本锁定,无 ^):
{
"dependencies": {
"@remotion/cli": "4.0.464",
"@remotion/media": "4.0.464",
"@remotion/transitions": "4.0.464",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remotion": "4.0.464"
}
}
渲染参数:
--concurrency=1
--codec=h264
--pixel-format=yuv420p
音量控制:
<Audio src={staticFile('bgm.mp3')} volume={0.25} />
<Audio src={staticFile('voiceover.wav')} volume={0.8} />
动画配置:
const springConfig = {
damping: 12,
stiffness: 200,
mass: 1
};
const opacity = interpolate(frame, [0, 30], [0, 1]);
3.4 常见问题解决
问题 1: "Unexpected >" 错误
- 原因:入口文件使用
.ts 而非 .tsx
- 解决:重命名为
index.tsx
问题 2: 视频渲染慢
- 原因:concurrency 过高
- 解决:使用
--concurrency=1
问题 3: 音频没有声音
- 原因:音量设置为 0 或文件路径错误
- 解决:检查 volume 参数和文件位置
问题 4: 视频尺寸不对
- 原因:Composition 的 width/height 设置错误
- 解决:竖屏使用 1080×1920
📱 Step 4: 平台推文(基于叙事设计)
⚠️ 推文必须基于 Step 1.5 的叙事设计输出,不是功能列表。
4.1 小红书笔记(故事驱动式)
标题公式: 认知缺口 + 核心洞察 + emoji
正文结构(非功能列表):
## [标题]
[开场钩子 — 基于叙事钩子,2句话内制造认知缺口]
[核心洞察展开 — 不是功能列表,是"它为什么存在"]
[具体证据 — 硬数据支撑洞察]
🚀 **怎么用?**
[简单步骤]
[差异化信息 — 和竞品的本质区别]
[价值升华 — 一句话承诺]
🔗 [链接]
**标签**: #标签1 #标签2 #标签3
发布建议: 配图基于 Step 2 视觉元素清单;评论区引导讨论
4.2 微信公众号文章(故事驱动式)
文章结构(每个章节服务于核心洞察):
## 标题
## 摘要 — 一句话核心价值
## 01 [认知缺口 — 你用 X 但不知道 Y]
## 02 [核心洞察 — 本质比你想的更震撼]
## 03 [具体证据 — 硬数据支撑]
## 04 [实际价值 — 不同人得到什么]
## 05 [如何开始 — 具体步骤]
## 06 总结 — 要点 + 行动号召
🔗 [链接]
关键区别:v1 是"功能介绍型"(6个平行章节),v2.4 是"故事驱动型"(基于叙事弧线的章节递进)
📚 按需读取的技术文件
以下内容已从 SKILL.md 拆分到独立文件,按需读取以节省上下文:
读取时机:
- Step 3 制作视频时 → 读 TECHNICAL.md
- 渲染出问题时 → 读 GOTCHAS.md
- 选择场景组合时 → 读 THEME_GUIDE.md
📝 更新日志
v2.4 (2026-04-06)
- ✅ 新增 Step 1.5 叙事设计步骤(根治内容空洞)
- ✅ 新增故事发现框架(替代纯五维卖点)
- ✅ Step 2 视频脚本基于叙事设计输出
- ✅ 新增 3 个场景模板(CodeScene/CompareScene/QuoteScene)
- ✅ 新增项目骨架 templates/base/(快速初始化)
- ✅ 修改 HookScene 默认文案为占位符
- ✅ SKILL.md 重构为 v3.0(创意优先 + remotion-best-practices 集成)
- ✅ 新增内容质量自检三问
v2.3 (2026-03-27)
- ✅ 添加内容检查步骤
- ✅ 添加 Gotchas 文档
v2.0 (2026-03-05)
- ✅ 优化文档结构
- ✅ 添加自动化脚本
- ✅ 添加质量检查清单
技能维护: Content Creator Team
版本: 2.4
最后更新: 2026-04-06
测试状态: ✅ 通过
颜色系统