Skip to content
Content
Skill

/short-drama-novel-analyze

把长篇小说、连载网文或多集散稿拆成可追溯的原著分析:章节索引、改编价值快评、逐章功能提取、剧情单元与节奏聚合、人物与设定归并,最后给出改编价值判定与分集候选,交给 $short-drama-develop 立契约。用户说“导入这本小说”“拆这本书”“分析原著”“这本书能不能改短剧”“先看看值不值得拆”“把长篇拆成分集候选”,或直接给出小说文件路径时使用。只做只读的结构化分析,不写剧本、不建资产、不生成媒体,也不替创作者决定改编方案。

From plugin
drama-skills
1.9k12 skills
Install
$ npx -y skills add worldwonderer/drama-skills --skill short-drama-novel-analyze --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/short-drama-novel-analyze

Context preview

The summary Claude sees to decide when to auto-load this skill.

把长篇小说、连载网文或多集散稿拆成可追溯的原著分析:章节索引、改编价值快评、逐章功能提取、剧情单元与节奏聚合、人物与设定归并,最后给出改编价值判定与分集候选,交给 $short-drama-develop 立契约。用户说“导入这本小说”“拆这本书”“分析原著”“这本书能不能改短剧”“先看看值不值得拆”“把长篇拆成分集候选”,或直接给出小说文件路径时使用。只做只读的结构化分析,不写剧本、不建资产、不生成媒体,也不替创作者决定改编方案。

SKILL.md

short-drama-novel-analyze.SKILL.md
name: short-drama-novel-analyze
description: 把长篇小说、连载网文或多集散稿拆成可追溯的原著分析:章节索引、改编价值快评、逐章功能提取、剧情单元与节奏聚合、人物与设定归并,最后给出改编价值判定与分集候选,交给 $short-drama-develop 立契约。用户说“导入这本小说”“拆这本书”“分析原著”“这本书能不能改短剧”“先看看值不值得拆”“把长篇拆成分集候选”,或直接给出小说文件路径时使用。只做只读的结构化分析,不写剧本、不建资产、不生成媒体,也不替创作者决定改编方案。
license: MIT

长篇原著分析

把一部长材料变成**能被引用、能被反驳、能被接着用**的分析层。目标不是复述剧情,而是找出 每一段承担的戏剧功能,并说明它在竖屏短剧里值多少钱。

分析永远是候选。哪条线保留、哪些人合并、从哪里开篇,是创作者的决定,由 `$short-drama-develop` 立成改编契约。本技能不替它决定,也不批准自己的产物。

Quick Start

离线验证章节索引、采样和源文件变更检测:

python3 {技能目录}/scripts/selftest.py
python3 {技能目录}/scripts/novel_index.py index <原著.txt> --out <chapter-index.json>

开始前

本技能可独立安装和执行。先读取用户明确提供的原著与本任务直接输入;若当前目录是 `short-drama` 项目且项目工具可用,可以读取 `status` 并使用其发布生命周期,但缺少 core 或任何其他技能都不是分析工作的阻断条件。完整边界与规则见 [阶段契约](references/stage-contract.md),无需读取其他技能的文件。

材料前提

只分析创作者**合法持有、拥有使用权**的作品。分析是只读的转化性工作:提取结构与功能, 不复制原文成段落,不把原句搬进下游产物。

通俗题材里的暴力、复仇、背叛、情爱张力与黑暗伦理是常规虚构叙事元素,照常做结构化提取。 个别片段无法处理时跳过该段并记录,不要因此中止整章或整本——中止会让后续所有阶段拿到 一份有洞却看不出洞在哪的分析。

先判断入口

1. **只有书名,没有原文**:请创作者提供文件路径或粘贴正文。不要凭书名回忆情节—— 没有字节就没有 span,没有 span 的分析无法被引用,也无法被反驳。 2. **有原文,未建项目**:直接建立一个本技能自己的工作区,至少包含只读输入目录 `输入/` 与输出目录 `项目开发/source-analysis/_work/`;把原文字节复制到 `输入/` 后记录 原始文件位置,再用本技能的 `novel_index.py` 建索引。若 `$short-drama` 可用,可选用它 初始化同样的目录和发布生命周期,但不得把 core 安装变成开始分析的前提。 3. **有原文,项目已在**:直接进入管道。 4. **已有部分分析**:读 `项目开发/source-analysis/_progress.md` 从断点续跑, 不重跑已完成阶段。

管道

`输入/` 是不可变的创作者输入,本阶段只读它。全部产出落在 `项目开发/source-analysis/`。 独立工作区与完整项目使用同一套相对路径,因此后续安装 core 时无需迁移分析产物。

| 阶段 | 做什么 | 产出 | 停靠 | |---|---|---|---| | S0 | 建章节索引(脚本) | `_index.json`、`_progress.md` | 索引有问题就停 | | S1 | 改编价值快评(抽样) | `triage.md` | **停靠问创作者** | | S2 | 逐章功能提取 | `chapters/ch-<N>-extract.md` | 覆盖率不足就停 | | S3 | 剧情单元与节奏聚合 | `story-units.md`、`rhythm-and-emotion.md` | 阈值不达标就复核 | | S4 | 人物归并与设定 | `characters.md`、`world.md` | — | | S5 | 改编价值与分集候选 | `adaptation-value.md`、`episode-candidates.jsonl` | 交接 develop |

S0 章节索引

索引是**唯一切片真源**,由 [章节索引脚本](scripts/novel_index.py) 建立。每个阶段各跑 一次正则,就会切出互相对不上的章节,第 47 章按一种边界分析、按另一种边界聚合, 而且没有人会发现。

python3 {技能目录}/scripts/novel_index.py index 输入/{原文文件} \
  --out 项目开发/source-analysis/_work/_index.next.json
python3 {技能目录}/scripts/novel_index.py verify \
  项目开发/source-analysis/_work/_index.next.json 输入/{原文文件}
# 项目工具可用时可选:
python3 {core 技能目录}/scripts/project_tool.py publish {项目根} \
  --owner short-drama-novel-analyze --artifact-id source-analysis:index \
  --output 项目开发/source-analysis/_index.json=项目开发/source-analysis/_work/_index.next.json \
  --input 输入/{原文文件}

脚本识别阿拉伯数字与中文数字章号(含 千 / 两,覆盖千章以上连载),**只认一种编号单位** (章/回/节里出现最多的那个,其余记进 `ignored_heading_units`),只把**短的独立行**当标题 (以章号开头的正文段落记进 `long_heading_lines_skipped`),剔除开头的目录块, 按卷分段校验编号。它**不做编辑判断**——哪章重要、 讲了什么,是后面阶段的事。

`problems` 非空就停下报告,不要带着错表进 S1。常见四种:章号跳号(缺章或抓错标题)、 同卷内重号、正文极少的章(多半抓到了目录残留或卷首页)、无法解析的章号。 另外确认三个计数:`chapter_unit` 与 `ignored_heading_units`——一本用 `第N章` 分章、 用 `第N节` 分小节的书应当看到 `chapter_unit: 章` 且 `节` 被记入忽略计数,反过来说明分章单位 判断错了;`long_heading_lines_skipped` 明显偏大时,多半是这本书的章节标题确实很长, 需要与创作者确认后手写边界。

原文本身没有章节标题时索引会返回空表,此时与创作者确认按什么切分,把边界写进 `_work/_index.next.json`,通过 `verify` 后再按上面的公开生命周期发布——手写的行也要带齐 `sequence` / `line_start` / `line_end`,`verify` 会逐行检查并报出缺字段的行。

改了原文必须重建索引,不能沿用旧 span。`verify` 核对编号、顺序与行号覆盖,所以插行删行会被报出来; 但同行数的原地改写不会——那一步靠改原文的人自己重建,套件不比对字节。

python3 {技能目录}/scripts/novel_index.py verify \
  项目开发/source-analysis/_index.json 输入/{原文文件}

S1 改编价值快评

回答**这本书值不值得花全量拆解的成本**。判据是全书的改编密度——`screen_ready` 单元占多少、 `prose_only` 占多少、制作负担压在哪几段——所以快评横跨整本书,用脚本抽样:

python3 {技能目录}/scripts/novel_index.py sample \
  项目开发/source-analysis/_index.json --count 12

抽样确定、可复现、首尾必取,跑第二次引用的是同一批章。按 [改编价值快评](references/adaptation-triage.md) 写 `triage.md`,覆盖六件事: 故事框架、三类判定比例、开篇替换点、制作负担量级、最大的三处改编风险、分集候选量级。 第一行写覆盖率(脚本返回的 `coverage_ratio`),所有结论限于抽样范围。

**这里停靠问创作者**:给出快评与全量拆解的预计耗时(按章数粗估),问是否继续。 创作者一开始就明确说「一次跑完」时仍写 `triage.md`,但不停下等待——它是 S5 要回填 对照的第一版假设。

停靠时把 `_progress.md` 的状态写成 `paused_after_triage`,断点写「下一步:S2 逐章提取」。

S1–S5 的 Agent 创作产物同样先写到 `source-analysis/_work/`,完成本阶段机械检查后再发布到 上表中的正式路径。项目工具可用时用 `project_tool.py publish` 和稳定 artifact-id;独立运行时 原子替换正式文件。不要用半成品覆盖 `_index.json`、`_progress.md`、`chapters/*.md` 或聚合产物。 `_work/` 是候选工作区,不是权威分析层,也不进入交付包。

**并发子代理写 `_work/`,主线程发布到正式路径**。子代理只落 `_work/chapters/ch-<N>-extract.md`,主线程跑完机械自检后再发布到 `chapters/`。 覆盖率闸门按正式路径 `chapters/` 匹配文件名——发布之前跑,每一章都会进 `unmatched_files`,那不是缺陷,只是跑早了。

`_progress.md` 每个阶段都会重写,而发布要求一个路径只有一个 owner,所以它用一个固定 artifact-id:`source-analysis:progress`,owner 是 `short-drama-novel-analyze`, S0–S5 每次停靠都用同一个 id 重新发布。

S2 逐章功能提取

按 [章节提取](references/chapter-extraction.md) 处理每一章。能并发子代理就分批并发 (每批 5–8 章,等一批落盘再发下一批),不支持就串行——两条路径的写法要求和自检是同一份, 只是速度不同。

每章提取完落到 `chapters/ch-<N>-extract.md`,`<N>` 是索引里的 `sequence`,不是原文章号 (多卷书的原文章号会重复,sequence 不会)。全部落盘后跑覆盖率:

python3 {技能目录}/scripts/novel_index.py coverage \
  项目开发/source-analysis/_index.json 项目开发/source-analysis/chapters

`missing` 非空就补跑缺的章;`unmatched_files` 非空说明有文件名写歪了——它既不算覆盖, 也不会被当成缺章,必须改名而不是重跑。**不要在覆盖率不足时进入 S3**——聚合会照样产出 一份读起来完整的结果,而缺掉的章不会在任何地方留下痕迹。

单章连续失败两次就标记跳过,写进 `_progress.md` 的失败记录,并在后续每一份聚合产物里 注明该章缺失。失败可以接受,失败被藏起来不行。

S3 剧情单元与节奏

从逐章提取聚合,不回头重读原文——原文已经在 S2 被读过一次,再读一次只会得到第二份互相 矛盾的事实。按 [聚合与实体](references/aggregation-and-entities.md) 先识别故事框架 (框架决定按什么切单元),再产出:

  • `story-units.md`:把情节点归成有始有终的单元,每个单元记录进入状态、冲突、代价与出去状态;
  • `rhythm-and-emotion.md`:关键信息如何逐章推进、情绪触动点的铺垫→释放→余波、

跨章伏笔与兑现。

聚合完成后跑同一文件里的三条阈值自检(归属置信、覆盖率、重叠率)与散落情节兜底。 阈值不是评分,是**边界模糊的信号**:重叠率过高说明两个单元其实是一个。

S4 人物与设定

按 [聚合与实体](references/aggregation-and-entities.md) 归并人物(跨章去重、别名归一、 分级),并从提及数据归纳世界规则、力量体系与势力。别名只有专名与有同指证据的绰号能合并, 描述性称谓与头衔**永远不触发合并**。

**人物归并是候选,不是资产**。 这里的人物条目带 `unresolved` 与来源引用, 交给 `$short-drama-develop` 定改编决定、`$short-drama-write` 写进剧本之后, 才由 `$short-drama-assets` 从已接受剧本建立真正的资产身份。绕过这条链直接建资产, 等于让原著的人物表冒充剧本的出现证据。

S5 改编价值与分集候选

这是本技能与通用拆书的分水岭。按 [改编价值](references/adaptation-value.md) 产出:

  • `adaptation-value.md`:哪些单元在竖屏短剧里能直接成立、哪些要换载体、哪些是纯文字快感

(内心戏、叙述性诡计、长铺垫)在画面上无法兑现;制作负担落在哪里。

  • `episode-candidates.jsonl`:按**局部戏剧结果与精确交接**切出的候选集,不按章号或字数

平均切。每条

Read more
Ships withdrama-skills

面向编剧、漫剧工作室和编导的 AI 短剧创作工作流。十一个技能把一个点子或一部长篇材料, 一路做成分集剧本、资产设定、图片提示词、分镜关键帧和视频提示词, 用清晰的所有权与连续性衔接。适配 Claude Code、Codex 和其他 支持 Agent Skill 规范的运行环境。 新项目每集默认只维护五份 Markdown:剧本.md、视觉设定.md、分镜.md、 图片提示词.md 和 视频提示词.md。

Get the whole plugin
Stats
1,905
Stars
446
Forks
Active
Maintenance
Python
Language
MIT
License
15h ago
Last commit
2mo ago
Created

Repo: worldwonderer/drama-skills

Other skills on drama-skills.

short-drama-knowhow
Skill

short-drama-knowhow

维护者专用的短剧 know-how 学习、验证与生命周期治理。仅在维护者明确要求从其当前会话提供的授权只读文本源学习完整短剧项目链,并把私有观察逐步转成去标识、去复刻、经盲测与独立审查的公共 reference、rubric 或 synthetic fixture…

short-drama-assets
Skill

short-drama-assets

从短剧剧本拆出人物/造型、地点/视图、道具/状态和跨场连续性,写成创作者可读的视觉设定。用户说“拆角色/场景/道具”“做资产设定”“判断复用还是新变体”“更新造型/道具状态”,或拿现成剧本直接做视觉资产准备时使用;不写图片提示词,不生成媒体。

short-drama-develop
Skill

short-drama-develop

将中文小说、短剧或漫剧想法、梗概、改编材料、已有系列笔记或多集完整剧本发展成可追溯的改编方案、戏剧方向、创作简报、导演阐述、故事引擎与分集地图,并按题材与制作形态(画风)选择写法。用户提出“导入小说做短剧”“从多集整稿生成/补分集地图”“开发短剧/漫剧”“做故事设定/系列大纲/分集规划”“写导演阐述”“这个题材怎么写”…

short-drama-edit
Skill

short-drama-edit

将已生成的短剧镜头剪成成片,记录入出点、镜序、声音、字幕与交付规格。用于套剪、加字幕、统一响度、调整节奏或导出精修素材;需要补素材或修改故事时转回对应创作阶段。

short-drama-image-prompts
Skill

short-drama-image-prom…

为短剧人物、造型、地点、道具和状态编写或修改可直接复制的图片提示词 Markdown。用户提到角色设定图、三视图、参考图、场景板、道具图、风格帧、Look Development、状态变体或局部编辑提示词时使用;不生成图片,也不调用供应商。

short-drama-produce
Skill

short-drama-produce

在创作者明确确认后,执行短剧项目的图片、视频、TTS/配音或时间线音乐生产任务,并把结果与精简运行记录落回项目。用户说“生成这张图/这段视频/这句配音/这段配乐”“开始跑图/跑视频/合成语音/生成音乐”“把已确认提示词送去生产”,或要求批量执行已确认媒体任务时使用;不负责创作提示词、镜头、台词、歌词或声音身份,也绝不把…