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-artgit 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-art)<a href="https://agentmods.dev/skills/eternityspring/shuohao-skills/novel-art"><img src="https://agentmods.dev/badge/skills/eternityspring/shuohao-skills/novel-art/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-art"><img src="https://agentmods.dev/badge/skills/eternityspring/shuohao-skills/novel-art.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.00245 | $0.02822 |
| Opus 5 | $0.00122 | $0.01411 |
| Sonnet 5 | $0.00049 | $0.00564 |
| Haiku 4.5 | $0.00024 | $0.00282 |
Grade A, and why
novel-art 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 — 169 lines — stays where its author put it; the contents beside it link to each section on GitHub.
novel-art
给 AI 短剧出美术设定集:场景 + 叙事道具。前提刻在骨子里:这是 AI 生成,不是实拍——没有堪景搭景置景采买,环境和道具都是要被生成几十次还得长一样的资产,所以交付物全部围绕一致性:
| 交付 | 解决什么 |
|---|---|
| 一致性锚点(每景 3–5 个) | 观众靠它认场景,QC 靠它核对生成镜头有没有漂 |
| 光照时段变体 | AI 换时段是重新生成不是重新打灯,每个状态落成完整提示词 |
| 空景出图提示词 | 环境和角色是两层资产,参考图里混进人,一致性全毁 |
| 变体机制(variantOf) | 生成新景便宜,但变体复用母场景资产更一致 |
| 道具状态变体 | 皮箱的合上与打开是两张参考图——道具有状态弧,场景没有 |
| 道具尺度参照 | AI 经常把手持道具画成家具尺寸,提示词必须带尺度短语 |
| 道具白底无手 | 道具图要被贴进各种镜头,必须可抠;拿着道具的手是最常见污染 |
{baseDir} = 本文件所在目录。脚本 {baseDir}/scripts/novel-art.mjs,零依赖,node 直接跑。
边界(不做的事):不做分镜、不写剧本、不管角色(novel-characters 的活)、不排大纲(novel-outline 的活)。道具只收叙事道具(有特写、跨集、承载剧情的,通常 3–8 件)——场景陈设归场景锚点,一次性手部道具镜头级提示词解决,都不单独建资产。
Step 0 — 定输入与画风
三种输入,优先级从高到低:
- outline.json(novel-outline 的产出)——最优,场景清单、出现集、承载爽点、复用方案都是现成的
- 小说原文——自己归纳场景清单(主舞台优先,参考 novel-outline 的主场景上限思路:别贪多)
- 用户手写的场景清单
画风:默认 realistic(半写实厚涂),动画质感用 ghibli。跟角色 skill 保持同一档——角色是吉卜力、场景是半写实,合成的时候没法看。跑 node {baseDir}/scripts/novel-art.mjs styles 看预设全文,整块取用不混搭。
有 cast.json(novel-characters 的产出)也带上——校验「提示词不含角色名」要用。
Step 1 — seed 骨架(有 outline.json 才有这步)
node {baseDir}/scripts/novel-art.mjs seed <outline.json> > <workdir>/art.json
确定性搬运:场景 id/名称/主场景标记/出现集/承载爽点,带复用方案的场景会有 seedNote 提示做成变体。这些事实不要让模型重新想一遍。
没有 outline.json 就自己按 references/schema.md 建清单。
Step 2 — 逐场景填设定 + 提取叙事道具
每个场景一份,能并发就并发。每份任务拿到:
{baseDir}/references/scene-pass.md和{baseDir}/references/schema.md(读它们,照着做)- 该场景的骨架 + 原文/大纲里关于这个空间的全部信息
- 同批其他场景的名字(空间气质要区分开,别都写成同一种破旧)
- 画风预设全文(
styles命令的输出)
核心要求都在 scene-pass.md 里,最重的三条:锚点要可画可认可核对(「补丁船篷」是锚点,「陈旧的氛围」是形容词);光照状态从分集反推,不写用不上的全家桶;能做变体就别开新景。
叙事道具优先吃大纲:outline.json 从 1.1.0 起带 props,seed 会把道具表连同「承载什么」「托起哪几个爽点」「哪几集出现」一起搬过来,这一层只填设计字段(尺度、锚点、状态变体、白底提示词)。大纲没有 props 就从原文提取,那时这步是模型的活:只收有特写、跨集出现、承载剧情的,通常 3–8 件,跟主角数量一个量级。每件按 references/prop-pass.md 填:戏剧功能、锚点、状态变体、尺度、白底无手提示词。皮箱这种「跟人走的道具」就该在这——塞进场景锚点和角色画像都不对。
Step 3 — 校验 ⛔ 不能跳
node {baseDir}/scripts/novel-art.mjs validate <art.json> --cast <cast.json>
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 151 KB
- examples/渡口-art.json 17 KB
- README.en.md 4.0 KB
- README.md 5.4 KB
- references/prop-pass.md 2.9 KB
- references/report-style.md 2.5 KB
- references/scene-pass.md 3.0 KB
- references/schema.md 5.4 KB
- references/sheet.md 4.1 KB
- scripts/novel-art.mjs 53 KB runs code
- scripts/selftest.mjs 20 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 · 169 lines · 245 tokens per session scan A 2e3ec7fa9223
novel-art is a skill published in the GitHub repository eternityspring/shuohao-skills (3,181 stars, last pushed 16d ago), licensed Apache-2.0. It adds 245 tokens to every session and 2,822 once invoked, about $0.0012 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.