shuohao-skills is a collection of agent skills for turning a novel into production materials for an AI short-drama pipeline, including character profiles, outlines, art references, scripts, and storyboards. It is for creators using Claude Code or Codex to plan and prepare AI-generated short videos. The catalogue add-ons implement the separate stages of this workflow and can also assemble their reports.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add eternityspring/shuohao-skills --skill novel-outlinegit clone --depth 1 https://github.com/eternityspring/shuohao-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/eternityspring/shuohao-skills/novel-outline)<a href="https://agentmods.dev/skills/eternityspring/shuohao-skills/novel-outline"><img src="https://agentmods.dev/badge/skills/eternityspring/shuohao-skills/novel-outline/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/eternityspring/shuohao-skills/novel-outline"><img src="https://agentmods.dev/badge/skills/eternityspring/shuohao-skills/novel-outline.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00197 | $0.02697 |
| Opus 5 | $0.00098 | $0.01349 |
| Sonnet 5 | $0.00039 | $0.00539 |
| Haiku 4.5 | $0.00020 | $0.00270 |
Grade A, and why
novel-outline scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 179 lines — stays where its author put it; the contents beside it link to each section on GitHub.
novel-outline
输入一本小说 + 目标参数,输出短剧改编大纲五件套。四件模型写、一件脚本算(资产清单从分集数据自动汇总)。
{baseDir} = 本文件所在目录。脚本 {baseDir}/scripts/novel-outline.mjs,零依赖,node 直接跑。
边界(不做的事):不写剧本台词、不做分镜、不出图像/TTS 提示词。梗概是叙述体,出现引号对白就是越界——validate 会拦。想从小说拆角色设定(画像/形象提示词/设定图),那是 novel-characters 的活。
Step 0 — 收参数 ⛔ 缺了不开工
一次问完,别轮流盘问。两件必问 + 两件给默认值待确认:
| 参数 | 处理 |
|---|---|
| 总集数 × 单集时长 | 必问,没有合理默认 |
| 题材 | 必问,决定爽点类型,猜错整份废 |
| 改编幅度 | 默认抽核(忠实 / 抽核 / 借壳),告知即可 |
| 已有偏好 | 默认无(想保哪个角色、哪场戏) |
平台阈值不同可以带上 params.thresholds 覆盖(默认:主角组 ≤ 5、重要配角 ≤ 10、功能性角色 ≤ 10、爽点间隔 ≤ 3 集)。主场景上限不用配,随集数自动算:4 + ⌈集数/10⌉,夹在 5–15(60 集 → 10)。这是 AI 短剧的数——场景是生成的没有搭景钱,放宽换观赏性;显式给 maxPrimaryScenes 才覆盖。短篇(20–30 集)建议收紧角色档的阈值,默认值是按 60 集以上给的。
人物表从原文拆——大纲是角色设定的上游,characters 块定下的分档、人物线与来源,下游 novel-characters 直接拿去当角色清单,不用再判断一遍谁重要。
例外是用户手上已经有 cast.json(此前单独跑过 novel-characters):那就拿来当人物原料,角色、别名、关系都是现成的,不用重拆原文。分档按 importance 反向映射:protagonist/major → lead,supporting → support,minor → functional。
Step 1 — 定位输入
材料优先级,写死:
- 用户点名的精读章节
- 章节目录 + 简介
- 全文分卷摘要(Step 2)
禁止凭书名脑补内容——一切判断基于给到的文本。落地手段:adaptation.keep 的关键取舍要附 evidence(原文逐字片段)。
直接粘正文的先落成 .txt。输出目录:用户指定就用,没指定用原书同级目录。
Step 2 — 分卷摘要(长文本才需要)
这一步是脚手架,不是交付物——分卷摘要是给没读过原文的模型压缩用的。两种情况直接跳到 Step 3:
- 短篇,单卷装得下
- 当前会话已经通读过原文——不用再压缩一遍,也不用事后补档
长篇且没读过原文:
node {baseDir}/scripts/novel-outline.mjs chunk <book.txt> <workdir>
按章节标题分卷(默认每卷 15 章,--per-volume 可调),识别不出章节就按字数切。打印 {"volumes": N, ...};truncated: true 就明确告诉用户尾部没扫到,别闷着。
每卷一个子代理(支持并发就同一条消息里全部发出):读 {baseDir}/references/volume-pass.md,读 <workdir>/vol-NN.txt,把卷摘要写到 <workdir>/summary-NN.json,只回一句「done NN」。
Step 3 — 快版骨架 → 用户拍板 ⛔
读 {baseDir}/references/outline-pass.md 和 {baseDir}/references/schema.md,照着做。产出骨架四块(adaptation / characters / scenes / beats),写成 <workdir>/outline.json。
node {baseDir}/scripts/novel-outline.mjs validate <workdir>/outline.json --stage beats
过了 beats 档,把三件事摆给用户拍板:砍了哪条线、合了哪些人、大爆点落在第几集。不点头不进 Step 4——快版错了只损失一轮骨架,分集写完才发现方向错,全废。
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- assets/report.webp 46 KB
- examples/渡口-outline.json 9.4 KB
- README.en.md 7.0 KB
- README.md 8.4 KB
- references/episode-pass.md 1.6 KB
- references/outline-pass.md 3.4 KB
- references/report-style.md 5.2 KB
- references/schema.md 7.3 KB
- references/volume-pass.md 1.4 KB
- scripts/novel-outline.mjs 81 KB runs code
- scripts/selftest.mjs 30 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 179 lines · 197 tokens per session scan A e611c46f5451
novel-outline is a skill published in the GitHub repository eternityspring/shuohao-skills (3,181 stars, last pushed 16d ago), licensed Apache-2.0. It adds 197 tokens to every session and 2,697 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
webgl-holographic-foil
A self-contained WebGL2 hero: thin-film interference over a crushed-foil surface whose palette shifts with the viewing angle; move the cursor to tilt the film.
general-video
Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated…
html-ppt-hermes-cyber-terminal
OpenDesign + BYOK: choosing and wiring your own model, hands-on — cost, quality, and the routing decision. Built as a decision-grade AI literacy deck for engineers, IT, applied-AI teams.
html-ppt-taste-brutalist
16:9 HTML deck in tactical-telemetry / CRT-terminal taste. Deactivated-CRT charcoal slides, white-phosphor monospace, hazard-red accent, scanline overlay, ASCII syntax, density over decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Tactical Telemetry mode).
chengfeng-check-updates
An environment manager for a video-editing system. It checks whether its skills and runtime—the software needed to run them—are installed and compatible.
diagnostic-stem-delivery
Audio production with diagnostic analysis, timecode parsing from documents, and verified export workflow.