Communitygithub.com

Toonfacts:动画卡通科普短片(单技能方案)

用 Remotion 和 three.js 从头到尾制作 Ricks Clips 风格的动画卡通科普短片(以故事优先、钩子驱动:真实故事、历史与趣闻,每段视频在前三秒用一个问题开场)。支持新建、更新、继续、审查和创意生成模式。

Toonfacts:动画卡通科普短片(单技能方案) 是什么?

Toonfacts 是一个端到端的 AI 代理技能,专为在使用 Remotion 和 three.js 的 Claude Code、Cursor 或 Codex 等平台中创建动画卡通科普短片而设计。它采用“故事优先、钩子驱动”的方式:每段视频在前三秒用一个引人入胜的问题开场,然后从研究、脚本撰写、 ElevenLabs 配音、场景构建、自检到最终渲染,全程自动化。该技能强制实行严格的视觉一致性——每个镜头都必须声明其物理真实性并通过断言检查,钩子强则是交付的门禁关卡。它支持多种模式:“新建视频”处理从创意到渲染的完整流程;“更新视频”可修改现有视频并保留旧版本;“继续视频”可在手动步骤后恢复工作;“审查视频”执行合规性检查并打分;“视频创意”在不构建任何内容的情况下生成并评分话题。预检步骤可确保项目文件夹、工具 (ffmpeg、Python、Remotion)、ElevenLabs MCP 和旧布局迁移的正确设置。该技能通过 SILENT.md 操作,明确禁止生成问题、多次使用 ElevenLabs 积分或自行发布视频。输出始终为视频的固定文件夹结构,包含最终 MP4、缩略图和纯文本 `publish.txt`,适合小红书、抖音等内容平台。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/alifmahmudashik/toonfacts/tree/HEAD

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Toonfacts:动画卡通科普短片,一个技能搞定

用通俗语言说出你的需求。这一个技能即可完成全部工作:创意、事实、脚本、镜头规划、字幕、ElevenLabs 配音、构建、自检、渲染以及后续更新。永远不要让用户解释风格:风格已在此技能中定义。

模式(从用户话语中选择)

用户说模式读取文档
"新视频"、"新视频关于 X"、"给我个惊喜"、"制作下一个短片"新建docs/new-video.md
"更新视频 "、"修正视频"、"在 中更改 X"、"应用最新规则"更新docs/update-video.md
"继续视频 "(在手动步骤如保存音频后)继续docs/new-video.md,从第一个缺失的阶段继续
"审查视频"、"检查 "、"检查这个 mp4"审查仅 docs/review.md
"视频创意"、"给我些想法"创意仅 docs/new-video.md 阶段 1:研究真实故事和趣闻,按故事强度和钩子强度评分,记录到 videos/_ideas.md,展示前 5 名及其一句话故事、故事结构和草稿钩子,不构建任何内容
"更新技能"升级仅预检步骤 2,然后报告版本变更
如果请求不明确,未提及视频时选择新建,提及具体视频时选择更新。视频的构建方式和外观见 docs/engine.md;新建和更新模式均使用它。

操作规则(所有模式)

  • 镜头必须与旁白意思一致,并经过机械检查。 每个镜头声明其意图(读取什么、谁在看什么、什么瞄准什么、拿着什么)并调用 assertScene;每个绘制在道具上的字符串都通过 fitText。tools/check_scene.py 会在这些调用缺失时阻止渲染。永远不要渲染未通过的关卡,也永远不要通过缩小文字或放宽公差来修复裁剪的标识:修正几何体。
  • 钩子是一个门禁,而非装饰。 在 docs/new-video.md 阶段 2 的钩子门禁通过之前,不编写任何脚本;在 templates/review_checklist.md 顶部的钩子块通过之前,不交付任何视频。薄弱的第一行是重写的理由,永远不要后期修补。
  • 不要提问。 做出合理选择,记录在视频的 NOTES.md 中,继续前进。仅在无法创建配音(见 docs/new-video.md 阶段 3)、缺少必要工具或无法撤销决策时停止。
  • 每个视频一个文件夹,所有内容都在其中: videos/<slug>/(slug = 标题的小写单词以连字符连接)。最终 MP4 和 publish.txt 在顶层,工作文件在 source/,旧渲染在 versions/。临时文件(静帧、联系表、测试渲染)仅放在 work/<slug>/ 中。永远不要只将工作留在对话中。
  • 每条配音只花费一次 ElevenLabs 积分(一次录制)。仅当旁白文字改变、音频无法使用或录制未通过 docs/new-video.md 阶段 3 步骤 4 的性能检查(笑场或过度表演)时重新生成——此时仅重录一次,并减少标签数量。
  • 自然优于表现力。 叙述者从不笑:全篇没有 [laughs] 或 [chuckles],整个脚本最多 3 个标签,配音文本中无感叹号。画面承担喜剧效果;叙述者对自己的笑话发笑是 AI 录制的明显标志。
  • 永远不要打印或保存 API 密钥。 ElevenLabs MCP 由用户在 Claude Code 中添加;直接使用已连接的 MCP。
  • 永远不要发布或上传 视频。交付物为最终 MP4、缩略图和经过研究的 publish.txt(标题、描述、话题标签、标签)。
  • 最终回复: 少量行(制作或更改的内容、位置、关键选择、下一步操作)。无需逐步回顾。

预检(静默执行,每次运行,每种模式)

  1. 项目和文件夹。 找到 Remotion 项目(包含 package.json 和 src/ 的文件夹)。如果缺失则创建 videos/、videos/_ideas.md 和 work/。
  2. 保持此技能更新。 如果此技能文件夹是 git 克隆,静默执行 git pull --ff-only 并读取 CHANGELOG.md 了解变更;仅当发生变更时才在最终回复中提及新版本。如果不是 git 克隆,则跳过。
  3. 工具。 检查 ffmpeg、Python 3 和 @remotion/three(如果缺失则在项目中安装 @remotion/three 和 three)。查找 ElevenLabs MCP 工具(名称如 text_to_speech、generate_speech、creative_generate_speech、list_voices、speech_to_text、transcribe);如果延迟加载,则使用 ToolSearch 加载。如果没有找到,继续到配音阶段,编写 NEEDS_AUDIO.md 说明必须连接 ElevenLabs MCP(或提供音频),然后停止。
  4. 旧独立技能。 如果 .claude/skills/cartoon-3d-short/ 或 .claude/skills/new-video/ 也存在,不要使用它们。在最终回复中告知用户一次可以删除这两个文件夹,因为此技能已取代两者。
  5. 遗留辅助文件。 删除 video-ideas/SKILL-UPDATE.md(第一行以 "# Instructions for Claude Code" 开头)和 video-ideas/README.md(第一行 "# video-ideas")如果存在。绝不能删除其他任何文件。
  6. 重命名旧的发布文件(一次)。 发布文件现在是纯文本,而非 Markdown,因为用户复制内容时不希望看到渲染效果。对于每个 videos/<slug>/publish.md,将其复制为 videos/<slug>/publish.txt,过程中去除 Markdown(删除 #、**、反引号、表格竖线;将标题转为大写并保持内容一致),并在最终回复中告知用户可以删除哪些 publish.md 文件。绝不能自行删除它们。
  7. 迁移旧布局(一次,通过移动,绝不删除)。 如果从旧版本遗留了 video-ideas/ 或 out/:
    • video-ideas/_ideas.md 变为 videos/_ideas.md。
    • 对于每个 video-ideas/<slug>/:publish.md(或 publish.txt)移至 videos/<slug>/publish.txt;所有其他文件(script.md、voiceover*.mp3、words.json、NOTES.md、REVIEW.md、CHANGES.md、NEEDS_AUDIO.md、审查表)移至 videos/<slug>/source/。
    • 将 out/ 中的每个最终渲染与对应的 slug 匹配(通过文件名或标题如 The_Man_Who_...):最新的变为 videos/<slug>/<slug>.mp4,较早的按日期变为 videos/<slug>/versions/<slug>_v1.mp4、_v2.mp4。
    • out/ 中的所有其他内容(静帧、联系表、QA、测试渲染、每个视频的临时文件夹)移至 work/legacy-out/,上述两个辅助文件移至 work/legacy/。无法匹配的内容也保留在那里。
    • 完成后,在最终回复中列出移动内容(一个简短列表),并告知用户可以删除空的 video-ideas/ 和 out/ 文件夹。不要触碰 src/、public/、scripts/、audio/ 或 backup/,并保留已存在于 work/ 中的文件。

文件夹结构

videos/                        # 所有已完成或进行中的视频,每个视频一个文件夹
  _ideas.md                    # 每个使用或拒绝的话题(先读取,最后追加)
  <slug>/
    <slug>.mp4                 # 最终视频:准备上传的文件
    thumbnail.jpg              # 构建的封面,2160x3840(非原始帧)
    publish.txt                 # 标题、描述、话题标签、标签、类别、置顶评论 + 研究来源
    source/                    # script.md  voiceover.mp3  words.json  NOTES.md  REVIEW.md  CHANGES.md
    versions/                  # 之前的渲染:<slug>_v1.mp4 ...(由更新模式保留)
work/                          # 临时文件,可安全删除:静帧、联系表、QA、测试渲染、REMOTION_TMP(如果没有其他驱动器)
  <slug>/

此技能包含的内容

路径说明
docs/new-video.md新建和继续:创意、研究、脚本、配音、构建、审查、交付
docs/update-video.md更新:分类变更、保护旧版本、应用变更、重新渲染、回归检查
docs/review.md审查循环(联系表、检查、评分、修复)
docs/engine.md视频的构建方式和外观要求:流水线、每段视频的规则、取景、光照、镜头流程、字幕、反应、质量关卡
references/story_format.md六拍故事格式、喜剧工具箱、节奏数值
references/(其他)风格圣经、测量报告、参考帧和表
templates/渲染器源代码(bridge/)、音频合成、脚本、镜头计划、脚本和审查模板
docs/history/两个早期仓库的 README、CHANGELOG 和原始措辞存档。非操作说明
tools/review_video.sh长度、跳切和响度检查及联系表
tools/make_thumbnail.py设计 2160x3840 的竖屏缩略图:裁剪出角色,放在生成的背景上,堆积文字
tools/check_scene.py阻止渲染:镜头未声明其物理真实性,或道具文字未经过适配
tools/check_voice.py检查配音录制:速度、停顿、响度,以及讲述过快(笑声、赶拍)的秒数

相关技能