novel-staging

novel-staging is a skill for Claude Code from eternityspring/shuohao-skills. It costs 259 tokens per session (3,031 once invoked), scanned A, original, Apache-2.0.

A tool for deciding where characters are positioned at the start of each scene in an AI short video. It uses scene images and script data to record who is present, whether each person sits or stands, and which way they face.

In plain words
What is it for?
Use it to create and check staging data, place characters beside objects visible in a scene, write opening movement lines, and export staging.json.
Why use it?
It prevents each video segment from inventing different starting positions or adding unnamed people. A visual editing page lets positions be adjusted before the result is passed to storyboards.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions Codex.

Good fit Use it to create and check staging data, place characters beside objects visible in a scene, write opening movement lines, and export staging.json.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/eternityspring/shuohao-skills/novel-staging
About the project

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.

eternityspring/shuohao-skills · 5,046 stars · on GitHub · studio.reelbenchai.com

Install

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.

Any agent
npx skills add eternityspring/shuohao-skills --skill novel-staging
Clone the repo
git clone --depth 1 https://github.com/eternityspring/shuohao-skills

Made for: Claude Code.

Wrote 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.

agentmods badge for novel-staging

README.md
[![agentmods](https://agentmods.dev/badge/skills/eternityspring/shuohao-skills/novel-staging/github.svg)](https://agentmods.dev/skills/eternityspring/shuohao-skills/novel-staging)
Your own site
<a href="https://agentmods.dev/skills/eternityspring/shuohao-skills/novel-staging"><img src="https://agentmods.dev/badge/skills/eternityspring/shuohao-skills/novel-staging/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.

agentmods 80×15 button for novel-staging

Your own site · 80×15
<a href="https://agentmods.dev/skills/eternityspring/shuohao-skills/novel-staging"><img src="https://agentmods.dev/badge/skills/eternityspring/shuohao-skills/novel-staging.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 259 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,031 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00259 $0.03031
Opus 5.5 $0.00104 $0.01212
Sonnet 5.5 $0.00052 $0.00606
Haiku 4.5 $0.00026 $0.00303

Measured 9d ago against content hash 0afc3ade75ee, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

novel-staging 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 9d ago.

The scan reads SKILL.md. This mod also ships 2 executable files (scripts/novel-staging.mjs, scripts/selftest.mjs), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

skills/novel-staging/SKILL.md · 169 lines

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-staging

给 AI 短剧的每一场排开场站位:这一场一开始,每个出场的人在哪件东西旁、坐还是站、面朝哪。

为什么要单独排:短剧的每一段视频是一次独立生成,各段自己决定谁坐哪。群戏里六个人围一张长桌,第一段桌边多出五个没名字的宾客,第三段端酒坐着的人穿着主角的衣服。分镜的走位句一段接一段地交接,可每一场第一段的那一句是分镜自己编的,人看不到、改不动。所以在分镜之前,每场先定一份站位,分镜照抄。

交付 解决什么
认图结果(每个地点 4–20 件东西) 站位只落在图上真有的东西旁——提示词里写了、图上没画的高台,人坐上去,每段视频都不一样
俯视平面 在透视的场景图上「桌子北侧」只是桌子后面一小条,前后深浅说不清;摆平了从上往下看,方位一目了然
开场站位(每场) 谁开场就在、谁后来才进;坐还是站跟着剧本;主位、对立、孤立用位置说出来
开场走位句 程序按站位写,一字不差交给分镜:「胡二爷坐在第三排坐板上,面朝北;其余座位空着,没有其他人。」
能调整的报告 人在页面上拖动、改坐站和朝向,改完导出就是新的 staging.json,不用手改 JSON

{baseDir} = 本文件所在目录。脚本 {baseDir}/scripts/novel-staging.mjs,零依赖,node 直接跑。

边界(不做的事):不写分镜、不写剧本、不出图。只管开场那一刻——中途谁站起来、走到哪,是分镜的事,分镜从这一刻往后接着写。


Step 0 — 定输入

  • script.json(novel-script 的产出)——硬前提:有哪几场、每场在哪个地点、谁出场、剧本怎么写的
  • art.json(novel-art 的产出)——地点的名字;还没有图时,按它的锚点和主视角提示词推算
  • outline.json(novel-outline 的产出)——人物编号对应的名字(C01 → 沈知微)
  • 场景图——每个地点一张,放在 images/<地点名>-sheet.png(novel-art 的设定图版面,主视角在左上)。最好有:站位要落在图上真有的东西旁。没有图也能先排,但只是草稿(见 Step 2)

Step 1 — seed 骨架

node {baseDir}/scripts/novel-staging.mjs seed <script.json> --art <art.json> --outline <outline.json> > <workdir>/staging.json

确定性搬运:地点(按第一次出现的顺序)、每一场的集号场号、在哪个地点、光照时段、出场人物,每个人一条空的站位。这些事实不要让模型重新想一遍。 只要其中几集就加 --eps 1-3。

Step 2 — 认图(每个地点一次)

每个地点一份任务,能并发就并发。读 {baseDir}/references/read-pass.md,照着做:看场景图的主视角,认出人会站在旁边、坐在上面的东西,每件写名字、另一种语言、图上的框(box)、平面上的位置(plan)、能不能坐(on)、是不是圆的(round),4–20 件,readFrom 写 picture。

最重的两条:图里看不到的不写(提示词里有、图上没有的一律不写);plan 按透视推算,不是照抄 box。

还没有图:按 art.json 的锚点和主视角提示词推算,readFrom 写 prompt、不写 box。报告会标出来;图出来以后重新认一遍、核对站位。

Step 3 — 排站位(每场一次)

每场一份任务,能并发就并发(同一个地点连着几场的,按顺序排,保持位置连贯)。读 {baseDir}/references/staging-pass.md,拿这一场的剧本、出场人物和这个地点认出来的东西,给 places 里每个人填:开场在不在(present)、在哪件东西(item)的哪一侧(side)、沿这一侧多远(along)、坐还是站(posture)、面朝哪(facing);再填群演(extras / extrasWhere)和一句 why。

最重的三条:后来才进来的人开场不在;剧本没写有别人就没有群演;只使用认出来的那些东西。

Step 4 — 校验 ⛔ 不能跳

Read the full file on GitHub · 169 lines

Changes

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.

  1. 9d ago First seen · 169 lines · 259 tokens per session scan A 0afc3ade75ee

Subscribe to this mod's changes

novel-staging is a skill published in the GitHub repository eternityspring/shuohao-skills (5,046 stars, last pushed yesterday), licensed Apache-2.0. It adds 259 tokens to every session and 3,031 once invoked, about $0.0010 per session on Opus 5.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-10-16.

Related

Other skills, from other repositories

local-ai-agents

Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…

microsoft/ai-agents-for-beginners · 200 tokens

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

chronicle

Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…

microsoft/vscode · 72 tokens

chat-pet-sprite-creation

Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.

microsoft/vscode · 53 tokens

component-fixtures

Use when creating or updating component fixtures for screenshot testing or their shared infrastructure, or when designing UI components to be fixture-friendly. Covers fixture file structure, theming, service setup, CSS scoping, async rendering, validation, and common pitfalls.

microsoft/vscode · 53 tokens