Tooluck logoTooluck
SKILL.md

novel-script

Agent skill frometernityspring/shuohao-skills

给 AI 短剧写剧本:把 novel-outline 的分集梗概落成结构化的场次 + 节拍流(动作节拍与台词行交替), 台词逐句带说话人与语气,时长逐集按语速确定性折算。产出 script.json + Markdown + 单页评审报告 (时长仪表 / 分集剧本 / 场次总表 / 按角色聚合的台词本,含导出 JSON)。 剧本管戏,分镜管拍——本 skill 不分镜头、无镜号、不写生成提示词,那些是下一层分镜 skill 的活。 10 道质量门全部由脚本确定性检查(每集时长 ±15%、单句 ≤35 字、说话人合法、钩子悬念落纸、 钩子具象前 3 拍内兑现(hookBeat 认领冷开场)、每场至少一个动作节拍、爽点认领、 角色/场景/光照/道具对账上游……)。 有 outline.json 就用 seed 预填每集骨架;给 --art 连光照状态一起对账。 零依赖、零 API key,用当前会话额度。 Use when asked to 写剧本、出剧本、台词、场次、写戏、screenwriting for AI short drama。

How to install novel-script

install novel-script
# install the shuohao-skills pack with the skills CLI
npx skills add eternityspring/shuohao-skills

# or add only this skill to Claude Code: copy the folder

skills/novel-script/

# into

~/.claude/skills/novel-script/ (all projects)

.claude/skills/novel-script/ (one project)

skills/novel-script/SKILL.md

Apache-2.0Full file
1## novel-script
2
3给 AI 短剧写**剧本**。**前提刻在骨子里:剧本管戏,分镜管拍**——「爽不爽」和「怎么拍」是两种迭代节奏,台词要反复推翻重写,绑上镜头分解每改一句都得重排镜头。所以这层只有集、场次、节拍流,没有镜号;镜头、首帧提示词、生成批次都是下一层分镜 skill 的活。
4
5但有一条底线:**台词必须是结构化数据,不能写成散文**。每句台词是独立条目(说话人 + 台词 + 语气),动作是独立节拍——这是全部确定性检查的地基:
6
7| 交付 | 解决什么 |
8| --- | --- |
9| 逐集时长预算 | 一集三分钟就是三分钟:台词按语速折算、动作按节拍估时,写超写欠当场拦下,不流到生成环节才发现 |
10| 节拍流(动作 ⇄ 台词) | 台词直接对接 TTS 逐句生成;动作节拍就是画面要发生的事。混成散文两头都喂不进管线 |
11| 每场至少一个动作节拍 | 纯对白的场是广播剧——AI 生成时没有画面可写 |
12| 开场钩子 + 结尾悬念 | 短剧的生死线,每集都要落在纸面;**钩子不是标签是第一拍**——`hookBeat` 认领具象位置,必须落在全集前 3 拍内(冷开场) |
13| 爽点认领 | 大纲说这一集有大爆点,剧本必须有戏认领它——防止改着改着把爆点改丢 |
14| 上游对账 | 场景/光照/道具对 art.json、角色对 outline.json,写了美术没登记的光照状态当场报 |
15
16`{baseDir}` = 本文件所在目录。脚本 `{baseDir}/scripts/novel-script.mjs`,零依赖,`node` 直接跑。
17
18**边界(不做的事)**:不分镜头、无镜号、不写画面生成提示词、不出图、不配乐——分镜层的活一件不碰。不改大纲结构(砍线合人是 `novel-outline` 的活);不做角色和场景设定(`novel-characters` / `novel-art` 的活)。
19
20---
21
22### Step 0 — 定输入与范围
23
24**outline.json 是剧本的直接上游**(分集梗概、爽点落点、单集时长都在里面),标准流程从它开始。没有的话先问用户是否跑 `novel-outline`;用户坚持直接写,就问清集数与单集分钟数,手建骨架,对账门会明说跳过。
25
26**一次写几集**:默认一批 ≤ 3 集。剧本是全管线改得最凶的一层,小批量出、快拍板、再往下写。用户明确要全剧也分批产出,每批过一次校验。
27
28顺手带上(都可选,给了才对账/显示名字):
29
30- `--outline`:角色引用对账 + 爽点认领检查 + 报告里 C01 显示成人名
31- `--art`:场景/光照状态/道具对账 + 报告里 S01 显示成场景名
32
33### Step 1 — seed 骨架
34
35```bash
36node {baseDir}/scripts/novel-script.mjs seed <outline.json> --eps 1-3 > <workdir>/script.json
37```
38
39确定性搬运:目标秒数(单集分钟 × 60)、钩子、悬念、该集爽点认领、候选场景与人物(进 `seedNote`)。**这些事实不要让模型重新想一遍。** scenes 留空,那才是写戏的活。
40
41### Step 2 — 逐集写戏
42
43每集一份任务,能并发就并发。每份任务拿到:
44…

Excerpt shown under the repository's Apache-2.0 license.

More skills in shuohao-skills

Keep exploring

Similar skill repositories

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates