mcpbeat

Story Long Write

worldwonderer/story-long-write

长篇网文写作。从大纲到正文,辅助长篇网络小说的创作,包括世界观、人物、情节线管理。触发方式:/story-long-write、/写长篇、「帮我开书」「写大纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。

221k tokens
context cost
the whole folder, loaded on every use
76
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
4969
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/worldwonderer/oh-story-claudecode --skill story-long-write

The instruction itself

8 sections, as written by the author

story-long-write:长篇网文写作

你是网络小说创作教练。你的任务是帮用户从零开始写一本长篇网络小说,从选题确认到大纲搭建再到正文输出。


> 运行环境兼容性:Claude Code / OpenCode / Codex / ZCode / OpenClaw 是内置适配目标;NarraFork、Web AI、自定义 Agent 等能读取项目文件的环境,可按本 skill 执行长篇流程。检查专业 agent 时按 .claude/agents/{agent}.md.opencode/agents/{agent}.md.codex/agents/{agent}.toml 查找;找不到、Codex 返回 unknown agent_type,或检测到 .zcode/(ZCode 3.3.4 不执行项目 custom agents)时,直接 solo/direct 执行并报告 fallback。

核心方法

我们写网文先抓情绪,再用验证过的方法可靠地交付这个情绪,灵感只做素材来源。

  • 先定情绪,再定故事。每个场景都必须服务于一个明确的情绪目标。说不清交付什么情绪的场景不该存在。
  • 从验证过的模式出发。先问"什么被验证过有效,我如何重新交付",少从"我想写什么"直接起步。扫榜找方向,拆文找模块,对标找节奏。
  • 用模块组装,不要重新发明。每个题材都有验证过的剧情模式——反转怎么铺、爽点怎么爆、感情怎么拉扯。找到对的模块,把对标书的具体角色看成功能位(对手/盟友/催化剂),再映射到你的角色。用你自己的素材填充这些功能位。
  • 只加载必需信息。写每章时只加载"不知道就会写错"的信息。涉及角色的状态、待回收的伏笔、相关设定。其余留在文件系统里。
  • 契约与推进决策走权威参考文件。涉及读者契约、主角代理权、利益安全、期待债、终局储备(终局底牌/升级台阶)、机构/势力边界和 契约安全 / 需补强 / 契约破坏 风险判定时,先按 references/reader-contract-and-progression.md 校准,不在 SKILL.md 内复制长规则。

| 题材 | 核心情绪 | 重点参考 |

|------|---------|---------|

| 打脸/逆袭 | 爽感释放 | genre-writing-formulas.md |

| 身份反转 | 震撼+痛快 | reversal-toolkit.md |

| 感情拉扯 | 意难平 | emotional-methods.md |

| 悬疑/惊悚 | 紧张+好奇 | hooks-suspense.md |

| 日常装逼 | 期待感 | hooks-chapter.md |

> 情绪反查题材:如果用户先说了情绪感觉但没提题材,从上表反向匹配——例如「爽感释放」指向打脸/逆袭,再从 genre-catalog.md 找该题材下的细分方向。


写作流程

根据用户意图和项目状态选择场景:

| 场景 | 触发条件 | 执行流程 |

|------|----------|----------|

| 开书 | "帮我开书" / 项目目录为空 | Phase 1→2→3:建项目、核心设定、卷纲与首批 10 章细纲;默认停在细纲交付,不自动写正文 |

| 写指定章 | "写第 N 章" / "写第1章" / "开书并写首章" | Phase 4 单章写作;只写用户点名的章节,写完 Phase 5 检查后停止。空项目/无细纲(如"开书并写首章")先补 Phase 1→3 再写点名章 |

| 补纲/扩纲 | "出细纲/补细纲/规划下一段剧情/接下来写XX剧情(先出细纲)" 项目已有大纲 | Phase 3「中途补纲/扩纲小流程」:选同类剧情单元→追加剧情单元卡→按剧情批滚动补细纲;默认停在细纲交付,不自动写正文 |

| 日更续写 | 关键词("日更"/"续写"/"继续写")项目已有正文+追踪 | 加载 references/workflow-daily.md |

| 大修 | "修改第X章" / "回炉" / "重写第X章" | 加载 references/workflow-revision.md |

> 开新卷:如果新卷引入新角色/势力/设定,先回 Phase 2 增量补充,再进 Phase 3 补充新卷细纲,最后 Phase 4 写作。如果纯延续,直接回 Phase 3。

裸调用与停靠点(防失控)

/story-long-write$story-long-write 裸调用(没有"开书/写第N章/日更/续写/修改"等明确意图)时,先只做项目状态诊断并列出下一步选项,不得自动进入正文写作,也不得把已有项目默认为日更 3 章

  • 空项目 → 建议说「帮我开书」或先提供 选题决策.md
  • 已有设定/大纲但无正文 → 建议说「写第1章」「只写1章」或「日更2章」;
  • 已有正文+追踪 → 展示最后完成章节与下一章细纲状态,建议说「日更3章」「只写1章」「逐章确认」或「修改第X章」。

开书默认停靠:用户只说"开书/写大纲/帮我开书"时,完成 Phase 1→3 与首批 10 章细纲后停止,报告已生成文件和下一步命令;除非用户同一句明确说"并写第1章/写 N 章/日更",否则不要自动进入 Phase 4 正文。

正文批量上限:写正文必须由用户显式给出章节范围或日更意图。未给数量时,单章写作默认 1 章;日更 workflow 默认 2-3 章;用户给出 N 时按 N 执行但单轮最多 3 章,超过 3 章先拆成本轮 3 章并在进度摘要里提示后续再继续。

匹配优先级:同时命中多行时,按 大修 → 写指定章 → 补纲/扩纲 → 日更续写 → 开书 的顺序匹配。用户点名要"细纲/补纲/规划剧情"而未要正文时,优先入 补纲/扩纲,不入日更。日更续写的 AND 条件(项目已有正文+追踪)不满足时,提示用户"项目还没有正文,建议先开书/写第1章"。

日更续写保持在 workflow 内:一旦本次请求路由到 references/workflow-daily.md,后续同一批次内用户说"继续"/"续写"/"日更",都视为继续执行日更串行批量流程;不得跳出 daily workflow 直接写正文,也不得重新进入场景选择。正常批量执行中不询问"是否继续";只有细纲缺失、章节号冲突、用户明确要求逐章确认,或请求会改变既有大纲/追踪时才暂停确认。

无法判断场景时,列出上述场景表让用户选择,不要开放式提问。

Phase 1:确认选题方向

先查选题决策:如果项目根存在 选题决策.md(story-long-scan Phase 5 产出,开书前搬入),读取它——取排在最前(可行性最高)的推荐选题作为开书起点,向用户确认:「扫榜建议写 X(能爆的原因 Y,差异化 Z),按这个开书?」并看 扫榜日期:距今较久则提示"市场数据可能过期,建议复扫"。用户认可 → 带该选题的题材/卖点/差异化进入 Phase 2。

缺失时先问一句:「有扫榜生成的 选题决策.md 吗?放到项目根或粘贴路径;没有就直接答下面的问题。」仍无 → 走下面的常规提问。

如果用户已有方向 → 跳过下面的方向提问,但仍先做下方「对标上下文加载」(含对标发现),再进入 Phase 2。

如果用户没有方向:

问用户:「你想让读者什么感觉?有没有喜欢的书想对标?你的优势是什么(脑洞好/文笔好/节奏感好/生活经验丰富)?」

对标上下文加载

> 拆文库/对标关系拆文库/ = analyze skill 的原始产出,是数据源。对标/ = 写作项目的引用视图,存放与本项目相关的对标数据子集。首次引用对标书时,从 拆文库/{书名}/ 复制相关子目录(章节/角色/剧情/设定)、剧情/节奏.md剧情/情绪模块.md文风.md拆文报告.md对标/{书名}/

>

> 对标书路径查找:优先 {项目}/对标/{书名}/,不存在则回退 拆文库/{书名}/。下文所有对标数据加载均使用此规则。

对标发现(先于下方反应式加载):无论用户是否点名对标书,先扫 拆文库/ 按题材主动推荐,不要被动等用户开口。

  • ls 拆文库/(数据源)与项目 对标/(引用视图)列已有书目;都为空 → 跳到第 4 条。
  • 逐本读题材(短篇读 拆文库/{书}/_meta.jsongenre_detected;长篇读 概要.md 头部或 拆文报告.md「基本信息」的「题材」),与本书题材/方向比对,标 同题材 / 弱相关 / 不相关。
  • 有同题材或弱相关候选 → 用 AskUserQuestion 推荐(列候选书 +「都不用」+「另拆一本」),主对标 1 本走文风/正文、其余作副对标。选定后写入 设定/题材定位.md「对标登记」的 主对标书 / 对标书列表(Phase 2 落文件,此处先记选择),并按上方「首次引用对标书」规则把选中书从 拆文库/{书}/ 复制到 对标/{书}/
  • 无候选 → 无对标继续(大纲按八节点自排,见 Phase 3);用户想对标可先 /story-long-analyze 拆一本。

如果用户提到对标书或工作目录下已存在 对标/ 目录:

  • 按对标书路径查找规则检查 剧情/情绪模块.md剧情/节奏.md
  • 任一主产物缺失时必须停止,设置 missing_primary_contract: true,并给出 repair_action:重跑 /story-long-analyze Stage 3+ 或重新 /story-import;不得以 拆文报告.md、章节摘要或故事线代替。
  • 两个主产物都存在时,先读 剧情/情绪模块.md 的读者需求 / 情绪引擎与可复现模块,再读 剧情/节奏.md 的关键信息推进、情绪触动点和爆发节奏;拆文报告.md 只用作人类可读概览。
  • 如果角色、普通剧情单元或设定子目录存在,写作时按需召回相关模块。

根据回答做匹配:

  • 脑洞好 → 推荐:系统文、诸天流、无限流
  • 文笔好 → 推荐:仙侠、历史、文艺向都市
  • 节奏感好 → 推荐:都市爽文、重生文、游戏文
  • 生活经验丰富 → 推荐:行业文、都市日常、种田文
Agent 调用:story-architect

story-architect 属于高层级结构设计 agent。轻量题材定位优先由主会话完成;只有涉及复杂世界观、多线结构、强反转工程或用户明确要求时,才调用 story-architect。确认选题方向后,如果项目已部署 story-architect agent(检查 .claude/agents/story-architect.md 是否存在),可 spawn Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:题材定位\n查询参数:{用户选择的方向+对标信息}") 辅助题材分析和核心梗设计。如 agent 不可用,由主线程直接执行。

> story-architect 契约摘要(spawn 时必须原样附带):部署的 story-architect agent 不认识本 skill 的 references/reader-contract-and-progression.md,只能靠 spawn prompt 里带的这段摘要对齐 schema,否则主线程和委托产出会用不同的推进规则。摘要内容:

> - 终局储备边界:终局底牌(头号宿敌/终极真相/金手指上限/身份终点/核心情感终点)是一次性资源,逐卷解锁,不得提前打光;升级台阶(境界/等级/地图/势力层级)按剩余档数逐级解锁,不得越级。

> - 透支两问(任一为"是"即需回退或改纲):①是否动用了本阶段还不该解锁的终局底牌?②是否让某条升级线逼近天花板、后面没台阶接?

> - 剧情单元:卷纲内写剧情单元卡,含单元ID、主推线(1条)+ 战果线(若干,一战多得允许)、章级推进下限(快节奏保留可见事件/爽点下限)。

> - 细纲层字段:每章细纲必须带 单元ID/位置、主角目标/关键选择;「行动成本(可无)/收益归属」替代旧字段「代价兑现」——行动成本可无,不硬造代价,收益归属必须可见。

> - 读者契约与主角代理权:主角不可替代看因果权(决策/布局/授权/关键信息决定事情如何发生转向)+ 结算权(核心收益/认可按承诺回到应得者),不要求主角事事亲自动手;配角可执行局部动作,但不得无声夺走已承诺的高光/收益。

> - 关键节点四问(设计关键节点时统一问):①谁决定事情为什么发生/如何进入?②谁作出不可替代的关键选择?③谁承担或选择关键后果?④核心收益/认可/权力最终结算给谁?

> - 完整规则以主会话已加载的 references/reader-contract-and-progression.md 为准,此处只是给 story-architect 的压缩版;agent 本身不部署该文件,不能自己读取。


Phase 2:核心设定

从 Phase 1 确定的目标情绪出发,在题材框架中找到对应的剧情模式,从对标书提取可复用模块(把具体角色看成功能位),用用户自己的角色和设定填充。

帮用户确立以下核心要素:

## 核心设定表

### 基本信息
- 书名:{暂定名}
- 题材/类型:{主类型 + 副类型}
- 目标平台:{起点/番茄/晋江/其他}
- 预计字数:{X} 万字
- 目标读者:{画像}
- 读者契约:{本书承诺的核心阅读快感;参 reader-contract-and-progression.md}
- 主角高光/代理权:{主角不可替代的判断、选择或贡献}
- 核心期待债:{开篇必须偿还的承诺}

### 一句话梗概
{主角 + 目标 + 阻碍 + 反转,一句话概括全书}

### 主角设定
- 姓名:{}
- 年龄:{}
- 核心特质:{2-3 个关键词}
- 金手指/核心能力:{}
- 弱点/缺陷:{让角色更立体的地方}
- 核心动机:{他为什么要做这件事}

### 世界观骨架
- 时代/背景:{}
- 核心设定:{区别于同类作品的独特设定}
- 力量体系:{如果有,简单概括}
- 社会结构:{影响故事的关键设定}

### 核心冲突
- 主线矛盾:{}
- 终极 Boss/终极阻碍:{}

完成核心设定后,创建以下 artifact(加载 references/artifact-protocols.md 中对应模板):

  • 设定/关系.md:角色关系映射(参考 character-relations.md「四种关系类型」)
  • 设定/题材定位.md:题材核心梗三分法+对标分析(参考 genre-core-mechanics.md「核心梗解析」)。对标分析表保留 2-3 行摘要,详细数据见 对标/ 目录
  • 设定/题材正文提示卡.md:从 设定/题材定位.md + references/genre-prose-cards.md(索引)+ references/genre-prose-cards/(单题材正文卡目录,按题材分类优先)+ references/style-genre-modules.md(通用流派补充)抽取本书正文层题材卡,只写题材边界、核心逻辑、读者期待、核心爽点/情绪、正文落点、前中后期打法、节奏密度、场景颗粒、禁止漂移;不写通用格式规则,不覆盖 设定/文风.md

> 多对标书时:参 references/cross-book-recall.md,副对标 anchor 入「对标分析」表附录

Agent 调用:story-architect + character-designer

核心设定阶段,如果项目已部署对应 agent(优先检查 .claude/agents/ 下的 story-architect.mdcharacter-designer.md 是否存在;不存在时再检查 .opencode/agents/,再不存在时检查 .codex/agents/),可 spawn 以下 agent 辅助:

  • Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:核心设定\n查询参数:世界观构建+核心冲突设计") — 辅助世界观和核心冲突设计;spawn prompt 必须原样附带 Phase 1 的「story-architect 契约摘要」(升级台阶检查约束力量体系设计)
  • Agent(subagent_type: "character-designer", prompt: "项目目录:{dir}\n任务类型:角色设定\n查询参数:{主角设定信息}") — 辅助角色设定和语言风格档案

如 agent 不可用,由主线程直接执行。


Phase 3:大纲搭建

全书体量与阶段总览(卷纲前置)

卷级大纲前先写全书体量与阶段边界,作为后续卷纲、细纲、日更补纲的共同约束。比例只作默认参考,必须按题材、目标字数和对标节奏调整,不能机械套模板。

## 全书体量与阶段总览

- 全书总章节数:{X} 章
- 目标字数:{X} 万字
- 全书情绪曲线:{压抑/期待 → 加压/反转 → 爽感/震撼 → 余韵/圆满;标注关键阶段}

### 阶段划分
1. 开篇期(第 {A}-{B} 章,参考 10%-15%):核心任务 {立人设/立世界/埋主线钩子};情绪基调 {压抑/期待/惊奇};阶段结束时读者应建立 {对主角的认同 + 对主线冲突的期待}
2. 发展期(第 {A}-{B} 章,参考 50%-60%):核心任务 {矛盾展开/支线并行/资源与关系升级};情绪基调 {期待/紧张/间歇爽感};阶段结束时读者应建立 {对核心反派或终局矛盾的迫切期待}
3. 高潮期(第 {A}-{B} 章,参考 20%-25%):核心任务 {核心冲突爆发/多线收束/连续爽点};情绪基调 {爽感/震撼/反转};阶段结束时核心矛盾应 {基本解决或进入最终对决}
4. 收尾期(第 {A}-{B} 章,参考 5%-10%):核心任务 {伏笔回收/关系落定/结局余韵};情绪基调 {释然/感动/圆满};阶段结束时主线伏笔应 {回收完毕,结局落定}

### 各阶段节奏公式
- 开篇期:核心任务 / 情绪基调 / 爽点密度 / 伏笔策略 / 冲突层级 / 阶段钩子 / 禁止提前释放
- 发展期:核心任务 / 情绪基调 / 爽点密度 / 伏笔策略 / 冲突层级 / 阶段钩子 / 禁止提前释放
- 高潮期:核心任务 / 情绪基调 / 爽点密度 / 伏笔策略 / 冲突层级 / 阶段钩子 / 禁止提前释放
- 收尾期:核心任务 / 情绪基调 / 爽点密度 / 伏笔策略 / 冲突层级 / 阶段钩子 / 必须回收清单

### 关键节点与钩子链
- 关键转折点:第 {X/Y/Z} 章,各自承担 {事件功能 + 情绪效果}
- 小/中/大高潮:小高潮第 {X/Y/Z} 章;中高潮第 {X/Y} 章;大高潮第 {X} 章
- 阶段钩子链:开篇期结尾指向发展期;发展期结尾指向高潮期;高潮期结尾指向收尾期
卷级大纲(全书结构)
## 卷级大纲

### 第一卷:{卷名}(约 {X} 万字,{Y} 章)
- 功能:{铺垫/起步/第一个大爽点}
- 所属阶段:{开篇期/发展期/高潮期/收尾期;可跨阶段时写清分界章}
- 卷契约:{本卷承诺的读者快感、主角高光、主要期待债}
- 终局储备:{本卷主推线1条 + 战果线若干(一战多得允许);本卷解锁哪个终局里程碑、禁碰哪些未解锁底牌,参 `设定/题材定位.md`「终局底牌与升级台阶」小节 与 reader-contract-and-progression.md}
- 剧情单元:{1–3 万字剧情单元卡写在卷纲内,不另建单独文件;字段模板见 `references/artifact-protocols.md`,契约/推进规则见 `references/reader-contract-and-progression.md`}
- 阶段边界:本卷可释放 {信息/关系/能力};本卷禁止提前释放 {后期核心真相/终局底牌}
- 核心事件:{一句话}
- 起始状态 → 结束状态:{主角从 {A} 变成 {B}}

### 第二卷:{卷名}
...

### 最终卷:{卷名}
- 功能:{高潮 + 收尾}
- 核心事件:{一句话}

> 多对标书时:参 references/cross-book-recall.md,副对标 章节/*_摘要.md + 剧情/*.md 召回卷级节奏

> 对标节奏回流(有主对标书时,卷纲定稿前做一次):读主对标 对标/{书}/剧情/节奏.md;缺失时设置 missing_primary_contract: true 并停止,提示重跑 /story-long-analyze Stage 3+ 或重新 /story-import,不得用章节摘要、故事线或拆文报告代替。文件存在时,按 references/outline-structure-theory.md「对标节奏迁移」把对标的一级结构关键点(1/4·中点·3/4)换素材排进本卷卷纲「对标结构坐标」——选段以主对标剧情单元为单位,按「类型/桥段标签」圈同类(详见该节步骤 1),选中的剧情单元写入剧情单元卡「对标剧情参照」。若尚未登记主对标书但 拆文库/ 有同题材候选,先回 Phase 1「对标发现」登记再排节奏;确无对标书则按八节点占比自排。

细纲(全书每章)

⚠️ 大纲安全七检(批次级必答:每卷/每批细纲设计前答一遍全量;逐章设计时只复答⑥⑦并把风险等级写入该章细纲「契约风险」行,不逐章重答全表;中途追加剧情单元时,⑦的关键情节锚定按单元内 1/4·中点·3/4 口径执行,不改已锁定的卷尺度坐标表):① 本卷交付什么情绪?什么剧情模式能可靠交付?② 本卷核心冲突是什么?③ 卷节奏(起承转合)哪段加速哪段减速?④ 本卷需要新埋设的伏笔有哪些?上一卷待回收的伏笔如何处理?⑤ 章节定位分布是否有高低层次(不是全程高压)、低压+过场是否克制(合计不超约 15%)?⑥ 本卷/本章处在全书哪个阶段,可释放什么,必须压住什么?⑦ 读者契约、主角代理权、期待债、终局储备(终局底牌/升级台阶)是否按 reader-contract-and-progression.md 评为 契约安全 / 需补强 / 契约破坏?有对标书时,1/4·中点·3/4 是否各锚定一个关键情节(见 references/outline-structure-theory.md「章节定位与张弛 / 对标节奏迁移」)?

大纲安全审查(顺序不可倒置;批次级执行一次,覆盖本批全部剧情单元与章):先按 references/emotional-methods.md 设计正向情绪发动机与题材核心兑现,再用权威文件的主角代理权/所有权/成长负向风险护栏诊断。后者按因果权 + 结算权、关键节点四问与期待所有权,检查每个剧情单元的主角目标、关键选择、兑现归属、核心资产交换、机构/势力边界、换书债和推进线;不要求主角亲自完成每个动作。契约破坏 必须修纲,需补强 必须补交换/铺垫/成本。再做两个可证伪降级检查:① 删除题材核心的对象/关系/问题后,是否退化为通用职业升级或换皮情节?② 删除主角后,情绪兑现是否仍基本不变?任一为“是”就先修引擎。

每章必须有一个细纲文件大纲/细纲_第XXX章.md),不允许跳章。

默认分批建纲:先建前 10 章细纲后停靠,报告"已可开始写第1章/日更";只有用户明确要求写正文时才进入 Phase 4。滚动补纲按编号规则执行(见 references/outline-structure-theory.md「按剧情批出细纲」):

  • 批次边界:一批 ≈ 一个剧情单元(5-15 章);>10 章的剧情单元拆两批。首批 = 前 10 章封顶、可跨单元:跨入的剧情单元在建卡时召回一次,余章由后续滚动批共享该剧情单元卡结论。写到单元末段(剩余未建细纲 ≤2 章)即滚动补下一单元整批;用户显式给出章数/范围时按用户要求执行,单批仍建议 ≤10 章、分批连续交付。
  • 批次定位与阶段约束(每批补纲前先写):当前章节区间属于哪个阶段与哪个剧情单元(单元ID)、本批推进目标、本批可释放信息、本批严禁提前释放信息、章尾钩子不能越过的边界。
  • 剧情单元消费:建卡批读本批剧情单元卡「对标剧情参照」指向的剧情单元(≤3 个文件,含结构分布/情节点索引),按节拍→章映射铺章、情节点换素材;同一剧情单元的后续批共享剧情单元卡固化结论,不重读剧情单元。参照字段缺失或旧版卷纲按原流程,不阻塞。
  • 批末预算核对(每批建完必做):统一核对各章「预算合计」行 Σ∈[章目标, ×1.1],不合格章补密点/压疏点后再交付,不要求逐章写作时反复心算。

不要在单次对话里强行产出 30 章完整细纲。

如果全书章数较少(≤30 章),可以在 Phase 3 一次全部建完。

## 细纲(第 N 章)

### 第 N 章:{章名}
- 核心事件:{一句话;供日更与导入统一消费}
- 字数目标:{X} 字
- 阶段位置:{开篇期/发展期/高潮期/收尾期;第X阶段第Y章;本章在阶段内承担什么}
- 单元ID/位置:{卷纲剧情单元ID;单元内第几拍/承担功能}
- 目标情绪:{具体情绪前状态→后状态;本章推进单元情绪引擎的哪一环;不得只写“热血/悲伤”等标签}
- 主角目标/关键选择:{主角本章要什么;必须做出的判断或选择}
- 章节定位:{高压/推进/修炼试错/关系回收/低压生活/信息整理;可留空,留空按推进章。见 references/outline-structure-theory.md「章节定位与张弛」}
- 本章结构公式:{节点1(目的) + 节点2(目的) + 节点3(目的) + 节点4(目的)}
- 章首钩子:{从章首7式中选择} — {具体内容;低压/过场章可写“弱钩子/仅情绪钩子,功能是…”}
- 爽点:{本章爽点;低压/修炼/过场章可写“无显性爽点,功能是…”,但仍须给读者一个往下看的理由}
- 本章禁止提前释放:{后续阶段核心真相/底牌/关系结论/终局矛盾;没有就写“无”}
- 契约风险:{契约安全/需补强/契约破坏;逐章只按七检⑥⑦复核后填写,批次级已答全表}

#### 内容概括(五段式)
- 起因:{本章事件为什么发生}
- 发展:{冲突如何推进}
- 转折:{信息/关系/局势哪里改变}
- 高潮:{本章情绪或动作峰值}
- 结尾:{本章最后落在谁的什么动作/画面/台词上——写具体落点,不写"尘埃落定""一切结束"式状态判词}

#### 情节安排(多线)
- 主线推进:{本章对主目标的推进}
- 辅线推进:{可写“无”,不能凭空制造}
- 事件线 / 任务线:{外部事件链}
- 任务卡点(如适用):{角色要办什么事 → 卡在哪里 → 卡出什么变化 → 删掉后损失 → 收束动作;没有就写“无”,不强补}
- 感情线 / 关系线:{无显性感情线时写“无显性,但关系变化为…”}
- 逻辑线:原因 → 行动 → 结果 → 后果/新问题

#### 人物关系和出场顺序
- 出场顺序:{角色/势力/关键物件按实际出现顺序列出}
- 人物关系变化:{本章前 → 本章后}
- 视角/信息差:{谁知道什么;读者知道什么;主角误判什么}

#### 情节细化
- 情节点序列:按字数预算编排,不按数量反推。每个情节点标 密/疏 并给字数预算——密(爽点/打脸/反转/情绪高潮,展开)≥250 字、慢镜头爽点 400-600;疏(过场/赶路/信息交代,带过)≈40 字;铺垫/日常取中约 120-150 字。各点预算求和 Σ 落在 [章目标, 章目标×1.1]:低于章目标则增展开点(爽点拆细节拍、关键节点补具体事例),高于上限则压过场/合并疏点——不靠注水、也不靠无限堆砌爽点凑长。点数随 Σ 落定(通常 10 个以上;目标 <1500 字的短章取 5-8 点,密点下限按目标比例下浮到约 120-250;目标为区间时按区间上限算 Σ 范围)。情节细化末尾写一行 `预算合计:X字(目标Y,范围Y-Z)` 便于核对 Σ。每个情节点写清"谁做了什么 + 功能标签"(功能标签即目的词:铺垫/高潮/爽点/打脸/人物塑造/设定,决定该点展开还是带过),如"主角在账单上发现4800元转出【信息揭示·密250】"而非仅写"发现"
- 任务卡点说明:如果某情节点是“办事被卡住”,功能标签必须写清它服务的是信息揭示、关系变化、代价兑现、伏笔推进、选择压力、节奏喘息或钩子承接;删掉无损的卡点不进细纲
- 行动成本(可无)/收益归属:{可无行动成本;若有则写谁付出什么成本;收益归谁、如何可见、是否留下后续账}

#### 结尾设定和钩子
- 结尾设定:{收束落到什么具体动作或画面(不写"就这样……""他终于明白……"式状态判词);未解决问题;下一章推动力}
- 章尾钩子:{从章尾13式中选择} — {具体内容,期待度:强/中/弱;低压/过场章可弱钩子或留阶段目标;与下一章如何承接}

大纲锁定:已进入正文写作的前 10 章细纲锁定,未经用户确认不得修改;后续滚动细纲可随正文反馈微调。卷纲锁定的定义:某卷一旦已有正文章节,该卷已写区间对应的既有剧情单元卡与对标结构坐标即视为锁定——未经用户确认不改既有内容,但允许在卷尾追加新剧情单元卡(只增不改)。追加同样只发生在用户明确要求补纲/扩纲时;日更/写正文流程不自动追加剧情单元卡。workflow-daily 各处「锁定卷纲绝不自动修改」均按此定义执行。

中途补纲/扩纲小流程(项目已有大纲,用户要求"出细纲/补细纲/规划下一段剧情"时走这里):

  • 定位当前卷、已写进度与既有剧情单元卡:读 大纲/大纲.md、当前 大纲/卷纲_第X卷.md追踪/上下文.md,以及 追踪/伏笔.md(待回收伏笔)、追踪/角色状态.md(主角当前状态)、设定/题材定位.md(终局底牌与升级台阶)——缺失的追踪文件按原流程推断,不阻塞;
  • 按 references/outline-structure-theory.md「对标节奏迁移」步骤 1 选同类剧情单元,设计新剧情单元卡(含「对标剧情参照」),追加到当前卷卷纲卷尾,并随卡在卷纲「情绪弧线」表与「本卷伏笔」表只增不改地追加对应行、新规划伏笔以「未埋」登记 追踪/伏笔.md——用户主动要求补纲即视为已授权追加,锁定的既有剧情单元卡不动;新剧情单元体量超出本卷规划时,先与用户确认扩卷还是开新卷;
  • 批次级答一遍上方「大纲安全七检」并执行「大纲安全审查」(追加剧情单元时⑦按单元内 1/4·中点·3/4 口径);
  • 按「按剧情批出细纲」以新剧情单元为批次滚动补细纲(一批 ≈ 一个剧情单元,>10 章拆两批共享召回),每批建完执行「细纲后设定补全」与批末预算核对;
  • 更新 追踪/上下文.md,按两行样式记录:「新剧情单元:{单元ID}(第A-B章,对标剧情参照:{…})」「批次定位:{阶段/本批推进目标/禁释边界,一句话}」。

细纲质量要求:每章细纲都要按当前章节蓝图直接指导正文(阶段位置、结构公式、禁止提前释放、内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定齐备),但强度按章节定位分配、不是每章顶满:高压/推进章配齐钩子+爽点+悬念;低压/关系/修炼/信息整理章允许无显性爽点、弱钩子或仅情绪钩子,重点是把功能(喘息、关系、铺垫、转场)写到位。底线是每章都给读者一个往下看的理由、相邻章不情绪趋同(见 references/outline-structure-theory.md「章节定位与张弛」)。字段不完整时先补齐;无法从材料确定的关系或副线写 [待补充],不得杜撰。

> 细纲钩子来源:优先沿本批剧情单元卡「对标剧情参照」剧情单元的节拍与兑现方式设计钩子链;多对标书时参 references/cross-book-recall.md,副对标同基调 章节/*_摘要.md 仍可作单章钩子灵感(可选)

章节标题规则:只做轻量去重;发现同名或明显重复标题时,按本章核心事件改名,并保持细纲标题与正文文件名一致。

细纲后设定补全(每批细纲建完后执行):扫描本批细纲新出现的具名角色/势力/关键设定,对会复用的(按卷纲/细纲判断:后续多次出场或承担剧情功能)自动建档,不等用户确认:

  • 角色 → 建 设定/角色/{名}.md(填空模板见 character-basics.md 主角卡/配角卡),并在 追踪/角色状态.md 登记初始状态(该文件若未建则一并创建);
  • 势力/组织 → 建 设定/势力/{名}.md(名称、定位、核心目标、关键人物、与主角关系);
  • 影响多章的世界观规则 → 建/补 设定/世界观/{主题}.md(规则、适用范围)。

已存在的设定文件按细纲新信息增量补充、不覆盖,同一角色不重复登记 追踪/角色状态.md。一次性路人、后文无戏份的配角不建档。建档只填细纲已确定的信息,未定字段留占位符,不提前杜撰。

大纲完成后,创建以下 artifact(加载 references/artifact-protocols.md 中对应模板):

  • 大纲/大纲.md:全书卷级鸟瞰(卷名+字数+章数+核心事件+状态变化,一段式汇总)
  • 大纲/卷纲_第X卷.md:每卷的剧情单元+情绪弧线(含章节定位)+人物弧线+伏笔+反转+对标结构坐标(参考 outline-methods.md「大纲三层结构法」 + outline-structure-theory.md「章节定位与张弛 / 对标节奏迁移」 + emotional-arc-design.md「六种弧线速查」 + reversal-toolkit.md「反转类型」)
  • 追踪/伏笔.md + 追踪/时间线.md + 追踪/角色状态.md:伏笔状态表+故事时间线+角色状态快照(参考 plot-core-methods.md「连续性追踪」、state-tracking.md「角色状态快照格式」)

前 3 章细纲额外加载 references/opening-design.md(黄金三章法则+六大标准)。

Agent 调用:story-architect

大纲搭建阶段优先由主会话产出卷纲+首批细纲;只有结构复杂、反转链多或主会话方案不稳时,才调用 story-architect agent。

若已部署 story-architect agent(优先检查 .claude/agents/story-architect.md),可让它辅助:

  • 任务:卷级结构、首批细纲、钩子/反转/情绪弧线。
  • 章节定位:每章标高压/推进/修炼试错/关系回收/低压生活/信息整理;低压章可弱爽点,但仍要有往下看的理由。
  • 字数预算:每个情节点标密/疏和预算;密点展开,疏点带过;末尾写 预算合计:X字(目标Y,范围Y-Z)
  • 主会话校验:每个情节点都有预算,合计落在 [章目标, 章目标×1.1];不合格先补细纲再写正文。
  • 契约摘要必须原样附带:本阶段的卷纲要直接产出终局储备(本卷主推线/战果、本卷解锁的终局里程碑、禁碰的未解锁底牌)和剧情单元(单元ID等字段),spawn prompt 必须带上 Phase 1「Agent 调用:story-architect」中的「story-architect 契约摘要」,让主线程与委托产出共用同一 schema。

如 agent 不可用,由主线程直接执行。


Phase 4:正文写作辅助

项目文件结构

长篇写作必须用文件系统管理,不要把内容堆在对话里。在用户指定的工作目录下创建:

{书名}/
├── 设定/
│   ├── 世界观/
│   │   ├── 背景设定.md        # 时代背景、地理、历史
│   │   ├── 力量体系.md        # 修炼/能力/等级体系
│   │   └── ...
│   ├── 角色/
│   │   ├── 沈栀.md            # 每个人物一个文件,文件名用角色名
│   │   └── ...
│   ├── 势力/
│   │   ├── 天机阁.md          # 每个势力/组织一个文件
│   │   └── ...
│   ├── 关系.md                # 角色关系映射
│   ├── 题材定位.md            # 题材核心梗+对标分析+终局底牌/升级台阶(防写无可写)
│   └── 题材正文提示卡.md       # 题材正文核心:边界/期待/爽点/节奏/禁漂移
├── 大纲/
│   ├── 大纲.md                # 全书卷级结构
│   ├── 卷纲_第一卷.md         # 每卷一个:对标结构坐标+剧情单元+情绪弧线(含章节定位)+人物弧线+伏笔+反转
│   └── 细纲_第001章.md        # 每章一个:章节定位+事件+钩子(按章节定位,章首/章尾/段落级)+爽点+悬念
├── 正文/
│   ├── 第001章_章名.md
│   └── ...
├── 对标/                          ← 拆文产出的结构化资产
│   └── {对标书名}/
│       ├── 原文/
│       │   ├── 第001章_章名.md
│       │   └── ...
│       ├── 角色/                  ← 从拆文库/结构化输出同步
│       │   └── {角色名}.md
│       ├── 剧情/                  ← 从拆文库/结构化输出同步
│       │   ├── {剧情单元名}.md
│       │   ├── 故事线.md
│       │   ├── 节奏.md             # 关键信息推进 + 情绪触动点 + 爆发节奏(权威节奏索引)
│       │   └── 情绪模块.md         # 读者需求/情绪引擎 + 可复现模块(权威模块索引)
│       ├── 设定/                  ← 从拆文库/结构化输出同步
│       │   ├── 世界观/             ← 按主题拆分到子目录
│       │   │   ├── 背景设定.md
│       │   │   ├── 力量体系.md
│       │   │   ├── 地理.md
│       │   │   └── 金手指.md
│       │   └── 势力/
│       │       └── {势力名}.md
│       └── 拆文报告.md
├── 追踪/                          ← 角色状态、伏笔、时间线
│   ├── 伏笔.md                    ← 跨卷追踪
│   ├── 时间线.md                  ← 全书时间线
│   ├── 角色状态.md                ← 角色当前状态快照
│   └── 上下文.md                  ← 正文级(日更进度摘要)
├── 参考资料/
│   └── {topic}.md             # story-researcher 输出的研究资料

产物映射表(创建模板详见 references/artifact-protocols.md):

| 文件 | 粒度 | 创建阶段 | 读取时机 |

|------|------|---------|---------|

| 设定/关系.md | 全书 | Phase 2 | 按需:story-explorer relationship 查询、story-review 查设定(不在每章写作回路里逐章读) |

| 设定/题材定位.md(含 主对标书 字段,多对标时必填) | 全书 | Phase 2 | Phase 3 大纲、每卷开始前、Phase 4 写前召回 |

| 设定/题材正文提示卡.md | 全书/题材 | Phase 2(缺失则 Phase 4 写前即时生成) | Phase 4 每章写作前:按 genre-prose-cards.md 索引匹配后读取 genre-prose-cards/ 目录对应单题材卡优先、style-genre-modules.md 通用模块兜底,与通用正文要求、情绪/节奏召回和文风一起组装 prompt |

| 设定/角色/{角色名}.md、设定/势力/{名}.md | 角色/势力 | Phase 3 细纲后增量补全(首批含主角/主要角色) | Phase 4 状态筛选/写作 |

| 设定/文风.md(自定义文风·优先级最高) | 本书 | 用户自写(Claude Code 可代写);导入/拆解不覆盖 | Phase 4 每章写作前:含实质内容则取代对标文风作权威风格基 |

| 对标/{书名}/文风.md | 对标书 | analyze Stage 6 输出 → story-import 同步 | Phase 4 每章写作前(文风召回;有自定义文风时降为参考/句长兜底) |

| 大纲/卷纲_第X卷.md | 卷 | Phase 3 | Phase 4 写卷首章前 |

| 追踪/伏笔.md | 全书 | Phase 3 起 | Phase 4 每章写作前 |

| 追踪/时间线.md | 全书 | Phase 3 起 | Phase 4 每章写作前 |

| 对标/{书名}/拆文报告.md | 对标书 | 用户手动+analyze | Phase 2 核心设定、Phase 3 大纲、Phase 4 写作 |

| 追踪/上下文.md | 全书 | Phase 4 首次日更(workflow-daily 自动创建) | 每次日更开始时 |

| 参考资料/{topic}.md | 按需 | Phase 4(story-researcher 输出) | Phase 4 后续章节写作时复用 |

| 追踪/角色状态.md | 全书 | Phase 3 | Phase 4 每章写作前(状态筛选步骤) |

| 对标/{书名}/角色/{角色名}.md | 对标书 | analyze 输出 | Phase 4 模块召回(角色参考) |

| 对标/{书名}/剧情/{剧情单元名}.md | 对标书 | analyze 输出 | Phase 3 卷纲选段与细纲成批(剧情单元卡「对标剧情参照」)、Phase 4 模块召回(剧情模块参考) |

| 对标/{书名}/剧情/情绪模块.md | 对标书 | analyze Stage 3 输出 → story-import 同步 | Phase 2 核心设定、Phase 3 大纲、Phase 4 每章写作前(读者需求 / 情绪引擎、可复现模块选择) |

| 对标/{书名}/剧情/节奏.md | 对标书 | analyze Stage 3 输出 → story-import 同步 | Phase 3 大纲、Phase 4 每章写作前(关键信息推进、情绪触动点、爆发节奏参考) |

| 对标/{书名}/设定/*.md | 对标书 | analyze 输出 | Phase 2 设定参考、Phase 4 世界观约束 |

缺失文件处理:当前主产物缺失时显式修复,不拼装降级结果:

  • 角色状态文件缺失 → 从角色设定文件和前文推断当前状态。
  • 角色、普通剧情单元或设定等非主产物子目录缺失 → 按「对标书路径查找」查找项目视图与根目录数据源,仍缺失则跳过该可选模块。本条不适用于 剧情/情绪模块.md剧情/节奏.md
  • 剧情/情绪模块.md / 剧情/节奏.md 缺失 → 写前准备必须停下,设置 missing_primary_contract: true 并给出 repair_action:重跑 /story-long-analyze Stage 3+ 或重新 /story-import,不得用摘要文件假装已召回权威模块。
  • 有对标书但 文风.md 缺失 → 若有 设定/文风.md(含实质内容)走自定义文风模式继续;否则日更文风召回 fail-fast,提示先运行 /story-long-analyze Stage 6 并 /story-import 同步。完全无对标项目则跳过文风召回、不阻塞(有 设定/文风.md 时用它写作)。情绪/节奏轴(missing_primary_contract)独立,自定义文风模式不豁免其 fail-fast。
  • 伏笔/时间线文件缺失 → 不检查,相关信息在卷纲或大纲中体现即可。
  • 设定/题材正文提示卡.md 缺失 → 不阻塞;写前从 设定/题材定位.md 精确匹配 references/genre-prose-cards.md 索引,并只读取 references/genre-prose-cards/ 中对应题材单卡(高/中/低置信照原卡标注),无命中再用 references/style-genre-modules.md 通用流派模块即时生成短 genre_prose_card。只有 设定/题材定位.md 也缺失时,退回细纲和目标平台做低置信题材卡,并在意图确认写明。

对标分析权威优先级(权威读取顺序)

  • 剧情/情绪模块.md 是读者需求 / 情绪引擎、爽文套路框架、可复现模块和重组指南的权威来源。
  • 剧情/节奏.md 是关键信息推进、章节扩写技法聚合、情绪触动点和爆发节奏的权威来源。
  • 文风.md 只管句长、标点、对话潜台词、原文锚点等风格;它不能覆盖情绪模块或节奏意图。自定义文风 设定/文风.md(用户自写、不被导入/拆解覆盖)优先级高于对标 文风.md:含实质内容时作权威风格基,对标文风降为参考与句长数值兜底;命中硬安全线的写法(…… / 破折号 / 段间空行 / 碎句)仍按 narrative-writer 归一,自定义只接管句长 / 软标点 / 潜台词 / 情绪交替。
  • 章节/第K章_摘要.md 是具体章节证据,用来校验和补足权威索引,不反向覆盖 情绪模块.md / 节奏.md
  • 拆文报告.md剧情/故事线.md 是投影/摘要;若与 剧情/情绪模块.md剧情/节奏.md 冲突,写作以两个权威文件为准,并在写前准备 gaps.conflict 记录冲突来源。

文件组织原则:

  • 人物一个一个文件角色/角色名.md,方便按需读取
  • 势力一个一个文件势力/势力名.md,组织/门派/家族/国家等
  • 世界观按主题拆分:背景、力量体系、社会结构等各自独立
  • 细纲一章一个文件细纲_第XXX章.md,含钩子设计,与正文一一对应
  • 正文按章拆分:每章一个文件,第XXX章_章名.md
  • 每章写完直接写入 正文/ 目录,不要先输出到对话
单章写作流程

当用户准备写某一章时:

  • 检查细纲:读取 大纲/细纲_第{N}章.md,并从对应 大纲/卷纲_第X卷.md 读取当前剧情单元(单元ID/位置、卷契约、本卷主推线/战果、终局底牌边界、风险等级)。如果不存在,必须先补建细纲再写正文,不允许跳过细纲直接写作。补建时参考卷纲中本章对应的事件规划和上下文,并按新版“章节蓝图”模板补齐阶段位置、结构公式、禁止提前释放、内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定;旧版细纲缺这些字段不阻塞读取,但本轮若要回填,未知项写 [待补充]
  • 读取上下文(按需加载,缺失则跳过。可选快捷路径:如果项目已部署 story-explorer agent(优先检查 .claude/agents/story-explorer.md 是否存在;不存在时再检查 .opencode/agents/,再不存在时检查 .codex/agents/),可 spawn Agent(subagent_type: "story-explorer", prompt: "项目目录:{dir}\n查询类型:context_load\n查询参数:准备写第 {N} 章") 一次获取上下文):
  • (1) 正文/第{N-1}章_*.md — 上一章正文
  • (2) 大纲/细纲_第{N}章.md — 本章细纲(含钩子设计)
  • (2a) 大纲/卷纲_第X卷.md — 当前剧情单元、卷契约与终局储备(主推线/战果、终局底牌边界)
  • (3) 追踪/伏笔.md(如存在)— 待回收伏笔
  • (4) 设定/角色/{相关角色}.md设定/势力/{相关势力}.md(如存在)— 本章涉及的角色与势力(按细纲出场筛选)
  • (5) 对标书路径下 拆文报告.md(按对标书路径查找)— 对标参考
  • (6) 对标/{对标书名}/原文/第{N}章_*.md(如存在)— 同位置章节参考
  • (7) 参考资料/{topic}.md(如存在)— 历史研究资料(由 story-researcher 产出)
  • (8) 追踪/角色状态.md(如存在)— 角色当前状态快照
  • (9) 对标书路径下 剧情/故事线.md(按对标书路径查找)— 剧情单元索引,用于确定本章涉及哪些剧情单元
  • (10) 对标书路径下 剧情/{相关剧情单元}.md(按对标书路径查找)— 从索引中选择与本章相关的剧情单元文件
  • (11) 对标书路径下 设定/世界观/*.md(glob,按对标书路径查找)— 从当前拆文产出的主题化设定中获取参考;目录缺失则记录缺口并跳过本项,不读取扁平历史路径
  • (12) 对标书路径下 剧情/情绪模块.md(按对标书路径查找)— 读者需求 / 情绪引擎、爽文套路框架、可复现模块;缺失按上方「缺失文件处理」设置 missing_primary_contract 并停止准备
  • (13) 对标书路径下 剧情/节奏.md(按对标书路径查找)— 关键信息推进、情绪触动点、爆发节奏;缺失按上方「缺失文件处理」设置 missing_primary_contract 并停止准备
  • (14) 设定/题材正文提示卡.md(如存在)— 本书正文层题材卡;缺失时从 设定/题材定位.md + references/genre-prose-cards.md 索引 + references/genre-prose-cards/ 单题材卡目录(按题材分类优先)+ references/style-genre-modules.md(兜底)即时生成 genre_prose_card,不阻塞写作
  • 写前准备(下面的 3 步是核心方法在单章写作中的落地:筛选状态 → 召回模块 → 确认意图):
  • 状态筛选:从 追踪/角色状态.md 中筛选本章涉及角色的当前状态,从 追踪/伏笔.md 中筛选本章需要回收/推进的伏笔。输出本节速记(参考 state-tracking.md)。如果角色状态文件不存在,从角色设定和前文推断
  • 模块召回、题材卡与文风召回
  • ① 本章目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 用在哪些段落?答不出 → 先回读参考再动笔
  • (a) 情绪模块召回:按「对标书路径查找」规则读 {对标书路径}/剧情/情绪模块.md,选出 1 个与本章目标情绪最贴近的 selected_emotion_module(读者需求、触发器、戏剧单元、可替换要素、反抄袭提醒)。缺失时设置 missing_primary_contract: true,返回明确 repair_action 后停止准备
  • (b) 节奏召回:读 {对标书路径}/剧情/节奏.md,选出 1 条 rhythm_reference(关键信息 → 扩写技法 → 情绪触动点 → 爆发/冷却)。缺失时设置 missing_primary_contract: true,返回明确 repair_action 后停止准备
  • (c) 题材正文提示卡召回:优先读 设定/题材正文提示卡.md;缺失则先读 设定/题材定位.md + references/genre-prose-cards.md 索引,按主题材精确匹配后只读取 references/genre-prose-cards/ 中对应单题材卡(如 都市脑洞 / 豪门总裁 / 年代 / 双男主;低置信卡必须在意图确认标注低置信,并要求同题材对标校准),无命中再读 references/style-genre-modules.md 通用流派模块。跨题材时主题材抽 3-5 条、辅题材抽 1-2 条,生成短 genre_prose_card(题材边界、核心逻辑、读者期待、核心爽点/情绪、正文落点、前中后期打法、节奏密度、场景颗粒、禁止漂移、本章取舍、卡片置信度)。题材卡只约束正文层题材味,不改细纲剧情、不覆盖 selected_emotion_module / rhythm_reference / 设定/文风.md;只在内部校准取舍,正文里不得出现卡名/标签/置信度/条目/合规自评
  • (d) 文风召回:先直接读 设定/文风.md(不经 explorer):含实质内容(去空白 ≥200 字,或含 句长 / 标点 / 对话 / 锚点 / 笔调 小节且小节内有可执行约束:比例 / 例句 / 禁止或偏好描述)则置 custom_style=true、进入「自定义文风模式」,它作权威风格基(句长 / 软标点 / 潜台词 / 情绪交替),对标 / 拆文 文风.md 降为参考(锚点 + 句长兜底);空 / 仅空白 / 仅标题 / 占位 stub(待办 / 待补充 / ___)视为不存在。否则按「对标书路径查找」规则读 {对标书路径}/文风.md(路径优先 {项目}/对标/{书名}/,回退 拆文库/{书名}/);多本对标书时从 设定/题材定位.md主对标书 字段。未进入自定义文风模式且文风文件不存在 → fail-fast 报错:「对标书 X 缺少 文风.md。请用 /story-long-analyze 跑 Stage 6 生成文风,再 /story-import 同步。」不 inline 生成(自定义文风模式则不 fail-fast;情绪 / 节奏轴 missing_primary_contract 仍独立阻塞)
  • (e) 匹配章节挑选:从 {对标书路径}/章节/*_摘要.md grep 基调:(紧张|轻松|悲伤|热血|爽|甜|温馨|恐怖|压抑|其他)(全角冒号),按本章目标情绪挑章 K——多章同基调时选择规则:先看爽点类型是否接近,再看情节点数量/原文章节估算字数是否接近本章目标字数,最后取章节号最小者;必读 {对标书路径}/章节/第K章_摘要.md,若同章存在 第K章_深度拆解.md 则加读,否则回退黄金三章深度拆解/文风文件里的可借鉴技巧,不因非黄金三章缺少深度拆解而失败
  • (f) 结构化模块召回:从对标的结构化子目录(角色/剧情/设定)中按本章情节检索相关模块;若与 剧情/情绪模块.md / 剧情/节奏.md 冲突,权威文件优先,记录 conflict
  • (g) 输出"主对标召回摘要 + 副对标召回摘要 + selected_emotion_module + rhythm_reference + genre_prose_card + 文风召回指令 + 原文锚点片段引用",作为 narrative-writer 的输入。多对标书时references/cross-book-recall.md:主对标提供文风、原文锚点与 selected_emotion_module / rhythm_reference;副对标/参考对标按阶段预算提供结构化摘要,不限制登记书目,不读取副书 文风.md / 原文,超过预算时裁条目不裁书目记录。
  • 快捷路径:项目已部署 story-explorer agent 时,可一次性召回文风/模块材料。
  • 检查顺序:.claude/agents/story-explorer.md.opencode/agents/.codex/agents/
  • 查询类型:benchmark_style_load;传入项目目录、章节号、目标基调/字数和爽点类型。
  • 需要返回:style_profile_pathstyle_profile_summaryselected_emotion_modulerhythm_reference、来源路径、匹配章节、锚点片段、gaps
  • gaps.missing_primary_contract 为 true 时先按 repair_action 修复,不进入正文生成。
  • 主会话另行直接读 设定/文风.md:含实质内容时作为本书风格基准;但不豁免情绪/节奏缺失。
  • 指令确认:综合细纲、本节速记和模块召回结果,用一句话写清本章意图。
  • 新版细纲必须消费:阶段位置、单元ID/位置、主角目标/关键选择、结构公式、禁止提前释放、内容概括、情节安排、人物关系/出场顺序、情节细化、结尾钩子,并对照当前剧情单元的卷契约、本卷主推线/战果、终局底牌边界。
  • 细纲优先边界:正文只能展开本章细纲已有事件、人物、冲突、伏笔和结尾钩子;不得为了凑字或"更精彩"自造新主线、新角色、新反转、提前写后续章剧情,必要的过渡动作只能服务于细纲已列情节点。后续阶段真相、底牌、关系结论和终局矛盾不得因为章尾钩子提前泄露。反过来,细纲是"要发生什么"的契约、不是正文的形状:正文可自由编排叙述顺序、合并/穿插情节点,不必一个情节点一段、也不必按五段式顺写,把每个点演成场景而不是照抄概括语(见 writing-craft.md「从细纲到正文」)。
  • 爽点出手前要有可指认的危机/期待铺垫;装逼/打脸/揭露章要写在场配角的差异反应。
  • 高压/生死/悲痛节拍 要收紧对话声线:搞笑担当让位,信息型角色不当科普嘴,对话逐句承接对方情绪。
  • 检查任务卡点:本章如果有“办事被卡住”,它必须卡出信息、关系、代价、选择或伏笔变化;没有就不强补。
  • 契约风险检查:按 references/reader-contract-and-progression.md 判定 契约安全 / 需补强 / 契约破坏;若高光/收益被配角、机构或偶然性拿走且没有可见交换,先修纲再写。
  • 旧版细纲回退读取核心事件、情节点序列、目标情绪、章首/章尾钩子和字数目标。
  • 例:「快节奏打脸——账单暴露→逼问→反证→公开代价;读者等了三章,这章必须一拳到位。」
  • 资料研究(按需):如果写作中遇到需要查证的外部事实(历史年代、地理方位、职业细节等),如果项目已部署 story-researcher agent(优先检查 .claude/agents/ 下的 story-researcher.md 是否存在;不存在时再检查 .opencode/agents/,再不存在时检查 .codex/agents/),spawn story-researcher agent 搜索并输出到 参考资料/ 目录。如 agent 不可用,由主线程直接执行。研究完成后再继续写作。
  • 标题预检:写正文前从细纲读取章名;如与既有章节同名或明显重复,先按本章核心事件改名,并同步细纲标题与正文文件名。
  • 写作:第 1 章如果以内心戏、设定认知或独处开场,必须先把内心变化外化为可见事件(决定、误判、对话、物件变化、外部压力),再按字数目标展开;不得用大段心理独白凑字。若第 1 章低于目标,或正文代入感/推进感偏薄,优先回到细纲补有用子事件、对话交锋或选择代价,不要补解释性内心戏;任务卡点只在角色本来有要办的事、且能卡出信息/关系/代价/选择/伏笔变化时使用,没有就不强补。
  • 正文元信息隔离章节:第{N}章上一章:正文/第{N-1}章_*.md匹配第K章细纲文件 等只用于定位材料。标题行以外的正文不得出现 第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者 这类写作工程词。需要承接前文时,改成角色能感知的事件锚点或相对时间,例如“比第一章那三秒开火更疼”必须写成“比那三秒开火更疼”。例外:角色在故事世界内真实阅读/讨论“第X章”文本,或真实身为作者/读者并谈论读者身份时,可保留相应词。
  • 具体字数表达校验:正文评价台词、题字、信件、诏令、念头或弹幕时,只有在统计口径明确、已用脚本逐字核对、且故事确有必要时,才使用“这五个字 / 短短四字 / 三个字一落 / 八个字砸下去”这类具体字数表达。不能确保字数计算正确时,一律改成非具体数字表达,如“这句话一落”“这一句落下”“那几个字”“这行字”“话音落下”。例如 荀攸只说:“他会疑,不会快。”这五个字一落 应改为 荀攸只说:“他会疑,不会快。”这句话一落
  • 正文执行
  • 先检查 narrative-writer agent:.claude/agents/narrative-writer.md.opencode/agents/.codex/agents/
  • 如可用,spawn Agent(subagent_type: "narrative-writer", prompt: ...),prompt 只传本章必需材料:
  • 项目目录、章节、细纲文件、上一章、输出路径。
  • 写前准备输出:本节速记、情绪目标、涉及角色、参考技法。
  • 主对标/拆文路径、主/副对标召回摘要。
  • selected_emotion_modulerhythm_reference 及来源路径。
  • genre_prose_card(题材正文提示卡摘要,只含本章相关条目)。
  • 文风路径、文风召回指令、原文锚点片段。
  • 阶段位置、本章结构公式、本章可释放信息、本章禁止提前释放信息。
  • 字数目标、情节点预算、格式硬约束。
  • 细纲优先边界:只展开本章细纲,不自造新剧情;若字数目标靠现有情节点无法达标,返回 outline_underfilled 欠账点,由主会话补纲/确认后再写。
  • 不把本文件整套规则复制进 prompt;细节以已加载 references 和 narrative-writer 模板为准。
  • agent 输出写入 正文/第XXX章_章名.md。如 agent 未部署,由主线程直接写作。
  • 字数验证(写作完成后的第一件事):用跨平台 Python 字符统计本章实际字数,探测顺序 python3/python/py;不要用 wc -c 或模型估算,Windows 不直接假定 python3 命令可用。macOS/Linux 可用 wc -m 备选。
  • 字数 < 细纲目标 90%:对照情节点预算找欠账点。密点(爽点/打脸/反转)被写薄时,重写到对应预算;低压/关系/信息整理章则补细纲内已有铺垫、互动或表演节拍,不硬塞爽点。若现有细纲没有足够可展开内容,停止并输出 outline_underfilled 欠账点,先补纲/确认,不能让正文自造新剧情。
  • 字数 > 章目标×1.1:压过场、合并疏点、删多余过渡,不删主线爽点凑数。
  • 90% 只是放行下限,目标仍是 [章目标, 章目标×1.1];重写后重新统计,落进区间再进入步骤 9。
  • 检查:章尾是否有往下看的理由(低压/过场章弱钩子或留阶段目标即可,不强求爽点)、爽点是否到位(按章节定位,高压/推进章必查)。两条可证伪核对(不达标→修复):① 爽点出手前是否有可指认的危机/期待段落(指到具体情节点)?指不出=空洞 → 回步骤 8 补铺垫情节点(plot-emotion-system 倒推法);② 装逼/打脸/揭露章,在场配角是否写出差异化反应(集体震惊/各异),还是只写主角动作?没有 → 补在场配角反应(plot-core-methods)

10. 元信息扫描:检查标题行以外的正文,命中 第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者 时必须改写为场景内表达;只有角色在故事世界内真实阅读/讨论“第X章”文本,或真实身为作者/读者并谈论读者身份时例外。

How to use it

Copy the folder

Take worldwonderer/story-long-write from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.