SuperAPI AI 工具集

novel-outline

写作与研究

查看项目

更新于 10-15 15:39

技能介绍

novel-outline 用于把一本小说改编成短剧大纲,输出「五件套」:改编说明、人物表、爽点表、分集梗概、资产清单。其中四件由模型撰写,资产清单由脚本从分集数据自动汇总。最终产出 outline.json、Markdown 文档和单页评审报告(outline-report.html)。

【用途与边界】 输入一本小说加目标参数,输出短剧改编大纲。工具明确不做的事:不写剧本台词、不做分镜、不出图像或 TTS 提示词。梗概是叙述体,出现引号对白即越界,validate 会拦截。若要从小说拆角色设定(画像、形象提示词、设定图),属于 novel-characters 的工作。

【主要能力】

  • 五件套产出:改编说明、人物表、爽点表、分集梗概、资产清单。
  • 人物表从原文拆解,作为角色设定的上游;characters 块定下的分档、人物线与来源可供下游 novel-characters 直接使用。若用户已有 cast.json,则拿来当人物原料,分档按 importance 反向映射:protagonist/major → lead,supporting → support,minor → functional。
  • 分卷摘要:长文本且未通读原文时,用脚本按章节标题分卷(默认每卷 15 章,--per-volume 可调),识别不出章节就按字数切;每卷一个子代理生成卷摘要。
  • 质量门校验:14 道质量门全部由代码实现,包括主角组 1–5 人、重要配角 ≤ 10、功能性角色 ≤ 10、主场景不超上限(随集数动态,60 集 → 10)、叙事道具 ≤ 8 件、一次性场景有规避方案、爽点间隔 ≤ 3 集无真空、第 1 集有钩子、大爆点不压最后一集、每集三栏齐全、三人同框有拆解、生成难点进预警、引用完整无失业角色无空转场景无零集道具、叙述体无对白。
  • 评审报告:自带 KPI 带、关键决策(拍板三件事,大爆点列表和角色位统计自动算)、爽点时间轴(空档标在轴上,超阈值变红)、每集调度矩阵、场景概览卡、资产量折算、质量门(✓/✗ 烘进页面,未过弹病灶横幅)、导出 JSON 按钮(下载的就是 outline.json 原样)。报告界面默认中文,可用 --lang en 切换英文界面(或在 outline.json 顶层写 lang 字段,--lang 优先);只翻译界面文案,数据内容(爽点类型、梗概、质量门文案)原样输出。
  • 体检模式:用户贴一份已有大纲只想要诊断时,转成 outline.json(缺的字段问用户或标注缺失),运行 checkup 在终端显示 ✓/✗,再渲染 HTML 报告作为诊断书。未过的门不阻止渲染。
  • 联动更新:用户改了上游就跑一次 validate,报错会点名下游哪里断了,例如合并人物后哪些集还引用被删的 ID、砍场景后哪些集空转、爽点挪动后哪里出现真空区。

【使用方式】 脚本位于 {baseDir}/scripts/novel-outline.mjs,零依赖,node 直接跑。

Step 0 收参数:一次问完,两件必问(总集数 × 单集时长、题材),两件给默认值待确认(改编幅度默认抽核,可选忠实/抽核/借壳;已有偏好默认无)。平台阈值不同可用 params.thresholds 覆盖(默认:主角组 ≤ 5、重要配角 ≤ 10、功能性角色 ≤ 10、爽点间隔 ≤ 3 集)。主场景上限随集数自动算:4 + ⌈集数/10⌉,夹在 5–15(60 集 → 10);显式给 maxPrimaryScenes 才覆盖。短篇(20–30 集)建议收紧角色档阈值,默认值按 60 集以上给。

Step 1 定位输入:材料优先级为——用户点名的精读章节、章节目录 + 简介、全文分卷摘要。禁止凭书名脑补内容,一切判断基于给到的文本;adaptation.keep 的关键取舍要附 evidence(原文逐字片段)。直接粘正文的先落成 .txt。输出目录用户指定就用,没指定用原书同级目录。

Step 2 分卷摘要(长文本才需要):短篇单卷装得下、或当前会话已通读过原文,直接跳到 Step 3。长篇且没读过原文时运行: node {baseDir}/scripts/novel-outline.mjs chunk <book.txt> <workdir> 打印 {"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。

Step 4 细版骨架:吸收用户意见改骨架,再过一次 validate --stage beats。用户没意见就直接进 Step 5。

Step 5 分集梗概(分批):每批 ≤ 10 集,能并发就并发。每个子代理拿到拍板后的骨架四块、自己负责的集数区间、区间内的爽点,读 {baseDir}/references/episode-pass.md 照着写,产出写到 <workdir>/eps-NN.json。合并时按 ep 排序拼进 outline.json 的 episodes。

Step 6 校验(不能跳): node {baseDir}/scripts/novel-outline.mjs validate <输出目录>/<书名>-outline.json 有违规逐条修,改完重跑,直到通过。

Step 7 输出与汇报: cd <输出目录> node {baseDir}/scripts/novel-outline.mjs render <书名>-outline.json --md > <书名>-outline.md node {baseDir}/scripts/novel-outline.mjs render <书名>-outline.json --html > outline-report.html 汇报一句话说清:几集、几个角色几个场景、爽点分布、报告路径;被截断或有没过的门要明说。 最终落地文件:<输出目录>/<书名>-outline.json、<书名>-outline.md、outline-report.html(双击就能开)。

体检模式命令: node {baseDir}/scripts/novel-outline.mjs checkup <outline.json> # 终端 ✓/✗ node {baseDir}/scripts/novel-outline.mjs render <outline.json> --html > outline-report.html

自测: node {baseDir}/scripts/selftest.mjs 249 项断言,不调模型、不花额度。14 道质量门每一道都有击穿用例。改完脚本先跑这个。

【适用场景】 把小说改编为短剧大纲、需要结构化人物表与爽点分布、需要分集梗概与资产清单、需要对已有大纲做质量诊断、需要在上游改动后检查下游联动断点。

【限制】

  • 单次上限 60 卷(每卷 15 章约 900 章),超了明确报 truncated,不静默截断。
  • 阈值是参数不是圣旨:平台不同就用 params.thresholds 覆盖,别改代码。
  • 不写剧本台词、不做分镜、不出图像/TTS 提示词。
  • 报告界面内置中英,界面文案与质量门标签翻译,数据内容(爽点类型、梗概、人名)与门的失败详情保持原文。
  • 五件套的第五件(资产清单)永远是算出来的,模型手写必漏。

【自带样例】 {baseDir}/examples/渡口-outline.json:把短故事《渡口》(novel-characters 的自带样例)改编成 6 集 × 2 分钟的微型大纲,四角色三场景四爽点,全部质量门通过。当质量基准,也是自测夹具。