shuohao-skills

Introduction: AI 短剧制作的 skill 集合:拆角色、排大纲、出场景与道具设定、写剧本、切分镜 | Agent skills for AI short-drama production — character bibles, adaptation outlines, art bibles, screenplays, storyboards. Runs in Claude Code & codex.
More: Author   ReportBugs   
Tags:

中文 · English

👋 找工作 / 合作 — 作者目前在空窗期,这个仓库就是业余的一点小探索。 有缘的朋友欢迎联系。远程工作之外,也接受半合作——每月几千块生活费 + 利润分成。如有必要,FED 的话,也是可以考虑到场出差。希望在 AI 浪潮下,能找到同频朋友一起做点事情。 个人简历:resume.79px.com

我建了一个 AI 短剧交流群(付费),聊 AI 短剧的工作流、工具和实操。 有兴趣的加我:微信 hao_dev,添加时备注 github

烁皓微信二维码

AI 短剧制作的 skill 集合:从一本小说到直接喂生成管线的制作素材——拆角色、排大纲、出场景与道具设定、写剧本、切分镜。给 AI 编码 agent 用,Claude Code 和 codex 都能跑

整条管线长这样——改编大纲收敛结构,剧本、场景、角色三者同步迭代,分镜只做输出不做新决定

AI 短剧制作流程图
Skill 做什么
novel-outline 把一本小说改编成短剧大纲五件套:改编说明、人物表、爽点表、分集梗概、资产清单(含叙事道具表)。14 道质量门全部脚本检查,支持已有大纲的体检模式
novel-characters 把大纲定下的角色做成角色设定集:人物画像、形象提示词、音色提示词、角色设定图。吃 outline.json 预填角色表,报告语言与出图风格可选
novel-art 给 AI 短剧出美术设定集(场景 + 叙事道具):一致性锚点、光照与状态变体、尺度参照、无人无手白底提示词。吃 outline.json 预填清单,11 道质量门全部脚本检查
novel-script 给 AI 短剧写剧本:场次 + 节拍流(动作与台词交替),逐集时长按语速确定性折算,钩子前 3 拍冷开场兑现是门,台词本按角色聚合带音色提示词直接对接 TTS。10 道质量门全部脚本检查
novel-storyboard 给 AI 短剧出分镜:段(一次生成 ≤15 秒)→ 分镜(2–5 秒硬门)→ 分镜图(主图钉 0.00 秒、子图钉各自切点),MiniMax H3 提示词的对齐指令与切点时刻逐字对账;分镜图拿设定图当参考图真出图,export 一键出投产包。17 道质量门全部脚本检查(第 17 道是可选挂载 shot-recipes 卡库的配方检查)

管线之外还有一个镜头语汇库,五个管线 skill 谁都可以不挂它:

Skill 做什么
shot-recipes AI 视频的镜头语汇卡库,67 张卡分两族:配方卡(17 张)回答「这场戏这一刀该怎么切」,技法卡(50 张)回答「这个手段是什么、什么时候用、什么时候别用」——运镜、机位角度、景别、构图、焦段与景深、光线、特殊技巧七类,20 个 H3 官方运镜词全覆盖,而且完整性是门(域里少一项 lint 就点名)。短剧之外也能用(产品宣传、口播、Vlog)。每张卡声明必备短语,可以被机器复核;novel-storyboard 可以通过 --shots 可选挂载

六个 skill 的报告都支持中英双语界面:默认中文,render --lang en 出全英文报告(数据内容保持原文)。

合成一张单页

五段的报告可以合成一张单页,左侧导航切换——有哪几段就出哪几个面板

node scripts/report.mjs --from <demo 目录> --out report.html

--from 按下面的工作目录约定自动发现五份 json;也可以逐个指定(--outline --cast --art --script --storyboard)。只跑了角色那一段就只有一个面板,不报错。

它是组装器,不是第六个 skill:不 import 任何 skill 的代码,而是调各自的 render --html 拿产物再拼装。所以六个 skill 一行不改、各自仍然独立可跑、可以单独拷走;某个 skill 改了渲染,这边自动跟上。

合并时处理三件事——这三件都在组装器里做,不侵入 skill

  • 样式串味。五份报告共用 57 个类名,其中 13 个同名不同定义(.copy .kpis .badge .chip……),所以给每份样式的每条选择器加作用域前缀
  • 脚本串味。各报告的脚本都是 document.querySelector('.expo') 这种全局查询,合成一页后只会命中第一个——五个导出按钮会全废。做法是给每份脚本套一层作用域代理
  • 图片路径。各报告的图相对自己那份 json 的目录(images/…E01-01/f1.png),合成后按输出文件的位置重算

默认一次显示一个面板(五份加起来将近六十万字符)。左下角「平铺全部」把所有面板同时展开,Cmd+F 恢复全局搜索。数字键 15 切面板,#pane-script 这样的深链可以直接分享到某一屏。

node scripts/report-selftest.mjs   # 92 项断言,不起浏览器

丢一本小说进去,出这五套:

novel-outline · 短剧改编大纲

短剧改编大纲报告

novel-characters · 角色设定集

角色设定集报告

novel-art · 美术设定集(场景 + 道具,设定图为 skill 实际生成)

美术设定集报告

novel-script · 剧本(时长仪表 + 分集剧本 + 台词本)

剧本报告

novel-storyboard · 分镜(分镜节奏带 + 主/子分镜图为 skill 实际生成 + H3 提示词)

分镜报告

管线之外,镜头配方卡库的画廊报告——类目 × 能量矩阵里的空格子就是语汇缺口

shot-recipes · 镜头配方卡库(类目 × 能量矩阵 + 卡片墙,示例帧为 skill 实际生成)

镜头配方卡库报告

安装

git clone https://github.com/eternityspring/shuohao-skills.git
cd shuohao-skills
./scripts/install.sh

自动检测本机装了 Claude Code 还是 codex,把所有 skill 软链过去——git pull 之后立刻生效,不用重装。

./scripts/install.sh novel-characters   # 只装某一个
./scripts/install.sh --codex            # 只装到 codex
./scripts/install.sh --uninstall        # 取消软链

不想用脚本就自己链:

ln -s "$PWD/skills/novel-characters" ~/.claude/skills/novel-characters
ln -s "$PWD/skills/novel-characters" ~/.codex/skills/novel-characters

前置条件

必需? 说明
Node 必需 ≥ 18。skill 的脚本只用标准库,没有 npm 依赖,不需要 install
模型额度 必需 用你当前会话的额度,不需要任何 API key
codex CLI 可选 出图才用得上(走内置 $imagegen)。没有就跳过出图,其余产出照常

仓库约定

每个 skill 一个目录,自包含、可以单独拷走

skills/<skill-name>/
├── SKILL.md          给 agent 读的工作流(必需)
├── README.md         给人读的说明
├── scripts/
│   ├── <name>.mjs    确定性工具,零依赖
│   └── selftest.mjs  自测,不调模型(必需)
├── references/       按需加载的详细指令
├── examples/         自带样例,同时当测试夹具
└── assets/           截图

两条硬要求:

  • 每个 skill 必须有 SKILL.md
  • 每个 skill 必须有 scripts/selftest.mjs不调用模型、不花额度,覆盖全部确定性逻辑

加新 skill 之前,先把全部自测跑一遍:

for f in skills/*/scripts/selftest.mjs; do node "$f"; done

没有配 CI——自测足够快(1 秒),本地跑一次比等 CI 更省事。只在 macOS + Node 24 上验过;代码没有平台相关调用,Linux 和更低版本 Node 理论上没问题,但没验。

端到端 demo 工作目录约定

把一本小说从头跑完五段(角色 → 大纲 → 美术 → 剧本 → 分镜),会产出大量 *.json / *.md / *-report.html不要平铺在根目录,按五个 skill 各建一个目录归档,一眼对应流水线五段:

<demo>/
├── outline/       ← novel-outline 产出:<剧>-outline.json / .md / -report.html
├── characters/    ← novel-characters 产出:<剧>-cast.json / .md / -report.html
├── art/           ← novel-art 产出:<剧>-art.json / .md / -report.html
├── script/        ← novel-script 产出:<剧>-script.json / .md / -report.html
├── storyboard/    ← novel-storyboard 产出:<剧>-storyboard.json / .md / -report.html
│   ├── manifest.json  ← export 产出
│   ├── E01-01/        ← export 的分镜投产包,每段一个文件夹(prompt.md + f1..fN.png)
│   ├── E01-02/
│   └── …
├── docs/          ← 自己写的使用说明、PR 草稿等(与机器产物解耦)
└── scripts/       ← 跑管线的辅助脚本(探索期脚本用 _ 前缀保留溯源)

约定要点:

  • 每个 skill 一个目录,装它自己的 json / md / html 三件套,加新角色/场景只往对应目录放,不污染根目录
  • 分镜的 manifest.jsonE01-0x/ 投产包一起归 storyboard/,就是 export --out storyboard 的原样产出。段文件夹不要再往下收一层(例如收进 segments/):分镜报告里的图走相对路径 <段号>/f<切序>.png,报告 html 与段文件夹必须同级,多套一层目录,报告里的图会静默全变成「未生成」占位——实测把 10 个段文件夹移进 segments/ 之后,内嵌图从 2 张变 0 张,报告不会报错
  • 报告 HTML 与生成的图/视频可由 render 重跑再生——进版本控制时建议只提交 json / md / docs / scripts,报告 HTML 和分镜 png.gitignore 排除,保持仓库轻量
  • 用法类文档(如各报告的使用说明)放 docs/,与 skill 自动生成的产物分开,方便单独维护

这套结构来自《渡口》端到端 demo 的实际归档经验,demo 的工作目录在本仓库之外,这里只固化约定。

License

Apache 2.0

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools
AI Daily Digest