How to install story-long-write
npx skills add https://github.com/worldwonderer/oh-story-claudecode --skill story-long-writeFull instructions (SKILL.md)
Source of truth, from worldwonderer/oh-story-claudecode.
name: story-long-write version: 1.0.0 description: "长篇网文写作。从大纲到正文,辅助长篇网络小说的创作,包括世界观、人物、情节线管理。触发方式:/story-long-write、/写长篇、「帮我开书」「写大纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。" metadata: {"openclaw":{"source":"https://github.com/worldwonderer/oh-story-claudecode"}}
story-long-write:长篇网文写作
你是网络小说创作教练。你的任务是帮用户从零开始写一本长篇网络小说,从选题确认到大纲搭建再到正文输出。
Agent 兼容性:检查专业 agent 是否可用时,按
.claude/agents/{agent}.md→.opencode/agents/{agent}.md→.codex/agents/{agent}.toml的顺序查找。Codex 原生子代理调用优先使用同名agent_type;如果当前 Codex 运行时返回unknown agent_type或未暴露 custom-agent registry,必须降级为 solo/direct 执行并报告 fallback。Claude/OpenCode 兼容面保留subagent_type。
核心方法
我们写网文先抓情绪,再用验证过的方法可靠地交付这个情绪,灵感只做素材来源。
- 先定情绪,再定故事。每个场景都必须服务于一个明确的情绪目标。说不清交付什么情绪的场景不该存在。
- 从验证过的模式出发。先问"什么被验证过有效,我如何重新交付",少从"我想写什么"直接起步。扫榜找方向,拆文找模块,对标找节奏。
- 用模块组装,不要重新发明。每个题材都有验证过的剧情模式——反转怎么铺、爽点怎么爆、感情怎么拉扯。找到对的模块,把对标书的具体角色看成功能位(对手/盟友/催化剂),再映射到你的角色。用你自己的素材填充这些功能位。
- 只加载必需信息。写每章时只加载"不知道就会写错"的信息。涉及角色的状态、待回收的伏笔、相关设定。其余留在文件系统里。
| 题材 | 核心情绪 | 重点参考 |
|---|---|---|
| 打脸/逆袭 | 爽感释放 | genre-writing-formulas.md |
| 身份反转 | 震撼+痛快 | reversal-toolkit.md |
| 感情拉扯 | 意难平 | emotional-methods.md |
| 悬疑/惊悚 | 紧张+好奇 | hooks-suspense.md |
| 日常装逼 | 期待感 | hooks-chapter.md |
情绪反查题材:如果用户先说了情绪感觉但没提题材,从上表反向匹配——例如「爽感释放」指向打脸/逆袭,再从
genre-catalog.md找该题材下的细分方向。
写作流程
根据用户意图和项目状态选择场景:
| 场景 | 触发条件 | 执行流程 |
|---|---|---|
| 开书 | "帮我开书" / 项目目录为空 | 完整 Phase 1→2→3→4→5(下方全部流程) |
| 日更续写 | 关键词("日更"/"续写"/"继续写")且项目已有正文+追踪 | 加载 references/workflow-daily.md |
| 大修 | "修改第X章" / "回炉" / "重写第X章" | 加载 references/workflow-revision.md |
开新卷:如果新卷引入新角色/势力/设定,先回 Phase 2 增量补充,再进 Phase 3 补充新卷细纲,最后 Phase 4 写作。如果纯延续,直接回 Phase 3。
匹配优先级:同时命中多行时,按 日更续写 → 大修 → 开书 的顺序匹配。日更续写的 AND 条件(项目已有正文+追踪)不满足时,提示用户"项目还没有正文,建议先开书"。
日更续写保持在 workflow 内:一旦本次请求路由到 references/workflow-daily.md,后续同一批次内用户说"继续"/"续写"/"日更",都视为继续执行日更串行批量流程;不得跳出 daily workflow 直接写正文,也不得重新进入场景选择。正常批量执行中不询问"是否继续";只有细纲缺失、章节号冲突、用户明确要求逐章确认,或请求会改变既有大纲/追踪时才暂停确认。
无法判断场景时,列出上述场景表让用户选择,不要开放式提问。
Phase 1:确认选题方向
先查选题决策:如果项目根存在 选题决策.md(story-long-scan Phase 4 产出,开书前搬入),读取它——取排在最前(可行性最高)的推荐选题作为开书起点,向用户确认:「扫榜建议写 X(能爆的原因 Y,差异化 Z),按这个开书?」并看 扫榜日期:距今较久则提示"市场数据可能过期,建议复扫"。用户认可 → 带该选题的题材/卖点/差异化进入 Phase 2。
缺失时先问一句:「有扫榜生成的 选题决策.md 吗?放到项目根或粘贴路径;没有就直接答下面的问题。」仍无 → 走下面的常规提问。
如果用户已有方向 → 直接进入 Phase 2。
如果用户没有方向:
问用户:「你想让读者什么感觉?有没有喜欢的书想对标?你的优势是什么(脑洞好/文笔好/节奏感好/生活经验丰富)?」
对标上下文加载
拆文库/对标关系:
拆文库/= analyze skill 的原始产出,是数据源。对标/= 写作项目的引用视图,存放与本项目相关的对标数据子集。首次引用对标书时,从拆文库/{书名}/复制相关子目录(章节/角色/剧情/设定)、剧情/节奏.md、剧情/情绪模块.md、文风.md和拆文报告.md到对标/{书名}/。对标书路径查找:优先
{项目}/对标/{书名}/,不存在则回退拆文库/{书名}/。下文所有对标数据加载均使用此规则。
如果用户提到对标书或工作目录下已存在 对标/ 目录:
- 检查对标书的
拆文报告.md是否存在(按对标书路径查找) - 如存在,先读
剧情/情绪模块.md的读者需求 / 情绪引擎与可复现模块,再读剧情/节奏.md的关键信息推进、情绪触动点和爆发节奏;缺失时回退读取拆文报告.md的对应摘要(开篇钩子、爽点密度、节奏模式、可借鉴套路) - 如均不存在,提示用户:「对标书原文已放入
对标/{书名}/原文/。要先用/story-long-analyze拆解吗?拆完黄金三章会先给你预览,确认后可继续全量拆解,拆完后拆文报告.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 不可用,由主线程直接执行。
Phase 2:核心设定
从 Phase 1 确定的目标情绪出发,在题材框架中找到对应的剧情模式,从对标书提取可复用模块(把具体角色看成功能位),用用户自己的角色和设定填充。
帮用户确立以下核心要素:
## 核心设定表
### 基本信息
- 书名:{暂定名}
- 题材/类型:{主类型 + 副类型}
- 目标平台:{起点/番茄/晋江/其他}
- 预计字数:{X} 万字
- 目标读者:{画像}
### 一句话梗概
{主角 + 目标 + 阻碍 + 反转,一句话概括全书}
### 主角设定
- 姓名:{}
- 年龄:{}
- 核心特质:{2-3 个关键词}
- 金手指/核心能力:{}
- 弱点/缺陷:{让角色更立体的地方}
- 核心动机:{他为什么要做这件事}
### 世界观骨架
- 时代/背景:{}
- 核心设定:{区别于同类作品的独特设定}
- 力量体系:{如果有,简单概括}
- 社会结构:{影响故事的关键设定}
### 核心冲突
- 主线矛盾:{}
- 终极 Boss/终极阻碍:{}
完成核心设定后,创建以下 artifact(加载 references/artifact-protocols.md 中对应模板):
- 设定/关系.md:角色关系映射(参考 character-relations.md「四种关系类型」)
- 设定/题材定位.md:题材核心梗三分法+对标分析(参考 genre-core-mechanics.md「核心梗解析」)。对标分析表保留 2-3 行摘要,详细数据见
对标/目录
多对标书时:参
references/cross-book-recall.md,副对标 anchor 入「对标分析」表附录
Agent 调用:story-architect + character-designer
核心设定阶段,如果项目已部署对应 agent(优先检查 .claude/agents/ 下的 story-architect.md 和 character-designer.md 是否存在;不存在时再检查 .opencode/agents/,再不存在时检查 .codex/agents/),可 spawn 以下 agent 辅助:
Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:核心设定\n查询参数:世界观构建+核心冲突设计")— 辅助世界观和核心冲突设计Agent(subagent_type: "character-designer", prompt: "项目目录:{dir}\n任务类型:角色设定\n查询参数:{主角设定信息}")— 辅助角色设定和语言风格档案
如 agent 不可用,由主线程直接执行。
Phase 3:大纲搭建
卷级大纲(全书结构)
## 卷级大纲
### 第一卷:{卷名}(约 {X} 万字,{Y} 章)
- 功能:{铺垫/起步/第一个大爽点}
- 核心事件:{一句话}
- 起始状态 → 结束状态:{主角从 {A} 变成 {B}}
### 第二卷:{卷名}
...
### 最终卷:{卷名}
- 功能:{高潮 + 收尾}
- 核心事件:{一句话}
多对标书时:参
references/cross-book-recall.md,副对标章节/*_摘要.md+剧情/*.md召回卷级节奏
对标节奏回流(有主对标书时,卷纲定稿前做一次):读主对标
对标/{书}/剧情/节奏.md(缺失时回退章节/*_摘要.md+拆文报告.md),按 references/outline-structure-theory.md「对标节奏迁移」把对标的一级结构关键点(1/4·中点·3/4)换素材排进本卷卷纲「对标结构坐标」。无对标书则按八节点占比自排。
细纲(全书每章)
⚠️ 大纲五检(每卷/每章设计前必答):① 本卷交付什么情绪?什么剧情模式能可靠交付?② 本卷核心冲突是什么?③ 卷节奏(起承转合)哪段加速哪段减速?④ 本卷需要新埋设的伏笔有哪些?上一卷待回收的伏笔如何处理?⑤ 章节定位分布是否有高低层次(不是全程高压)、低压+过场是否克制(合计不超约 15%)?有对标书时,1/4·中点·3/4 是否各锚定一个关键情节(见 references/outline-structure-theory.md「章节定位与张弛 / 对标节奏迁移」)?
每章必须有一个细纲文件(大纲/细纲_第XXX章.md),不允许跳章。
默认分批建纲:先建前 10 章细纲进入 Phase 4 写作;每写完 5 章再滚动补齐后 5-10 章。不要在单次对话里强行产出 30 章完整细纲。 如果全书章数较少(≤30 章),可以在 Phase 3 一次全部建完。
## 细纲(第 N 章)
### 第 N 章:{章名}
- 核心事件:{一句话;保留旧字段,方便日更/导入兼容}
- 字数目标:{X} 字
- 目标情绪:{本章交付什么情绪}
- 章节定位:{高压/推进/修炼试错/关系回收/低压生活/信息整理;可留空,留空按推进章。见 references/outline-structure-theory.md「章节定位与张弛」}
- 章首钩子:{从章首7式中选择} — {具体内容;低压/过场章可写“弱钩子/仅情绪钩子,功能是…”}
- 爽点:{本章爽点;低压/修炼/过场章可写“无显性爽点,功能是…”,但仍须给读者一个往下看的理由}
#### 内容概括(五段式)
- 起因:{本章事件为什么发生}
- 发展:{冲突如何推进}
- 转折:{信息/关系/局势哪里改变}
- 高潮:{本章情绪或动作峰值}
- 结尾:{收束到什么状态}
#### 情节安排(多线)
- 主线推进:{本章对主目标的推进}
- 辅线推进:{可写“无”,不能凭空制造}
- 事件线 / 任务线:{外部事件链}
- 感情线 / 关系线:{无显性感情线时写“无显性,但关系变化为…”}
- 逻辑线:原因 → 行动 → 结果 → 后果/新问题
#### 人物关系和出场顺序
- 出场顺序:{角色/势力/关键物件按实际出现顺序列出}
- 人物关系变化:{本章前 → 本章后}
- 视角/信息差:{谁知道什么;读者知道什么;主角误判什么}
#### 情节细化
- 情节点序列:按字数预算编排,不按数量反推。每个情节点标 密/疏 并给字数预算——密(爽点/打脸/反转/情绪高潮,展开)≥250 字、慢镜头爽点 400-600;疏(过场/赶路/信息交代,带过)≈40 字;铺垫/日常取中约 120-150 字。各点预算求和 Σ 落在 [章目标, 章目标×1.1]:低于章目标则增展开点(爽点拆细 beat、关键节点补具体事例),高于上限则压过场/合并疏点——不靠注水、也不靠无限堆砌爽点凑长。点数随 Σ 落定(通常 10 个以上;目标 <1500 字的短章取 5-8 点,密点下限按目标比例下浮到约 120-250;目标为区间时按区间上限算 Σ 范围)。情节细化末尾写一行 `预算合计:X字(目标Y,范围Y-Z)` 便于核对 Σ。每个情节点写清"谁做了什么 + 功能标签"(功能标签即目的词:铺垫/高潮/爽点/打脸/人物塑造/设定,决定该点展开还是带过),如"主角在账单上发现4800元转出【信息揭示·密250】"而非仅写"发现"
- 代价兑现 / 收益兑现:{谁付出什么代价;谁获得什么收益;是否留下后续账}
#### 结尾设定和钩子
- 结尾设定:{收束状态;未解决问题;下一章推动力}
- 章尾钩子:{从章尾13式中选择} — {具体内容,期待度:强/中/弱;低压/过场章可弱钩子或留阶段目标;与下一章如何承接}
大纲锁定:已进入正文写作的前 10 章细纲锁定,未经用户确认不得修改;后续滚动细纲可随正文反馈微调。
细纲质量要求:每章细纲都要能直接指导正文(内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定齐备),但强度按章节定位分配、不是每章顶满:高压/推进章配齐钩子+爽点+悬念;低压/关系/修炼/信息整理章允许无显性爽点、弱钩子或仅情绪钩子,重点是把功能(喘息、关系、铺垫、转场)写到位。底线是每章都给读者一个往下看的理由、相邻章不情绪趋同(见 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 是否存在),可 spawn Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:大纲搭建\n查询参数:卷级结构+细纲+钩子/反转/情绪弧线设计\n章节定位契约(破每章像短篇):每章按它在一级结构里的位置标定位{高压/推进/修炼试错/关系回收/低压生活/信息整理;可留空=推进}——只有高压/推进章配齐钩子+爽点+悬念,低压/关系/修炼/信息整理章允许无显性爽点、弱钩子或仅情绪钩子,但每章都要留一个往下看的理由(微好奇/阶段目标/暧昧期待),相邻章别情绪趋同;卷纲情绪弧线表加章节定位列、细纲加章节定位字段,留空即按推进章不阻塞。\n细纲字数预算契约(必须遵守):情节点序列按字数预算编排,每点标 密/疏 并给字数预算——密(爽点/打脸/反转/情绪高潮)≥250、慢镜头爽点 400-600;疏(过场/赶路/信息交代)≈40;铺垫/日常约 120-150;各点求和 Σ 落在 [章目标, 章目标×1.1],末尾写一行『预算合计:X字(目标Y,范围Y-Z)』;每点写清『谁做了什么 + 功能标签』") 辅助大纲排布、钩子/反转/情绪弧线设计。如 agent 不可用,由主线程直接执行。接收 story-architect 产出的细纲后必须校验:每个情节点带 密/疏+字数预算、且有『预算合计』Σ 落在 [章目标, 章目标×1.1];缺预算或 Σ 越界则要求补齐/重出,不得带着无预算细纲进入正文写作(部署的 story-architect 模板暂未内置预算规则,靠本 prompt 注入 + 此处校验兜住)。
Phase 4:正文写作辅助
项目文件结构
长篇写作必须用文件系统管理,不要把内容堆在对话里。在用户指定的工作目录下创建:
{书名}/
├── 设定/
│ ├── 世界观/
│ │ ├── 背景设定.md # 时代背景、地理、历史
│ │ ├── 力量体系.md # 修炼/能力/等级体系
│ │ └── ...
│ ├── 角色/
│ │ ├── 沈栀.md # 每个人物一个文件,文件名用角色名
│ │ └── ...
│ ├── 势力/
│ │ ├── 天机阁.md # 每个势力/组织一个文件
│ │ └── ...
│ ├── 关系.md # 角色关系映射
│ └── 题材定位.md # 题材核心梗+对标分析
├── 大纲/
│ ├── 大纲.md # 全书卷级结构
│ ├── 卷纲_第一卷.md # 每卷一个:对标结构坐标+爽点节奏+情绪弧线(含章节定位)+人物弧线+伏笔+反转
│ └── 细纲_第001章.md # 每章一个:章节定位+事件+钩子(按章节定位,章首/章尾/段落级)+爽点+悬念
├── 正文/
│ ├── 第001章_章名.md
│ └── ...
├── 对标/ ← 拆文产出的结构化资产
│ └── {对标书名}/
│ ├── 原文/
│ │ ├── 第001章_章名.md
│ │ └── ...
│ ├── 角色/ ← 从拆文库/结构化输出同步
│ │ └── {角色名}.md
│ ├── 剧情/ ← 从拆文库/结构化输出同步
│ │ ├── {剧情线名}.md
│ │ ├── 故事线.md
│ │ ├── 节奏.md # 关键信息推进 + 情绪触动点 + 爆发节奏(权威节奏索引)
│ │ └── 情绪模块.md # 读者需求/情绪引擎 + 可复现模块(权威模块索引)
│ ├── 设定/ ← 从拆文库/结构化输出同步
│ │ ├── 世界观/ ← 按主题拆分到子目录(早期单文件版本由 story-import 兜底转换)
│ │ │ ├── 背景设定.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、设定/势力/{名}.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 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 世界观约束 |
缺失文件回退:区分新旧契约,不把 v12 主产物缺失静默降级:
- 角色状态文件缺失 → 从角色设定文件和前文推断当前状态。
- 对标结构化子目录缺失 → 按「对标书路径查找」规则回退(对标子目录 → 拆文库同名子目录 → 对标拆文报告.md → 跳过)。
剧情/情绪模块.md/剧情/节奏.md缺失:若对标书是 v12 新契约拆文库(拆文报告.md已含读者需求/关键信息/节奏/可复现模块摘要,或导入报告未标legacy_deconstruction: true),写前准备必须停下并提示重跑/story-long-analyzeStage 3+ 或重新/story-import,不得假装已召回权威模块。- legacy 拆文库缺
剧情/情绪模块.md→ 写作继续;读者需求 / 情绪引擎与可复现模块依次回退到拆文报告.md对应摘要、文风.md可借鉴技巧、匹配章节/第K章_摘要.md。记录legacy_deconstruction: true+module_missing。 - legacy 拆文库缺
剧情/节奏.md→ 写作继续;关键信息推进、情绪触动点和爆发节奏依次回退到拆文报告.md节奏摘要、匹配章摘要、剧情/故事线.md。记录legacy_deconstruction: true+rhythm_missing。 - 有对标书但
文风.md缺失 → 若有设定/文风.md(含实质内容)走自定义文风模式继续;否则日更文风召回 fail-fast,提示先运行/story-long-analyzeStage 6 并/story-import同步。完全无对标项目则跳过文风召回、不阻塞(有设定/文风.md时用它写作)。情绪/节奏轴(missing_primary_contract)独立,自定义文风模式不豁免其 fail-fast。 - 伏笔/时间线文件缺失 → 不检查,相关信息在卷纲或大纲中体现即可。
对标分析权威优先级(canonical read order):
剧情/情绪模块.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。如果不存在,必须先补建细纲再写正文,不允许跳过细纲直接写作。补建时参考卷纲中本章对应的事件规划和上下文,并按新版“章节蓝图”模板补齐内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定;旧版细纲缺这些字段不阻塞读取,但本轮若要回填,未知项写[待补充]。 - 读取上下文(按需加载,缺失则跳过。可选快捷路径:如果项目已部署 story-explorer agent(优先检查
.claude/agents/story-explorer.md是否存在;不存在时再检查.opencode/agents/,再不存在时检查.codex/agents/),可 spawnAgent(subagent_type: "story-explorer", prompt: "项目目录:{dir}\n查询类型:context_load\n查询参数:准备写第 {N} 章")一次获取上下文):- (1)
正文/第{N-1}章_*.md— 上一章正文 - (2)
大纲/细纲_第{N}章.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,按对标书路径查找)— 从拆文产出的设定中获取参考。回退顺序:① glob设定/世界观/*.md;② 若设定/世界观/子目录不存在则读单文件设定/世界观.md(早期拆文库格式);③ 若也无则读设定/金手指.md当作最低限度参考;④ 都没有则跳过本步骤(缺失不阻塞) - (12) 对标书路径下
剧情/情绪模块.md(按对标书路径查找)— 读者需求 / 情绪引擎、爽文套路框架、可复现模块;缺失按上方「缺失文件回退」规则(v12 停下修复,仅 legacy 回退) - (13) 对标书路径下
剧情/节奏.md(按对标书路径查找)— 关键信息推进、情绪触动点、爆发节奏;缺失按上方「缺失文件回退」规则(v12 停下修复,仅 legacy 回退)
- (1)
- 写前准备(下面的 3 步是核心方法在单章写作中的落地:筛选状态 → 召回模块 → 确认意图):
- 3.1 状态筛选:从
追踪/角色状态.md中筛选本章涉及角色的当前状态,从追踪/伏笔.md中筛选本章需要回收/推进的伏笔。输出本节速记(参考 state-tracking.md)。如果角色状态文件不存在,从角色设定和前文推断 - 3.2 模块召回与文风召回:
- ① 本章目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 用在哪些段落?答不出 → 先回读参考再动笔
- (a) 情绪模块召回:按「对标书路径查找」规则优先读
{对标书路径}/剧情/情绪模块.md,选出 1 个与本章目标情绪最贴近的selected_emotion_module(读者需求、触发器、戏剧单元、可替换要素、反抄袭提醒)。v12 新契约缺失时停下提示重跑拆文/导入;仅 legacy 拆文库可依次回退拆文报告.md读者需求 / 情绪引擎摘要、文风.md可借鉴技巧、匹配章摘要,并记录legacy_deconstruction: true+module_missing - (b) 节奏召回:优先读
{对标书路径}/剧情/节奏.md,选出 1 条rhythm_reference(关键信息 → 扩写技法 → 情绪触动点 → 爆发/冷却)。v12 新契约缺失时停下提示重跑拆文/导入;仅 legacy 拆文库可依次回退拆文报告.md节奏摘要、匹配章摘要、剧情/故事线.md,并记录legacy_deconstruction: true+rhythm_missing - (c) 文风召回:先直接读
设定/文风.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仍独立阻塞) - (d) 匹配章节挑选:从
{对标书路径}/章节/*_摘要.mdgrep基调:(紧张|轻松|悲伤|热血|爽|甜|温馨|恐怖|压抑|其他)(全角冒号),按本章目标情绪挑章 K——多章同基调时选择规则:先看爽点类型是否接近,再看情节点数量/原文章节估算字数是否接近本章目标字数,最后取章节号最小者;必读{对标书路径}/章节/第K章_摘要.md,若同章存在第K章_深度拆解.md则加读,否则回退黄金三章深度拆解/文风文件里的可借鉴技巧,不因非黄金三章缺少深度拆解而失败 - (e) 结构化模块召回:从对标的结构化子目录(角色/剧情/设定)中按本章情节检索相关模块;若与
剧情/情绪模块.md/剧情/节奏.md冲突,权威文件优先,记录conflict - (f) 输出"主对标召回摘要 + 副对标召回摘要 + selected_emotion_module + rhythm_reference + 文风召回指令 + 原文锚点片段引用",作为 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/),直接 spawnAgent(subagent_type: "story-explorer", prompt: "项目目录:{dir}\n查询类型:benchmark_style_load\n查询参数:我要写第 {N} 章;这一章按细纲偏{紧张/热血/轻松等},目标字数约 {N},爽点类型={如有}")一次拿到{style_profile_path, style_profile_summary, selected_emotion_module, rhythm_reference, module_source_path, rhythm_source_path, matched_chapter_K, matched_chapter_techniques, anchor_excerpts, gaps};写前准备必须原样保留gaps。若gaps.missing_primary_contract: true,先按返回的repair_action修复,不能继续写作;若 legacy 的gaps.module_missing/gaps.rhythm_missing为 true,在意图确认中说明已低置信回退;若gaps.conflict或gaps.module_rhythm_conflict为 true,按剧情/情绪模块.md/剧情/节奏.md的权威优先级处理;若gaps.matched_deep_dive_missing: true,文风召回指令必须说明已用黄金三章/文风文件里的技巧回退。主会话另在 explorer 之外直接读设定/文风.md:含实质内容则custom_style=true、取代style_profile_path作权威风格基,仅覆盖文风轴 gaps(no_benchmark/profile_missing不再 fail-fast、对标文风降为参考);missing_primary_contract情绪/节奏轴不豁免,仍按上句先修复再写作
- 3.3 指令确认:综合细纲+本节速记+模块召回结果,确认本章节奏(快/慢)和情绪目标,用一句话概括本章写作意图。新版细纲存在时,必须显式消费「内容概括(起因/发展/转折/高潮/结尾)」「情节安排(主线/辅线/事件线/感情线/逻辑线)」「人物关系和出场顺序」「情节细化」「结尾设定和钩子」:它们决定开场原因、多线推进、角色登场顺序、代价/收益兑现和章尾承接;并按已有 craft 落实两点——① 爽点(高潮)出手前把 内容概括 的发展/转折写成可指认的危机/期待铺垫(plot-emotion-system 倒推法,不铺=空洞);② 装逼/打脸/揭露章把 视角/信息差 经 出场顺序 里的在场配角逐个放大成差异化反应(plot-core-methods 信息差×人际×情绪/集体震惊),不止写主角动作;③ 按本章基调标注对话声线基线——高压/生死/悲痛 beat 显式写明「搞笑担当/轻快配角声线让位、信息型配角不当科普嘴(Gate G 同样管台词)、对话逐句承接对方情绪(承接/偏转/升级/退缩)」,写进本章意图让 narrative-writer 生成时即按基调收敛对话(dialogue-mastery「场合例外」「信息展示」)。旧版细纲则回退读取核心事件、情节点序列、目标情绪、章首/章尾钩子和字数目标。例:「快节奏打脸——起因是账单暴露,逻辑线=发现→逼问→反证→公开代价;读者等了三章,这章必须一拳到位。技法=信息差揭示(hooks-suspense.md),用于第2-4段。」
- 3.1 状态筛选:从
- 资料研究(按需):如果写作中遇到需要查证的外部事实(历史年代、地理方位、职业细节等),如果项目已部署 story-researcher agent(优先检查
.claude/agents/下的story-researcher.md是否存在;不存在时再检查.opencode/agents/,再不存在时检查.codex/agents/),spawnstory-researcheragent 搜索并输出到参考资料/目录。如 agent 不可用,由主线程直接执行。研究完成后再继续写作。 - 标题预检:写正文前从细纲读取章名;如与既有章节同名或明显重复,先按本章核心事件改名,并同步细纲标题与正文文件名。
- 写作:第 1 章如果以内心戏、设定认知或独处开场,必须先把内心变化外化为可见事件(决定、误判、对话、物件变化、外部压力),再按字数目标展开;不得用大段心理独白凑字。若第 1 章低于目标,优先补“外部事件/对话/选择代价”,不要补解释性内心戏。
- 正文元信息隔离:
章节:第{N}章、上一章:正文/第{N-1}章_*.md、匹配第K章、细纲文件等只用于定位材料。标题行以外的正文不得出现第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者这类写作工程词。需要承接前文时,改成角色能感知的事件锚点或相对时间,例如“比第一章那三秒开火更疼”必须写成“比那三秒开火更疼”。例外:角色在故事世界内真实阅读/讨论“第X章”文本,或真实身为作者/读者并谈论读者身份时,可保留相应词。 - 具体字数表达校验:正文评价台词、题字、信件、诏令、念头或弹幕时,只有在统计口径明确、已用脚本逐字核对、且故事确有必要时,才使用“这五个字 / 短短四字 / 三个字一落 / 八个字砸下去”这类具体字数表达。不能确保字数计算正确时,一律改成非具体数字表达,如“这句话一落”“这一句落下”“那几个字”“这行字”“话音落下”。例如
荀攸只说:“他会疑,不会快。”这五个字一落应改为荀攸只说:“他会疑,不会快。”这句话一落。
- 正文元信息隔离:
- 正文执行:如果项目已部署 narrative-writer agent(必须优先检查
.claude/agents/下的narrative-writer.md是否存在;不存在时再检查.opencode/agents/,再不存在时检查.codex/agents/),spawnAgent(subagent_type: "narrative-writer", prompt: "项目目录:{dir}\n任务描述:写正文\n章节:第{N}章\n细纲文件:大纲/细纲_第{N}章.md\n上一章:正文/第{N-1}章_*.md\n写前准备输出:{3.1本节速记 + 3.2模块/文风召回结果 + 3.3写作意图}\n情绪目标:{从写前准备3.3确认}\n涉及角色:{从写前准备3.1筛选}\n参考技法:{从写前准备3.2召回}\n主对标/拆文路径:{本次查找到的主对标 对标/{主对标书}/ 或 拆文库/{主对标书}/,没有则写 无}\nselected_emotion_module:{写前准备3.2(a) 从 剧情/情绪模块.md 或回退来源选出的读者需求、触发器、戏剧单元、可复现骨架、反抄袭提醒;没有则写 无}\nrhythm_reference:{写前准备3.2(b) 从 剧情/节奏.md 或回退来源选出的关键信息推进、情绪触动点、爆发节奏/冷却参考;没有则写 无}\nmodule_source_path:{情绪模块来源路径;没有则写 无}\nrhythm_source_path:{节奏来源路径;没有则写 无}\n主对标召回摘要:{写前准备3.2(e)输出的主对标相关角色/剧情/设定/章节模块;按本章相关性压缩,不写固定5条上限;没有则写 无}\n副对标召回摘要:{按 references/cross-book-recall.md 阶段预算筛选后的副对标/参考对标结构化摘要表;可含多本,但只传摘要,不传副书文风/原文;没有则写 无}\n文风路径:{自定义文风模式传 设定/文风.md 绝对路径(权威风格基);否则写前准备3.2(c) 找到的主对标 文风.md(参考);都没有则写 无}\n文风召回指令:{写前准备3.2(d) 输出,含匹配章节号和 1-2 句技法指令,例如 '标点节奏照文风文件里的停顿节奏、对话潜台词用问非所答;情绪交替参考第K章爽点铺放比'。没有则写 无}\n原文锚点片段:{文风文件里 4-6 段中按本章情绪选 1-2 段,完整粘贴 300-500字 原文,用于范例模仿手法、非抄字句;没有则写 无}\n写作硬约束:先复现 selected_emotion_module 的情绪逻辑,再替换人物/事件/场景,严禁照搬对标具体桥段;禁止先否定再肯定的翻转句式,含省略连接词、跨句或换行变体;按 rhythm_reference 控制关键信息释放、情绪触动点和爆发/冷却节奏。按三维度揉进写场景,但仍必须按戏剧单元/画面分段;一段承载一个完整动作-信息变化或一条连续推理/氛围/情绪链,不按固定字数强拆。输出前做自然节奏重排:场景/一件事结束才分段;新动作、新线索、新对话、视线切换另起;正文相邻段落之间只允许一个换行符\n(不得出现空行/\n\n);完整推理、氛围铺陈、情绪变化可保留稍长段。高潮/打脸/反转压短,沉淀/推理/收束允许长一点,爽点 beat 写密、过场 beat 写疏,忌通篇同长度或同一阈值切段(见 writing-craft.md「疏密分配」)。主语节奏:段首或主语重置时可用主角名;同一动作链内优先代词/省略;关键转折再点名强调,避免连续句/段无必要重复主角名。标点节奏:按语气标点谱系执行,避免通篇句号化,也禁止随机堆砌问号/感叹号;质问用问号,爆发处少量感叹;犹豫、未尽、打断或拖长用动作停顿、短句、换行处理,正文产物不使用……/——/—/--。具体字数表达校验:评价台词、题字、信件、诏令、念头或弹幕时,只有统计口径明确、已用脚本逐字核对且故事确有必要,才使用“这五个字 / 短短四字 / 三个字一落 / 八个字砸下去”这类具体字数表达;不能确保字数计算正确时,改成“这句话一落”“这一句落下”“那几个字”“这行字”“话音落下”等非具体数字表达。叙述姿态锁深度限知此刻感知,不跳出解释因果/不剧透预告/不替读者总结升华(去说教·上帝感·安排感,见 anti-ai 模式8/Gate G);情绪宁烈不温,冲突前置、爽点要狠要具体、台词带刺,敢写极端反应不点到为止(以克制为爽感的题材如虐文/世情除外,按 genre-catalog 走克制路线)。**优先级**:剧情/情绪模块.md 与 剧情/节奏.md 管情绪与节奏意图;文风.md 只管句长/标点/对话潜台词/原文锚点(自定义 设定/文风.md 优先于对标 文风.md;命中硬安全线的 ……/破折号/段间空行/碎句 仍归一、不让位)。与默认 Gates 冲突时按 narrative-writer.md 的优先级表决议(硬约束 banned-words/Gate F/万能比喻禁令/字数下限 不让位;句长/标点/对话潜台词/情绪交替由文风优先)。\n⚠️字数硬约束:本章必须达到细纲中设定的字数目标({从细纲读取}字)。细纲已给每个情节点字数预算:按预算分配笔墨——密点(爽点/打脸/反转)逐拍展开、疏点带过,让全章总量对齐章目标(别把每个密点都顶到上限堆成超长,也别平均用力导致整体偏短)。写完后立即用跨平台 Python 字符统计核对(命令见 narrative-writer 定义;勿直接用 python3,Windows 上会触发 Microsoft Store 占位程序、exit 49 失败,按 python3→python→py 探测可用解释器);macOS/Linux 可用 wc -m 备选;禁止 wc -c 或模型估算。字数未达标禁止结束本章。")执行正文写作,输出写入正文/第XXX章_章名.md。如 narrative-writer agent 未部署,由主线程直接写作。 - 字数验证(写作完成后的第一件事):优先用跨平台 Python 字符统计本章实际字数
for PYBIN in python3 python py; do "$PYBIN" -c "" 2>/dev/null && break; done; "$PYBIN" -c "from pathlib import Path; print(len(Path('正文文件路径').read_text(encoding='utf-8')))"(勿直接用python3:Windows 上它会触发 Microsoft Store 占位程序、exit 49 失败,探测会按python3→python→py选可用解释器);macOS/Linux 可用wc -m备选。如果字数 < 细纲目标的 90%,对照情节点字数预算定位欠账:细纲已按预算编排(Σ≥章目标),欠字几乎总是某些密点被写成了带过——找出这些点,一次性重写到各自预算(补具体事例、慢镜头逐拍展开),疏点保持带过,按 plot-core-methods 信息密度高低交替、不均匀注水(低压/关系/信息整理章欠字则补铺垫/互动/表演 beat,不强塞密点——低密点是这类章节定位的设计而非欠账)。一次重写到位,不逐点挤牙膏反复回炉;确属细纲预算不足(Σ<章目标 的规划疏漏)时才回细纲补展开点。旧细纲无 per-point 预算时,先按功能标签派生临时预算(爽点/打脸/反转=密、过场/赶路=疏)再定位欠账。如果字数 > 章目标×1.1,按高侧收敛:压过场、合并疏点、删过渡(镜像细纲高侧规则),不删主线爽点凑数。90% 只是放行下限、不是写作目标,理想落在 [章目标, 章目标×1.1]。重写后重新统计,落进区间再进入步骤 9。 - 检查:章尾是否有往下看的理由(低压/过场章弱钩子或留阶段目标即可,不强求爽点)、爽点是否到位(按章节定位,高压/推进章必查)。两条可证伪核对(不达标→修复):① 爽点出手前是否有可指认的危机/期待段落(指到具体情节点)?指不出=空洞 → 回步骤 8 补铺垫情节点(plot-emotion-system 倒推法);② 装逼/打脸/揭露章,在场配角是否写出差异化反应(集体震惊/各异),还是只写主角动作?没有 → 补在场配角反应(plot-core-methods)
- 元信息扫描:检查标题行以外的正文,命中
第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者时必须改写为场景内表达;只有角色在故事世界内真实阅读/讨论“第X章”文本,或真实身为作者/读者并谈论读者身份时例外。 - 禁用词扫描:对照
references/banned-words.md检查本章,一级词(高频AI腔)命中即替换;二级词(低频/语境相关)高频出现时替换,偶发可参考references/anti-ai-writing.md定性裁定 - 更新追踪:写完后即时更新
追踪/伏笔.md(新增/回收伏笔)、追踪/时间线.md(记录事件时序)和追踪/角色状态.md(如本章引起角色状态变化——身份、能力、关系、公众形象——则更新对应角色条目并追加变更记录)。本章若首次引入会复用的具名角色/势力,按 Phase 3「细纲后设定补全」规则补建对应设定/档案。角色状态更新规则详见 state-tracking.md。 - 中途快照(长篇写作安全网):每连续写完 3 章,在继续前执行以下快照操作:
- 将当前进度写入
追踪/上下文.md(只更新进度元信息——当前位置、最近决策、待处理线索——不重复角色状态/伏笔的具体内容) - 用
ls -la 正文/确认最近 3 个章节文件已成功写入磁盘且大小正常(>100 bytes) - 如果发现文件缺失或大小异常,立即重新写入
- 快照完成后可继续写作
日更模式:此步骤自动跳过——workflow-daily Step 2 已按章更新上下文.md。
写作技巧提醒
| 场景 | 技巧 |
|---|---|
| 开篇 500 字 | 必须有钩子,不能从天气/风景开始(除非反差极大) |
| 对话 | 推进剧情或揭示性格,不能只为了凑字数 |
| 打斗 | 不要流水账,写策略和反转,不写「你一拳我一脚」 |
| 日常 | 日常要有人物互动和伏笔,不能只是「吃饭睡觉」 |
| 爽点释放 | 铺垫要充分、释放要干脆,读者等得越久释放越要爽 |
| 爽点密度 | 高压/推进章每 3000-5000 字一个「爽」的情绪节点;低压/关系/修炼/信息整理章不强求,但每章仍要有往下看的理由(见 references/outline-structure-theory.md「章节定位与张弛」) |
| 公式约束 | 参考 genre-writing-formulas.md 中的创作公式 |
| 章尾 | 每章结尾都要有让读者想翻下一页的东西 |
| 情绪验证 | 写完每章回头检查:读者到这里应该感受到什么?感受到了吗?没感受到 → 按章节定位补:高压/推进章补冲突或钩子,低压/关系章补关系或情绪质感,别一律加爽点 |
字数硬约束
| 节奏 | 最低字数 | 说明 |
|---|---|---|
| 高速推进 | ≥ 2000 字/章 | 每章一个明确事件 |
| 正常节奏 | ≥ 3000 字/章 | 主线 + 少量副线 |
| 舒缓铺垫 | ≥ 3000 字/章 | 人物互动 + 伏笔 |
| 高潮爆发 | ≥ 2000 字/章 | 集中释放、不拖沓 |
默认最低字数:3000 字/章。细纲另有标注时以细纲为准。低于最低字数的章节必须补足后再继续。
追踪文件归档
每完成 50 章或一个卷结束时,对 追踪/上下文.md 做一次轻量归档:保留最近 5 章详记,将更早内容压缩到 追踪/归档/第XXX-YYY章.md,并在上下文中保留归档索引。伏笔、时间线、角色状态仍以当前文件为准,不把活跃线索移入归档。
Phase 5:质量检查
检查两个维度:(1) 情绪交付——每章是否交付了细纲中规划的目标情绪?(2) 技术质量——一致性、格式、禁用词。参考 references/quality-checklist.md 中的通用检查和长篇专项清单。
正文元信息扫描:质量检查必须覆盖标题行以外的正文,发现 第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者 这类写作工程词时,先改成角色当下可感知的事件、物件、动作或相对时间,再进入其他检查;故事内真实阅读/讨论“第X章”或真实读者身份语境除外。
确定性收尾:本批正文写完后,对所有新写正文文件,先运行 node scripts/check-ai-patterns.js --check 正文/第XXX章_*.md 报告需按语义/功能改写的四类问题:① 先否定再肯定的高危 AI 句式(删否定铺垫,直接写后项);② 破折号(按功能改写:打断→动作 beat/短句,拖长音→省略或动作,插入说明→逗号/冒号,不要一律改句号);③ 碎句号(连续短叙述句无呼吸,按目标句长合并成中长句);④ 长段落(>200 字,按镜头/新动作/视线切换断段)。①② 必须回正文改掉、复扫到 0;③④ 是提示——确属问题就改,justified 的长推理/氛围段可保留。再运行 node scripts/normalize-punctuation.js 正文/第XXX章_*.md(写模式,默认 --quote-mode keep)做机械兜底:清除残留的 ……、漏网破折号 ——/—、双连字符 -- 和独立行 ---,防止长篇累积横线和长省略;数字区间不设例外;盐言「」引号不受影响。narrative-writer agent 不运行这些脚本,由主会话在 agent 返回后针对实际落盘文件运行。
退化防护(弱模型必查):正文落盘后再跑 node scripts/check-degeneration.js --check 正文/第XXX章_*.md,确定性检测模型退化——逐字复读/打转、末尾截断、元信息泄漏(作为AI/我无法续写/(此处省略)/乱码 �)、工程词漏进正文(细纲/情节点/本章/下一章/任务描述 这类写作工程词破坏代入感,标题行除外)。这是模型无关的外部检查:退化的模型自己发现不了,只能靠脚本兜(弱模型如 m3/GLM 概率性退化)。命中硬信号(JSON 标 severity: blocking:复读/截断/作为AI类拒绝语/tier1 纯工程词如 细纲/情节点/卷纲/功能标签,对话行里的 tier1 工程词降级为 advisory)即只重写受影响的那一章,把证据当约束回喂 narrative-writer(如「检测到复读 '…',重写本章、删掉重复」),最多重写 2 次;仍命中就停下,把证据报给用户(第N章 行M:'…' 复读K次),由用户决定重写/跳过/手改——不擅自建议换更强模型。tier2 章节/歧义词(severity: advisory:本章/下一章/读者/伏笔/任务描述 等,检测器消息会标『例外:…』)只是提示、不自动回炉——先按例外条款自查(角色真在读「第X章」、故事内系统/界面用语就保留),确属泄漏才改写。检测器对体裁内的排比/复沓/弹幕刷屏/重复台词保守豁免(短句与对话不算退化),只报告不改写。
Agent 调用:consistency-checker
质量检查阶段,如果项目已部署 consistency-checker agent(优先检查 .claude/agents/consistency-checker.md 是否存在;不存在时再检查 .opencode/agents/,再不存在时检查 .codex/agents/),spawn Agent(subagent_type: "consistency-checker", prompt: "项目目录:{dir}\n检查范围:{本次写作的章节}\n检查类型:事实冲突+伏笔断线+角色属性不一致") 执行一致性检查,获取 S1-S4 分级报告。如 agent 不可用,由主线程参照 quality-checklist.md 直接检查。
Agent 调用:narrative-writer(去AI味审查)
质量检查阶段,如果项目已部署 narrative-writer agent(优先检查 .claude/agents/ 下的 narrative-writer.md 是否存在;不存在时再检查 .opencode/agents/,再不存在时检查 .codex/agents/),可 spawn Agent(subagent_type: "narrative-writer", prompt: "项目目录:{dir}\n任务描述:审查+去AI味\n检查范围:{本次写作的章节}\n删除优先:每条 AI 味项先判能否删除——删后不丢伏笔/钩子/角色/情节/必要信息的直接删,会丢才润色(删除受比例上限与字数下限约束,跌破下限改降AI重写)\n必须检查:先否定再肯定的翻转句式;发现后直接改成后项或动作细节") 执行文字质量审查和去AI味检查。如 agent 不可用,由主线程直接执行。
检查后更新追踪文件:
- 更新
追踪/伏笔.md中的过期伏笔和回收状态 - 更新
追踪/时间线.md中的时间线疑点
流程衔接
流水线: 长篇 位置: 写作(第 3/3 步)
| 时机 | 跳转到 | 命令 |
|---|---|---|
| 写完,去 AI 味 | story-deslop | /story-deslop |
| 想对比参考书 | story-long-analyze | /story-long-analyze |
| 需要市场方向 | story-long-scan | /story-long-scan |
| 太长,适合短篇 | story-short-write | /story-short-write |
参考资料索引
按场景加载,不一次全部加载。
Phase 1:选题方向
| 场景 | 加载文件 |
|---|---|
| 确定题材类型 | references/genre-catalog.md |
| 判断市场方向 | references/genre-readers.md |
| 特殊题材考量 | references/plot-special-topics.md |
| 女频长篇(题材/文案/平台/感情线) | references/female-audience-writing.md |
Phase 2:核心设定
| 场景 | 加载文件 |
|---|---|
| 设定人物 | references/character-basics.md |
| 设计关系 | references/character-relations.md |
| 题材框架与定位 | references/genre-catalog.md + references/genre-core-mechanics.md |
| 创建 artifact | references/artifact-protocols.md |
Phase 3:大纲搭建
| 场景 | 加载文件 |
|---|---|
| 搭建大纲 | references/outline-methods.md |
| 设计矛盾与结构 | references/outline-conflict.md |
| 深度结构设计 | references/outline-structure-theory.md |
| 节奏与升级感 | references/outline-rhythm.md |
| 小纲与卡文 | references/plot-core-methods.md |
| 选择叙事框架 | references/plot-frameworks.md |
| 题材写作公式 | references/genre-writing-formulas.md |
| 黄金三章 | references/opening-design.md |
| 情绪弧线 | references/emotional-arc-design.md |
| 反转设计 | references/reversal-toolkit.md |
Phase 4:正文写作
| 场景 | 加载文件 |
|---|---|
| 章节钩子 | references/hooks-chapter.md |
| 悬念设计 | references/hooks-suspense.md |
| 段落级钩子 | references/hooks-paragraph.md |
| 题材风格 | references/style-genre-modules.md |
| 打斗/装逼 | references/style-combat-face.md |
| 写作技法 | references/style-craft.md |
| 商业创作核心方法 | references/commercial-core-methods.md |
| 对话 | references/dialogue-mastery.md |
| 人物深化 | references/character-design-methods.md |
| 情绪技法 + 叙事单元 | references/plot-emotion-system.md + references/emotional-methods.md |
| 写作技法全程参考 | references/writing-craft.md |
| 格式与结构规范 | references/format-and-structure.md(仅对话/段落格式适用长篇) |
| 状态追踪协议 | references/state-tracking.md |
Phase 5:质量检查
| 场景 | 加载文件 |
|---|---|
| 质量检查 | references/quality-checklist.md |
| 禁用词扫描 | references/banned-words.md |
| AI句式脚本复扫 | scripts/check-ai-patterns.js |
| 去AI味 | references/anti-ai-writing.md |
按主题快速定位(横切主题)
有些主题横跨多个阶段、散在多个文件里。下表给每个主题一个权威文件(先读它,通常够用),配套文件只在需要那个角度时再加载。括号是该文件里对应的小节。
| 主题 | 权威文件(先读) | 配套文件(按角度补充) |
|---|---|---|
| 爽点(按意图分流) | references/plot-emotion-system.md(爽点设计体系:本质/六种类型/倒推法——"怎么设计爽点"先读这个) | 翻盘/高潮式爽点→references/plot-core-methods.md(假胜→崩解)· 打脸/装逼释放→references/style-combat-face.md· 题材打脸逆袭公式→references/genre-writing-formulas.md· 爽文循环/多层→references/outline-methods.md·references/outline-conflict.md |
| 情绪模块 | 对标/{书名}/剧情/情绪模块.md(项目/书级权威);无对标或设计新模块时再读 references/plot-emotion-system.md | references/outline-rhythm.md 只作理论参考;不得覆盖对标书权威模块 |
| 节奏 | 对标/{书名}/剧情/节奏.md(项目/书级权威);无对标或设计新节奏时再读 references/outline-rhythm.md | references/plot-core-methods.md 只作理论参考;不得覆盖对标书权威节奏 |
| 高潮 | references/plot-core-methods.md(高潮构建公式:蓄能→假胜→崩解) | references/outline-rhythm.md(高潮分类与反推)· references/outline-methods.md(八节点故事结构:结构定位) |
| 金手指 | references/plot-special-topics.md(金手指拆分理解与战力防崩 + 进阶设计) | references/outline-conflict.md(金手指与身份:四点统一) |
| 感情线 | references/character-relations.md(好感度体系/四阶段 + 男女频差异) | references/outline-conflict.md(感情线设计)· references/style-combat-face.md(后宫文女主 / 男频极简爱情线构型)· references/plot-special-topics.md(爱情线提纯策略) |
| 反转 | references/reversal-toolkit.md(反转类型/铺垫/有效性自检) | references/plot-core-methods.md(假胜:先给希望再击碎) |
| 人物 | references/character-basics.md(主角/配角/反派/动机模板速填) | references/character-design-methods.md(三层标签反差/九维深化)· references/character-relations.md(关系类型/感情线) |
| 女频写作 | references/female-audience-writing.md(女频长篇:核心原则/文案/题材/感情线长线/平台) | references/genre-readers.md(读者心理/平台差异)· references/character-relations.md(感情线总框架) |
| 去AI味 | references/anti-ai-writing.md(AI指纹/核心规则/Show Don't Tell) | references/banned-words.md(禁用词扫描)· references/quality-checklist.md(成稿检查) |
语言
- 跟随用户的语言回复,用户用什么语言就用什么语言回复
- 中文回复遵循《中文文案排版指北》
Related skills
More from worldwonderer/oh-story-claudecode and the wider catalog.
story-deslop
网文去AI味。检测并清除文本中的AI写作痕迹,让文字回归自然、非模板化。触发方式:/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」。
story-long-analyze
长篇网文拆文。深度拆解爆款长篇小说的黄金三章、人设架构、爽点设计、节奏控制。单一深度拆解管道:跑完黄金三章(Stage 1)后产出快速预览报告并询问是否继续全量拆解,确认后从 Stage 2 续跑逐章摘要、聚合分析、设定关系、汇总报告,全程产物落盘 拆文库/{书名}/。触发方式:/story-long-analyze、/长篇拆文、「帮我拆这本书」「拆这本书」「分析黄金三章」「深度拆解」「完整拆解」「系统拆解」或提供小说文本文件路径——全部进入同一管道。
story-short-write
短篇网文写作。辅助短篇小说创作,从构思到成稿,聚焦情绪拉扯与节奏把控。触发方式:/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。
story-long-scan
长篇网文扫榜。分析起点、番茄、晋江等平台排行榜数据,提炼市场趋势与热门题材。触发方式:/story-long-scan、/长篇扫榜、「长篇什么火」「起点排行」。
story-short-analyze
短篇网文拆文。拆解爆款短篇小说(番茄短篇 / 故事会 / 知乎盐选 / 追妻 / 世情 / 重生 / 虐渣等通俗题材)的故事核、结构、情感线、反转设计、写作手法、共鸣层次。单一全量拆解管道:跑完 Stage 2-6 产出完整拆文报告,落盘到 拆文库/{书名}/,下游 story-short-write 同时读拆文报告 + 情节节点 + 写作手法 + 原文 + _meta.json 写下一篇。触发方式:/story-short-analyze、/短篇拆文、「拆短篇」「拆这篇短文」「短篇拆文」「精细拆解短篇」「8000 字短篇拆解」「番茄短篇拆文」「故事会拆解」「盐言故事拆解」「分析这篇短篇」——均进入同一管道。
browser-cdp
Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions. Covers: launching Chrome in debug mode, opening URLs, waiting for page load, evaluating JavaScript, taking snapshots, and extracting auth tokens. Trigger phrases: browser automation, CDP, agent-browser, 浏览器操作, 操作浏览器, Chrome CDP, 复用登录态, extract token from browser.