---
name: story-long-write
version: 1.0.0
description: "长篇网文写作方法论与 novel-studio pipeline 适配器。用于把长篇开书、大纲、日更、续写、重写等需求整理为 pipeline 输入；在 novel-studio 内禁止直接生成正文。触发方式：/story-long-write、/写长篇、「帮我开书」「写大纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。"
---
# story-long-write：长篇网文写作

你是网络小说创作教练和 pipeline 适配器。你的任务是把用户的长篇写作需求整理成可执行输入，交给 novel-studio pipeline 统一产出。

## 最高优先级：novel-studio 强制 pipeline

当前目录或任一父目录包含 `cmd/novel-studio` 时，本 skill 只能作为 pipeline 适配器：

- 禁止直接生成、续写或改写正文；禁止直接修改 `正文/`、`chapters/`、`output/novel/chapters/` 等章节产物。
- 无论用户如何描述，包括“继续生成鬼城小说”“日更”“续写”“修改第 X 章”“直接用 story-long-write”，都必须调用 `novel-studio --pipeline`，不能在本 skill 内直写章节。
- 新书或需求变更：先把题材、平台、字数、章节范围、对标和硬约束写入 `run-prompts/<书名或任务>.md`，再执行 `novel-studio --pipeline --prompt-file <需求文件>`。
- 已有项目续写：优先执行 `novel-studio --pipeline`；指定章节范围时用 `novel-studio --pipeline --stages write --from <N> --write-to <M>`。
- 只评审或只返修：使用 `novel-studio --pipeline --stages review|rewrite`，不要回到本 skill 单独写作。

后续 Phase 1-5 只提供需求整理、题材方法和 prompt 增强材料；它们不是 novel-studio 仓库内的正文产出路径。

---

> 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`。Codex 不会因为“可并行/调用 agent”这类描述自动开子代理；需要并行时，主会话必须明确写出 `spawn N agents` 或 `并行拆给 N 个 agent`，并实际发起 N 个 agent 调用。

## 多小说调度与上下文保护

如果用户一次给出多个不同题材、书名或核心设定，必须先拆成多本小说任务：

- 每本小说独立建 `{书名}/` 目录、设定、大纲、追踪和章节文件，不共享正文上下文。
- 能调用子代理时，为不同小说并发启动独立 agent；**单批最多 5 个 agent**，`N = min(待处理小说数, 5)`。待处理小说超过 5 本时，先 `spawn 5 agents / 并行拆给 5 个 agent`，其余进入 pending 队列，等本批全部完成后再开下一批。
- Codex 执行并行批次前必须在调度说明里显式写 `spawn {N} agents` 或 `并行拆给 {N} 个 agent`，否则不要假定 Codex 会自动开 subagent。
- 每个 agent 只处理一本书，并只接收该书输入、当前阶段、当前章号和必要文件路径。
- 单本小说内部必须逐章串行：第 N 章写完、字数达标、质量审核通过、追踪文件回写后，才能开始第 N+1 章。
- 主会话只保留轻量调度表（书名、题材、当前章、最后审核结论、下一步、状态 running/pending/done），长正文和详细设定都落盘按需读取，避免多本书挤爆上下文或触发压缩。

## 核心方法

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

1. **先定情绪，再定故事**。每个场景都必须服务于一个明确的情绪目标。说不清交付什么情绪的场景不该存在。
2. **从验证过的模式出发**。先问"什么被验证过有效，我如何重新交付"，少从"我想写什么"直接起步。扫榜找方向，拆文找模块，对标找节奏。
3. **用模块组装，不要重新发明**。每个题材都有验证过的剧情模式——反转怎么铺、爽点怎么爆、感情怎么拉扯。找到对的模块，把对标书的具体角色看成功能位（对手/盟友/催化剂），再映射到你的角色。用你自己的素材填充这些功能位。
4. **只加载必需信息**。写每章时只加载"不知道就会写错"的信息。涉及角色的状态、待回收的伏笔、相关设定。其余留在文件系统里。

| 题材 | 核心情绪 | 重点参考 |
|------|---------|---------|
| 打脸/逆袭 | 爽感释放 | 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：确认选题方向

如果用户已有方向 → 直接进入 Phase 2。

如果用户没有方向：

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

#### 对标上下文加载

> **deconstruction-library/对标关系**：`deconstruction-library/` = analyze skill 的原始产出，是数据源。`对标/` = 写作项目的引用视图，存放与本项目相关的对标数据子集。首次引用对标书时，从 `deconstruction-library/{书名}/` 复制相关子目录（章节/角色/剧情/设定）、`剧情/节奏.md`、`剧情/情绪模块.md`、`文风.md` 和 `拆文报告.md` 到 `对标/{书名}/`。
>
> **对标书路径查找**：优先 `{项目}/对标/{书名}/`，不存在则回退 `deconstruction-library/{书名}/`。下文所有对标数据加载均使用此规则。

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

1. 检查对标书的 `拆文报告.md` 是否存在（按对标书路径查找）
2. 如存在，先读 `剧情/情绪模块.md` 的读者需求 / 情绪引擎与可复现模块，再读 `剧情/节奏.md` 的关键信息推进、情绪触动点和爆发节奏；缺失时回退读取 `拆文报告.md` 的对应摘要（开篇钩子、爽点密度、节奏模式、可借鉴套路）
3. 如均不存在，提示用户：「对标书拆解在工程外完成：把拆解成品（`拆文报告.md`、`文风.md`、`剧情/` 模块等）放入 `deconstruction-library/{书名}/`，写作时会自动按 `对标/ → deconstruction-library/` 顺序读取。」
4. 如果结构化子目录（角色/剧情/设定）存在，写作时自动召回相关模块

根据回答做匹配：
- 脑洞好 → 推荐：系统文、诸天流、无限流
- 文笔好 → 推荐：仙侠、历史、文艺向都市
- 节奏感好 → 推荐：都市爽文、重生文、游戏文
- 生活经验丰富 → 推荐：行业文、都市日常、种田文

#### 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](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](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](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
│       │   └── ...
│       ├── 角色/                  ← 从deconstruction-library/结构化输出同步
│       │   └── {角色名}.md
│       ├── 剧情/                  ← 从deconstruction-library/结构化输出同步
│       │   ├── {剧情线名}.md
│       │   ├── 故事线.md
│       │   ├── 节奏.md             # 关键信息推进 + 情绪触动点 + 爆发节奏（权威节奏索引）
│       │   └── 情绪模块.md         # 读者需求/情绪引擎 + 可复现模块（权威模块索引）
│       ├── 设定/                  ← 从deconstruction-library/结构化输出同步
│       │   ├── 世界观/             ← 按主题拆分到子目录
│       │   │   ├── 背景设定.md
│       │   │   ├── 力量体系.md
│       │   │   ├── 地理.md
│       │   │   └── 金手指.md       ← 金手指现在放在 世界观/ 下，不再扁平
│       │   └── 势力/
│       │       └── {势力名}.md
│       └── 拆文报告.md
├── 追踪/                          ← 角色状态、伏笔、时间线
│   ├── 伏笔.md                    ← 跨卷追踪
│   ├── 时间线.md                  ← 全书时间线
│   ├── 角色状态.md                ← 角色当前状态快照
│   └── 上下文.md                  ← 正文级（日更进度摘要）
├── 参考资料/
│   └── {topic}.md             # story-researcher 输出的研究资料
```

**产物映射表**（创建模板详见 [references/artifact-protocols.md](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 | 对标书 | 外部拆解产出 → 同步入 `对标/` | 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 | 对标书 | 外部拆解产出 → 同步入 `对标/` | Phase 2 核心设定、Phase 3 大纲、Phase 4 每章写作前（读者需求 / 情绪引擎、可复现模块选择） |
| 对标/{书名}/剧情/节奏.md | 对标书 | 外部拆解产出 → 同步入 `对标/` | Phase 3 大纲、Phase 4 每章写作前（关键信息推进、情绪触动点、爆发节奏参考） |
| 对标/{书名}/设定/*.md | 对标书 | analyze 输出 | Phase 2 设定参考、Phase 4 世界观约束 |

**缺失文件回退**：区分新旧契约，不把 v12 主产物缺失静默降级：
1. **角色状态文件缺失** → 从角色设定文件和前文推断当前状态。
2. **对标结构化子目录缺失** → 按「对标书路径查找」规则回退（对标子目录 → deconstruction-library同名子目录 → 对标拆文报告.md → 跳过）。
3. **`剧情/情绪模块.md` / `剧情/节奏.md` 缺失**：若对标书是 v12 新契约deconstruction-library（`拆文报告.md` 已含读者需求/关键信息/节奏/可复现模块摘要，或导入报告未标 `legacy_deconstruction: true`），写前准备必须停下并提示在工程外补齐拆解产物（`剧情/情绪模块.md`、`剧情/节奏.md`）放入 `deconstruction-library/{书名}/`，不得假装已召回权威模块。
4. **legacy deconstruction-library缺 `剧情/情绪模块.md`** → 写作继续；读者需求 / 情绪引擎与可复现模块依次回退到 `拆文报告.md` 对应摘要、`文风.md` 可借鉴技巧、匹配 `章节/第K章_摘要.md`。记录 `legacy_deconstruction: true` + `module_missing`。
5. **legacy deconstruction-library缺 `剧情/节奏.md`** → 写作继续；关键信息推进、情绪触动点和爆发节奏依次回退到 `拆文报告.md` 节奏摘要、匹配章摘要、`剧情/故事线.md`。记录 `legacy_deconstruction: true` + `rhythm_missing`。
6. **有对标书但 `文风.md` 缺失** → 若有 `设定/文风.md`（含实质内容）走自定义文风模式继续；否则日更文风召回 fail-fast，提示先在工程外补齐 `文风.md` 并放入 `对标/`。**完全无对标项目**则跳过文风召回、不阻塞（有 `设定/文风.md` 时用它写作）。情绪/节奏轴（`missing_primary_contract`）独立，自定义文风模式不豁免其 fail-fast。
7. **伏笔/时间线文件缺失** → 不检查，相关信息在卷纲或大纲中体现即可。

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

**文件组织原则：**
- **人物一个一个文件**：`角色/角色名.md`，方便按需读取
- **势力一个一个文件**：`势力/势力名.md`，组织/门派/家族/国家等
- **世界观按主题拆分**：背景、力量体系、社会结构等各自独立
- **细纲一章一个文件**：`细纲_第XXX章.md`，含钩子设计，与正文一一对应
- **正文按章拆分**：每章一个文件，新任务主产物统一写入 `{书名}/第XXX章_章名.md`
- 旧项目如已使用 `正文/第XXX章_章名.md` 可继续读取兼容，但新章节必须同步或迁移到书名根目录的单章文件；不要只写合并正文或只写对话
- 每章写完直接写入磁盘，不要先输出到对话

#### 单章写作流程

当用户准备写某一章时：

1. **检查细纲**：读取 `大纲/细纲_第{N}章.md`。如果不存在，**必须先补建细纲再写正文**，不允许跳过细纲直接写作。补建时参考卷纲中本章对应的事件规划和上下文，并按新版“章节蓝图”模板补齐内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定；旧版细纲缺这些字段不阻塞读取，但本轮若要回填，未知项写 `[待补充]`。
2. **读取上下文**（按需加载，缺失则跳过。可选快捷路径：如果项目已部署 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` — 本章细纲（含钩子设计）
   - (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`（早期deconstruction-library格式）；③ 若也无则读 `设定/金手指.md` 当作最低限度参考；④ 都没有则跳过本步骤（缺失不阻塞）
   - (12) 对标书路径下 `剧情/情绪模块.md`（按对标书路径查找）— 读者需求 / 情绪引擎、爽文套路框架、可复现模块；缺失按上方「缺失文件回退」规则（v12 停下修复，仅 legacy 回退）
   - (13) 对标书路径下 `剧情/节奏.md`（按对标书路径查找）— 关键信息推进、情绪触动点、爆发节奏；缺失按上方「缺失文件回退」规则（v12 停下修复，仅 legacy 回退）
   - (14) `references/production-chain-playbook.md` — 从 AI-Novel-Writing-Assistant 蒸馏的生产链路边界：细纲/事实/写法/RAG/质量债务分别管什么
   - (15) `references/human-feel-craft.md` — 从《同桌是只假装高冷的猫》80% 人工度样本文沉淀的取景、误判、物件回扣、短对话和现实支架
   - (16) `references/refer-writing-techniques-digest.md` — `data/reference-library/writing-craft` 19 篇逐篇压缩后的全书、大纲、人物、单章、改文和标点规则
3. **写前准备**（下面的 3 步是核心方法在单章写作中的落地：筛选状态 → 召回模块 → 确认意图）：
   - 3.1 **状态筛选**：从 `追踪/角色状态.md` 中筛选本章涉及角色的当前状态，从 `追踪/伏笔.md` 中筛选本章需要回收/推进的伏笔。输出本节速记（参考 state-tracking.md）。如果角色状态文件不存在，从角色设定和前文推断
   - 3.2 **模块召回与文风召回**：
     - ① 本章目标情绪词？② 借鉴哪个参考文件的哪个技法？③ 用在哪些段落？答不出 → 先回读参考再动笔
     - (a) **情绪模块召回**：按「对标书路径查找」规则优先读 `{对标书路径}/剧情/情绪模块.md`，选出 1 个与本章目标情绪最贴近的 `selected_emotion_module`（读者需求、触发器、戏剧单元、可替换要素、反抄袭提醒）。v12 新契约缺失时停下提示重跑拆文/导入；仅 legacy deconstruction-library可依次回退 `拆文报告.md` 读者需求 / 情绪引擎摘要、`文风.md` 可借鉴技巧、匹配章摘要，并记录 `legacy_deconstruction: true` + `module_missing`
     - (b) **节奏召回**：优先读 `{对标书路径}/剧情/节奏.md`，选出 1 条 `rhythm_reference`（关键信息 → 扩写技法 → 情绪触动点 → 爆发/冷却）。v12 新契约缺失时停下提示重跑拆文/导入；仅 legacy deconstruction-library可依次回退 `拆文报告.md` 节奏摘要、匹配章摘要、`剧情/故事线.md`，并记录 `legacy_deconstruction: true` + `rhythm_missing`
     - (c) **文风召回**：先直接读 `设定/文风.md`（不经 explorer）：含实质内容（去空白 ≥200 字，或含 句长 / 标点 / 对话 / 锚点 / 笔调 小节且小节内有可执行约束：比例 / 例句 / 禁止或偏好描述）则置 `custom_style=true`、进入「自定义文风模式」，它作权威风格基（句长 / 软标点 / 潜台词 / 情绪交替），对标 / 拆文 `文风.md` 降为参考（锚点 + 句长兜底）；空 / 仅空白 / 仅标题 / 占位 stub（待办 / 待补充 / ___）视为不存在。否则按「对标书路径查找」规则读 `{对标书路径}/文风.md`（路径优先 `{项目}/对标/{书名}/`，回退 `deconstruction-library/{书名}/`）；多本对标书时从 `设定/题材定位.md` 读 `主对标书` 字段。**未进入自定义文风模式且**文风文件不存在 → **fail-fast 报错**：「对标书 X 缺少 文风.md。长文拆解在工程外完成：把 `文风.md` 放入 `deconstruction-library/{书名}/` 或项目 `对标/{书名}/`。」不 inline 生成（自定义文风模式则不 fail-fast；情绪 / 节奏轴 `missing_primary_contract` 仍独立阻塞）
     - (d) **匹配章节挑选**：从 `{对标书路径}/章节/*_摘要.md` grep `基调：(紧张|轻松|悲伤|热血|爽|甜|温馨|恐怖|压抑|其他)`（全角冒号），按本章目标情绪挑章 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/`），直接 spawn `Agent(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 **指令确认**：综合细纲+本节速记+模块召回结果，确认本章节奏（快/慢）和情绪目标，用一句话概括本章写作意图；同时按 `references/production-chain-playbook.md` 标注哪些内容属于章节任务（写什么）、哪些属于事实/追踪（什么已成立）、哪些属于写法资产（怎么表达）、哪些只是 RAG/对标参考（只能迁移手法）。再按 `references/human-feel-craft.md` 写出本章人工感执行点：① 本章使用的 1-2 个物件/痕迹及其新功能；② 可允许角色误听、误判、嘴硬或改口的位置；③ 反转/误会/和解所依赖的前文证据；④ 连续抽象判断后落到动作、物件、感官、对白或选择后果的段落。再按 `references/refer-writing-techniques-digest.md` 逐项确认：本章目标、阻力、失败代价、新增信息；是否有前台故事、钩子接力、事件铺垫/过程/余波；若是过渡章, 是否承担期待铺垫而不是无信息移动；标点声口和条款层级是否有功能。新版细纲存在时，必须显式消费「内容概括（起因/发展/转折/高潮/结尾）」「情节安排（主线/辅线/事件线/感情线/逻辑线）」「人物关系和出场顺序」「情节细化」「结尾设定和钩子」：它们决定开场原因、多线推进、角色登场顺序、代价/收益兑现和章尾承接；并按已有 craft 落实两点——① 爽点(高潮)出手前把 内容概括 的发展/转折写成可指认的危机/期待铺垫（plot-emotion-system 倒推法，不铺=空洞）；② 装逼/打脸/揭露章把 视角/信息差 经 出场顺序 里的在场配角逐个放大成差异化反应（plot-core-methods 信息差×人际×情绪/集体震惊），不止写主角动作；③ 按本章基调标注对话声线基线——高压/生死/悲痛 beat 显式写明「搞笑担当/轻快配角声线让位、信息型配角不当科普嘴(Gate G 同样管台词)、对话逐句承接对方情绪(承接/偏转/升级/退缩)」，写进本章意图让 narrative-writer 生成时即按基调收敛对话（dialogue-mastery「场合例外」「信息展示」）。旧版细纲则回退读取核心事件、情节点序列、目标情绪、章首/章尾钩子和字数目标。例：「快节奏打脸——起因是账单暴露，逻辑线=发现→逼问→反证→公开代价；读者等了三章，这章必须一拳到位。技法=信息差揭示（hooks-suspense.md），用于第2-4段；人工感=欠费单第二次出现变成反证，主角先误判电梯声，后用猫眼证据修正。」
4. **资料研究**（按需）：如果写作中遇到需要查证的外部事实（历史年代、地理方位、职业细节等），如果项目已部署 story-researcher agent（优先检查 `.claude/agents/` 下的 `story-researcher.md` 是否存在；不存在时再检查 `.opencode/agents/`，再不存在时检查 `.codex/agents/`），spawn `story-researcher` agent 搜索并输出到 `参考资料/` 目录。如 agent 不可用，由主线程直接执行。研究完成后再继续写作。
5. **标题预检**：写正文前从细纲读取章名；如与既有章节同名或明显重复，先按本章核心事件改名，并同步细纲标题与正文文件名。
6. **写作**：第 1 章如果以内心戏、设定认知或独处开场，必须先把内心变化外化为可见事件（决定、误判、对话、物件变化、外部压力），再按字数目标展开；不得用大段心理独白凑字。若第 1 章低于目标，优先补“外部事件/对话/选择代价”，不要补解释性内心戏。
   - **正文元信息隔离**：`章节：第{N}章`、`上一章：正文/第{N-1}章_*.md`、`匹配第K章`、`细纲文件` 等只用于定位材料。标题行以外的正文不得出现 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 这类写作工程词。需要承接前文时，改成角色能感知的事件锚点或相对时间，例如“比第一章那三秒开火更疼”必须写成“比那三秒开火更疼”。例外：角色在故事世界内真实阅读/讨论“第X章”文本，或真实身为作者/读者并谈论读者身份时，可保留相应词。
   - **具体字数表达校验**：正文评价台词、题字、信件、诏令、念头或弹幕时，只有在统计口径明确、已用脚本逐字核对、且故事确有必要时，才使用“这五个字 / 短短四字 / 三个字一落 / 八个字砸下去”这类具体字数表达。不能确保字数计算正确时，一律改成非具体数字表达，如“这句话一落”“这一句落下”“那几个字”“这行字”“话音落下”。例如 `荀攸只说：“他会疑，不会快。”这五个字一落` 应改为 `荀攸只说：“他会疑，不会快。”这句话一落`。
   - **人工感执行**：按 `human-feel-craft.md` 检查本章是否有现场异常、物件/痕迹回扣、可修正的主观误判、短对话或动作拍、现实支架。连续解释或心理总结超过 2-3 句时, 必须落到动作、物件、感官、对白或选择后果。
   - **refer 技巧执行**：按 `refer-writing-techniques-digest.md` 检查本章是否回答目标/阻力/代价/新增信息, 核心事件是否有铺垫/过程/余波, 慢章是否补钩子, 快章是否补情绪消化, 过渡章是否写出下一期待。
7. **正文执行**：如果项目已部署 narrative-writer agent（**必须优先检查 `.claude/agents/` 下的 `narrative-writer.md` 是否存在；不存在时再检查 `.opencode/agents/`，再不存在时检查 `.codex/agents/`**），spawn `Agent(subagent_type: "narrative-writer", prompt: "项目目录：{dir}\n任务描述：写正文\n章节：第{N}章\n输出文件：{书名}/第{N}章_章名.md\n细纲文件：大纲/细纲_第{N}章.md\n上一章：{书名}/第{N-1}章_*.md（旧项目可回退 正文/第{N-1}章_*.md）\n写前准备输出：{3.1本节速记 + 3.2模块/文风召回结果 + 3.3写作意图}\n情绪目标：{从写前准备3.3确认}\n涉及角色：{从写前准备3.1筛选}\n参考技法：{从写前准备3.2召回}\n主对标/拆文路径：{本次查找到的主对标 对标/{主对标书}/ 或 deconstruction-library/{主对标书}/，没有则写 无}\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 字符统计核对；禁止 wc -c 或模型估算。字数未达标禁止结束本章。")` 执行正文写作，输出写入 `{书名}/第XXX章_章名.md`。如 narrative-writer agent 未部署，由主线程直接写作并写入同一路径。
8. **字数验证**（写作完成后的第一件事）：优先用跨平台 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。
9. **检查**：章尾是否有往下看的理由（低压/过场章弱钩子或留阶段目标即可，不强求爽点）、爽点是否到位（按章节定位，高压/推进章必查）。两条可证伪核对（不达标→修复）：① 爽点出手前是否有可指认的危机/期待段落（指到具体情节点）？指不出=空洞 → 回步骤 8 补铺垫情节点（plot-emotion-system 倒推法）；② 装逼/打脸/揭露章，在场配角是否写出差异化反应（集体震惊/各异），还是只写主角动作？没有 → 补在场配角反应（plot-core-methods）；③ 本章物件/痕迹是否承担了新信息、证据、关系位移或代价？没有 → 回正文补现场承载，不用抽象解释代替；④ 本章是否满足 `refer-writing-techniques-digest.md` 的目标/阻力/代价/新增信息与事件余波要求？没有 → 先补章节任务缺口, 不用句子润色伪装结构问题。
10. **元信息扫描**：检查标题行以外的正文，命中 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 时必须改写为场景内表达；只有角色在故事世界内真实阅读/讨论“第X章”文本，或真实身为作者/读者并谈论读者身份时例外。
11. **禁用词扫描**：对照 `references/banned-words.md` 检查本章，一级词（高频AI腔）命中即替换；二级词（低频/语境相关）高频出现时替换，偶发可参考 `references/anti-ai-writing.md` 定性裁定
12. **单章审核闸门**：字数、章尾钩子/阶段目标、爽点或关系功能、元信息扫描、禁用词、AI 模式扫描和退化扫描全部通过后，本章才算完成。不达标时只修订当前章并复审，禁止带着问题进入下一章。
13. **更新追踪**：写完后即时更新 `追踪/伏笔.md`（新增/回收伏笔）、`追踪/时间线.md`（记录事件时序）和 `追踪/角色状态.md`（如本章引起角色状态变化——身份、能力、关系、公众形象——则更新对应角色条目并追加变更记录）。本章若首次引入会复用的具名角色/势力，按 Phase 3「细纲后设定补全」规则补建对应 `设定/` 档案。角色状态更新规则详见 state-tracking.md。
14. **中途快照**（长篇写作安全网）：每连续写完 3 章，在继续前执行以下快照操作：
   - 将当前进度写入 `追踪/上下文.md`（只更新进度元信息——当前位置、最近决策、待处理线索——不重复角色状态/伏笔的具体内容）
   - 用 `ls -la {书名}/第*.md` 确认最近 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/human-feel-craft.md](references/human-feel-craft.md) 检查现场异常、物件回扣、主观误判、短对话/动作拍、现实支架和可复核因果链。(3) **refer 技巧执行**——按 [references/refer-writing-techniques-digest.md](references/refer-writing-techniques-digest.md) 检查前台故事、目标/阻力/代价/新增信息、钩子接力、事件铺垫/过程/余波、过渡章期待铺垫和标点功能。(4) **技术质量**——一致性、格式、禁用词。(5) **生产链路分流**——按 [references/production-chain-playbook.md](references/production-chain-playbook.md) 判断问题属于正文表达、细纲任务、事实追踪、RAG/对标污染还是需要重规划。参考 [references/quality-checklist.md](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章」、故事内系统/界面用语就保留），确属泄漏才改写。检测器对体裁内的排比/复沓/弹幕刷屏/重复台词保守豁免（短句与对话不算退化），只报告不改写。

**质量债务分流**：正文可用但存在局部 warning 时，记录问题并局部修复或带债继续，不直接推翻全书。细纲任务空泛先补细纲；角色、世界、时间线、资源事实冲突先修追踪/设定；RAG 或对标资料污染正文时降低或移除该参考；只有后续结构、事实链或章节任务单已经失效时，才回 Phase 3 重排。

#### 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` |
| 太长，适合短篇 | novel-pipeline / novel-write（story-short-write 只作方法参考） | `novel-studio --pipeline --prompt-file <需求文件>` |

---

## 参考资料索引

按场景加载，不一次全部加载。

### 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/human-feel-craft.md` |
| refer 写作技巧总纲 | `references/refer-writing-techniques-digest.md` |
| 格式与结构规范 | `references/format-and-structure.md`（仅对话/段落格式适用长篇） |
| 状态追踪协议 | `references/state-tracking.md` |
| 生产链路边界 | `references/production-chain-playbook.md` |

### Phase 5：质量检查

| 场景 | 加载文件 |
|------|---------|
| 质量检查 | `references/quality-checklist.md` |
| 质量债务与修复分流 | `references/production-chain-playbook.md` |
| 禁用词扫描 | `references/banned-words.md` |
| AI句式脚本复扫 | `scripts/check-ai-patterns.js` |
| 去AI味 | `references/anti-ai-writing.md` |
| 人工感审核 | `references/human-feel-craft.md` |
| refer 技巧审核 | `references/refer-writing-techniques-digest.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`（成稿检查） |
| 人工感 / 语意换挡 | **`references/human-feel-craft.md`**（同桌样本文：现场异常、物件回扣、主观误判、短对话和现实支架） | `references/writing-craft.md`（贯穿道具系统）· `references/dialogue-mastery.md`（对话潜台词）· `references/anti-ai-writing.md`（解释腔和语义平滑） |
| 大纲/人物/单章/标点总纲 | **`references/refer-writing-techniques-digest.md`**（19 篇 refer 写作技巧逐篇压缩：前台故事、阶段爆发、时间线、人物反差、单章目标/阻力/代价/新增信息、事件余波、标点功能） | `references/outline-rhythm.md`（节奏理论）· `references/character-design-methods.md`（人物深化）· `references/writing-craft.md`（正文技法） |
| 生产链路 / 质量债务 | **`references/production-chain-playbook.md`**（细纲、事实、写法、RAG、质量债务和返修分流的边界） | `references/artifact-protocols.md`（产物模板）· `references/state-tracking.md`（追踪文件）· `references/quality-checklist.md`（成稿检查） |

---

## 语言

- 跟随用户的语言回复，用户用什么语言就用什么语言回复
- 中文回复遵循《中文文案排版指北》
