关于 reverse-outliner
reverse-outliner 将书籍文本整理为结构化分析大纲,帮助研究故事构造。其分阶段流程会划分场景、分析场景作用、识别类型、追踪人物弧光,并汇总生成 Markdown。
主要功能
- 01将书籍划分为章节与场景
- 02使用 Goal/Conflict/Disaster 分析场景
- 03识别类型并映射关键节点
- 04追踪主角及人物弧光
- 05生成结构化 Markdown 大纲
适用场景
- 01研究已出版小说的结构
- 02对照作品与类型惯例的运用
- 03追踪人物在各场景中的弧光
- 04创建逐场景的参考大纲
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jwynia/ agent-skills --skill reverse-outliner安装后在 Claude Code 中输入/reverse-outliner确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
data/key-moments-by-genre.jsonscene-markers.jsonscripts/analyze-scene-batch.tsdetect-genre.tsgenerate-outline.tsreverse-outline.tssegment-book.tstrack-characters.ts详细介绍
逆向拆解大纲:图书大纲分析
将已出版的图书逆向拆解为结构化的学习大纲。你的职责是从完成的 prose 中提取底层故事架构,揭示塑造读者体验的创作决策。
核心原则
一本完成的书会隐藏它的构造过程。大纲则揭示 prose 之下的骨架。
每个场景都承担结构、情感和角色功能。通过系统地提取这些功能,你可以绘制出故事如何实现其效果的地图。
状态
RO0:无输入
症状: 用户想分析一本书,但尚未提供文本或指出来源。
关键问题:
- 你要分析哪本书?
- 你准备好文本文件了吗?
- 你的学习目标是什么?(创作技巧分析、类型研究、教学)
干预措施: 引导用户准备文本输入。讨论分析范围(全书还是部分内容)。
RO1:未分段的文本
症状: 已有原始文本,但尚未识别章节/场景划分。
关键问题:
- 这本书是否有明确的章节标记?
- 场景切换是否通过空白、符号或 POV 变化标记?
- 这种类型的作品通常每个场景有多长?
干预措施: 运行 segment-book.ts,识别章节和场景。
RO2:已分段,未分析
症状: 已识别章节/场景,但尚未进行结构分析。
关键问题:
- 总共有多少个场景?
- 准备开始逐场景分析了吗?
干预措施: 运行 analyze-scene-batch.ts,进行 G/C/D 分析。
RO3:未识别类型
症状: 已分析场景,但尚未映射类型专属的关键节点。
关键问题:
- 主要的元素类型是什么?
- 是否有次要类型?
- 适用哪种关键节点框架?
干预措施: 运行 detect-genre.ts,然后映射关键节点。
RO4:未追踪角色
症状: 已映射场景和类型,但尚未追踪角色弧线。
关键问题:
- 谁是主角?
- 哪 3-5 个次要角色最重要?
- 每个角色分别遵循哪种弧线类型?
干预措施: 运行 track-characters.ts,识别并追踪角色弧线。
RO5:准备好综合
症状: 所有分析已完成,准备生成大纲。
关键问题:
- 需要哪种输出深度?(摘要、标准、详细)
- 包含所有场景还是仅包含重要场景?
干预措施: 运行 generate-outline.ts,生成 Markdown 输出。
RO6:大纲已完成
症状: 已生成 Markdown 大纲并可供使用。
关键问题:
- 大纲是否呈现了这本书的结构?
- 是否存在遗漏,或需要人工复核的场景?
干预措施: 人工完善、导出或进行对比研究。
诊断流程
- 确定当前状态,检查现有文件/分析结果
- 根据上方状态表识别下一步干预措施
- 运行适当的工具,推进到下一状态
- 验证输出后再继续
- 重复执行,直到达到 RO6
可用工具
segment-book.ts
将原始书籍文本分割为章节和场景。
deno run --allow-read scripts/segment-book.ts book.txt [options]
选项:
--chapter-pattern <regex>- 自定义章节检测模式--scene-break <marker>- 自定义场景分隔标记--output <file>- 输出 JSON 文件(默认:stdout)
输出: 包含章节、场景、行范围和字数的 JSON。
analyze-scene-batch.ts
对所有场景应用场景序列分析(目标/冲突/灾难)。
deno run --allow-read scripts/analyze-scene-batch.ts segments.json book.txt [options]
选项:
--depth quick|standard|detailed- 分析深度--output <file>- 输出 JSON 文件
输出: 包含每个场景的 G/C/D 分析的 JSON。
detect-genre.ts
根据文本模式识别主要和次要元素类型。
deno run --allow-read scripts/detect-genre.ts book.txt [options]
选项:
--sample-size <n>- 抽样的场景数量(默认:10)--output <file>- 输出 JSON 文件
输出: 包含类型识别和关键节点映射的 JSON。
track-characters.ts
识别主角和主要角色,并追踪他们的角色弧线。
deno run --allow-read scripts/track-characters.ts segments.json book.txt [options]
选项:
--protagonist <name>- 指定主角姓名--max-secondary <n>- 次要角色的最大数量(默认:5)--output <file>- 输出 JSON 文件
**输出:**包含角色弧线和关键场景引用的 JSON。
generate-outline.ts
将所有分析综合为结构化的 Markdown 大纲。
deno run --allow-read --allow-write scripts/generate-outline.ts [options]
选项:
--segments <file>- 分段 JSON--scenes <file>- 场景分析 JSON--genre <file>- 类型检测 JSON--characters <file>- 角色追踪 JSON--depth summary|standard|detailed- 输出深度--output <file>- 输出 Markdown 文件
reverse-outline.ts(编排器)
运行完整流程,从 book.txt 生成 outline.md。
deno run --allow-read --allow-write scripts/reverse-outline.ts book.txt [options]
选项:
--output <dir>- 输出目录(默认:./reverse-outlines/{book-name}/)--depth quick|standard|detailed- 分析深度--protagonist <name>- 指定主角姓名--genre <type>- 覆盖类型检测结果
**输出:**包含 outline.md 以及 analysis/ 文件夹的目录,后者包含所有中间 JSON 文件。
反模式
浅层拆解
**问题:**大纲列出了发生的事情,却没有说明原因。 **解决方法:**针对每个场景,思考:它发挥了什么结构功能?如果删掉它,什么会出问题?
忽略类型的分析
**问题:**把惊悚小说的模式套用到爱情小说上,反之亦然。 **解决方法:**始终先检测类型;使用符合该类型的关键时刻。
臆断主角
**问题:**假定第一个视角角色就是主角。 **解决方法:**追踪所有视角角色的目标关联度和角色弧线表现。
猜测场景边界
**问题:**把段落分隔当作场景分隔。 **解决方法:**使用多种检测策略;优先采用保守分段,并进行人工审查。
不会执行的操作
- 生成原创故事内容
- 评判书籍的质量
- 除非被要求,否则不与其他书籍进行比较
- 跳过状态(每个状态都基于前一个状态)
- 修改源文本
输出持久化
此技能会将主要输出写入文件,以便在不同会话间保留工作成果。
输出位置查找
开始任何其他工作之前:
- 检查项目中是否存在
context/output-config.md - 如果存在,查找此技能对应的条目
- 如果不存在,则在
./reverse-outlines/{book-name}/创建输出
主要输出
对于此技能,需持久化:
- outline.md - 最终 Markdown 大纲
- analysis/segments.json - 章节/场景分段
- analysis/scenes.json - 逐场景 G/C/D 分析
- analysis/genre.json - 类型检测结果
- analysis/characters.json - 角色弧线追踪
对话与文件
| 写入文件 | 保留在对话中 |
|---|---|
| 分段数据 | 澄清问题 |
| 场景分析 | 方法讨论 |
| 类型检测 | 模糊情况的选项 |
| 角色弧线 | 实时反馈 |
| 最终大纲 | 作者的探索 |
集成关系图
入站(来自其他技能)
| 来源技能 | 来源状态 | 导向状态 | 目的 |
|---|---|---|---|
| story-sense | SS7:准备评估 | RO0 | 分析已出版作品,以便与自己的作品进行比较 |
| dna-extraction | EX7:提取完成 | RO5 | 将提取出的功能与检测到的结构进行比较 |
出站(流向其他技能)
| 此状态 | 导向技能 | 目标状态 | 目的 |
|---|---|---|---|
| RO6:大纲完成 | story-zoom | Z2 | 将已出版书籍与自己的结构进行对照 |
| RO6:大纲完成 | scene-sequencing | SQ1 | 将其用作场景结构参考 |
| RO6:大纲完成 | character-arc | CA1 | 将其用作角色弧线设计参考 |
| RO6:大纲完成 | genre-conventions | GC1 | 研究类型的运用 |
互补技能
| 技能 | 关联 |
|---|---|
| scene-sequencing | 复用核心 G/C/D 分析模式 |
| genre-conventions | 来源于其中的类型检测模式 |
| character-arc | 来源于其中的弧线类型识别模式 |
| dna-extraction | 借用其中的功能分类 |
| story-zoom | 输出格式兼容,便于比较 |
| revision | 采用类似的结构分析方法 |