novelist-rewrite — 章节重写(三模式, 一站式)
入参 mode=detect|fix(默认 fix):
mode=detect — 只读诊断: 扫描全书, 产「建议重写章清单 + 理由 + 建议模式 A/B/C」, 不改任何文件(不派 chapter-writer, 不删章)。用于动手前先评估。
mode=fix(默认) — 执行三模式 A/B/C(现状), 走完整收尾链。
修复或重来。无论哪种模式, 重写的本质 = 让正文重新满足四要素与一致性约束。重写也是一站式: 重写正文后同样走完整收尾链(检查→审查→校对→去AIGC→定稿, 见工作流 step 4), 用户只需调 rewrite, 不必再分别调 check/proofread/humanize。涉及删除时, 破坏性操作必须先确认、先备份。
三模式的逐步操作细则见 references/rewrite-modes.md; 核心约束速览如下。
关键约束速览
| 场景 |
约束 |
| 模式A选章范围 |
只重写「冲突直接涉及」的章/段落, 禁无关章漫扩 |
| 模式B操作顺序 |
确认 → 备份(移入 .废弃/) → 清索引 → 回退状态源 → 重写; 任一步缺=未完成 |
| 模式C每章必做 |
重取/重定该章四要素, 禁跳章直接写 |
| 备份格式 |
移入 元数据/.废弃章节-<YYYYMMDD>/, 文件名不变便于恢复 |
| 收尾链(三模式通用) |
重写后必过 check→proofread→humanize→棘轮分门控; 不可跳 |
mode=detect — 诊断模式(只读)
扫描全书, 评估每章是否需重写(而非单点修), 产「建议重写章清单 + 理由 + 建议模式 A/B/C」。禁动任何文件(不派 chapter-writer, 不删章, 不改 章节/ 正文)。用户据此决定是否进 mode=fix。详细字段见 references/rewrite-modes.md。
三种模式(均归入 mode=fix)
模式 A — 按检查报告定点修复
- 读最新
元数据/检查报告/<...>.md(或先跑 novelist-check 生成)。
- 对每条 致命/重要 冲突, 定位涉及章节。
- 逐条派 chapter-writer 重写受影响段落/章节, prompt 附: 冲突点 + 正确事实(从事实源) + 修复要求。
- 重写后回写状态变更, 重跑 novelist-check 确认冲突清零。
模式 B — 从第 N 章起清空重写(破坏性)
- 硬停 确认 — 用
AskUserQuestion 明确: "将删除第 N 章及之后全部章节(共 X 章), 不可逆, 确认?"。未确认不动手。
- 先备份 — 把待删章节移到
元数据/.废弃章节-<日期>/(不是直接 rm), 留后悔余地。
- 清空 — 从
章节/_索引.md 移除第 N 章起的行; 对应正文文件已移入备份。
- 回滚状态源 — 把人物关系/世界观/伏笔回退到第 N-1 章末的状态(依据第 N-1 章四要素的事后状态)。
- 重写 — 从第 N 章起, 逐章走
novelist-write 完整流程(四要素 → chapter-writer → 回写)。
模式 C — 连续重写多章(第 A-B 章)
- 确认区间 [A, B]。
- 对区间内每章按顺序: 取该章原四要素(或与用户重定) → 派 chapter-writer 重写 → 回写状态。
- 区间外章节不动; 重写完跑 novelist-check 核对区间与上下文衔接。
工作流(统一)
- 解析 mode — 首 token 为
detect → mode=detect(进诊断分支, 见上「mode=detect 诊断模式」, 完成后直接 step 5 回报, 不走 step 2-4); 首 token 为 fix 或其他 → mode=fix(默认, 进 A/B/C)。判模式 — mode=fix 时从用户措辞判 A/B/C。不明确 → AskUserQuestion 让用户选模式 + 范围。
- 破坏性前置闸门 — 模式 B(或 C 含清空)必须先确认 + 先备份, 见上。
- 派 chapter-writer 重写 — 真实
Agent tool_use, 不亲自改正文。
- 生成后收尾链(同 write, 不可跳)+ 重写棘轮 — 重写的正文同样过三环才算定稿: a. 回写事实源 → b.
novelist-check 一致性(派 continuity-auditor, 致命冲突回 step 3 重写) → c. novelist-proofread 校对 → d. novelist-humanize 去 AIGC → e. 算定稿分(一致性×0.5+文字×0.2+人味×0.3, 纯算术)。棘轮(满分零容忍): 重写后定稿分必须 > 重写前那版(否则重写无效甚至改坏 → 回退或重做), 且 ==100 才定稿。==100 等价于一致性/文字/人味三项全满分(因加权和==100 ⟺ 各项==100); 任一项非满分 → 定稿分<100 → 不定稿。连续 3 次重写未达 ==100 → 硬停 转人工裁决。
- 回报 — mode=detect: 报告建议重写章清单+理由+建议模式; mode=fix: 列重写了哪些章、状态回退/更新、收尾链结果(检查/校对/去AIGC 各是否过, 定稿分是否 ==100)。
失败模式(触发 → 一线修复 → 仍失败兜底)
| 触发 |
一线修复 |
仍失败兜底 |
| 模式不明确 |
AskUserQuestion 让用户选 A/B/C + 范围 |
仍不明 → 不动手 |
| mode=detect 误动文件 |
detect 禁派 chapter-writer / 禁删章 / 禁改正文, 只产诊断报告 |
已动 → 撤回, 改为只产建议 |
| 模式 B 用户未明确确认删除 |
硬停, 必须显式确认才执行 |
不确认 → 取消, 一字不删 |
| 删错/删多了 |
从 元数据/.废弃章节-<日期>/ 恢复 |
备份也无 → 报告用户, 禁谎称已恢复 |
| 重写后与上下文衔接断裂 |
调整衔接段, 重跑 check |
断裂大 → 扩大重写区间 |
| chapter-writer 重写仍带原冲突 |
把冲突点更显式地写进 prompt 重派 |
连续 2 次未修复 → 硬停 转人工 |
| 模式A: check 仍有致命冲突(重写后未清零) |
遗漏冲突逐条加入 prompt 重派(一次只修一条) |
连续2次清零失败 → 硬停, 事实源本身矛盾, 需人工解设定冲突 |
| 重写棘轮不过(定稿分≤原版 或 <100) |
逐环定位拖分处: check低→补修; proofread低→重校; 人味低→重去AI(目标三项全 ==100) |
连续 3 次未满分 → 硬停 转人工 |
| 模式C: 某章与前章衔接断裂 |
调整该章四要素使衔接自然 → 重写该章 |
反复断裂 → 缩短区间逐章推进 |
反例黑名单(命中=错, 重来)
| # |
禁做 |
改为 |
| 1 |
模式 B 不确认就删章节 |
删除前必 AskUserQuestion 显式确认 |
| 2 |
直接 rm 删除, 无备份 |
先移入 .废弃章节-<日期>/ 再清 |
| 3 |
删章后不回退状态源 |
人物/世界观/伏笔回退到 N-1 章末 |
| 4 |
main 自己改写正文 |
派 chapter-writer(真实 Agent tool_use) |
| 5 |
重写后不重跑 check |
收尾必跑 novelist-check 确认 |
| 6 |
谎称已恢复但实际无备份 |
如实报告, 禁幻觉式合规 |
| 7 |
mode=detect 派 chapter-writer / 删章 / 改正文 |
detect 只产诊断建议, 不动文件 |
| 8 |
定稿分 <100 就谎称定稿 |
棘轮 ==100(三项全满分) 才定稿; 否则 硬停 转人工 |
修复依据 novelist-check 报告; 重写派 chapter-writer; 破坏性删除先确认先备份; 收尾回 check 闭环; mode=detect 只读不动文件; 棘轮定稿分 ==100 才定稿。独占 章节/ 覆盖写入。
1---2name: novelist-rewrite3description: novelist-rewrite — 章节重写(三模式, 一站式)4---56# novelist-rewrite — 章节重写(三模式, 一站式)78入参 `mode=detect|fix`(默认 **fix**):9- `mode=detect` — 只读诊断: 扫描全书, 产「建议重写章清单 + 理由 + 建议模式 A/B/C」, **不改任何文件**(不派 chapter-writer, 不删章)。用于动手前先评估。10- `mode=fix`(默认) — 执行三模式 A/B/C(现状), 走完整收尾链。1112修复或重来。无论哪种模式, 重写的本质 = 让正文重新满足四要素与一致性约束。**重写也是一站式**: 重写正文后同样走完整收尾链(检查→审查→校对→去AIGC→定稿, 见工作流 step 4), 用户只需调 rewrite, 不必再分别调 check/proofread/humanize。涉及删除时, 破坏性操作必须先确认、先备份。1314三模式的逐步操作细则见 `references/rewrite-modes.md`; 核心约束速览如下。1516## 关键约束速览1718| 场景 | 约束 |19|---|---|20| 模式A选章范围 | 只重写「冲突直接涉及」的章/段落, 禁无关章漫扩 |21| 模式B操作顺序 | 确认 → 备份(移入 .废弃/) → 清索引 → 回退状态源 → 重写; 任一步缺=未完成 |22| 模式C每章必做 | 重取/重定该章四要素, 禁跳章直接写 |23| 备份格式 | 移入 `元数据/.废弃章节-<YYYYMMDD>/`, 文件名不变便于恢复 |24| 收尾链(三模式通用) | 重写后必过 check→proofread→humanize→棘轮分门控; 不可跳 |2526## mode=detect — 诊断模式(只读)2728扫描全书, 评估每章是否需重写(而非单点修), 产「建议重写章清单 + 理由 + 建议模式 A/B/C」。**禁动任何文件**(不派 chapter-writer, 不删章, 不改 `章节/` 正文)。用户据此决定是否进 mode=fix。详细字段见 `references/rewrite-modes.md`。2930## 三种模式(均归入 mode=fix)3132### 模式 A — 按检查报告定点修复331. 读最新 `元数据/检查报告/<...>.md`(或先跑 novelist-check 生成)。342. 对每条 致命/重要 冲突, 定位涉及章节。353. 逐条派 chapter-writer 重写**受影响段落/章节**, prompt 附: 冲突点 + 正确事实(从事实源) + 修复要求。364. 重写后回写状态变更, 重跑 novelist-check 确认冲突清零。3738### 模式 B — 从第 N 章起清空重写(破坏性)391. **硬停 确认** — 用 `AskUserQuestion` 明确: "将删除第 N 章及之后全部章节(共 X 章), 不可逆, 确认?"。未确认不动手。402. **先备份** — 把待删章节移到 `元数据/.废弃章节-<日期>/`(不是直接 rm), 留后悔余地。413. **清空** — 从 `章节/_索引.md` 移除第 N 章起的行; 对应正文文件已移入备份。424. **回滚状态源** — 把人物关系/世界观/伏笔回退到第 N-1 章末的状态(依据第 N-1 章四要素的事后状态)。435. **重写** — 从第 N 章起, 逐章走 `novelist-write` 完整流程(四要素 → chapter-writer → 回写)。4445### 模式 C — 连续重写多章(第 A-B 章)461. 确认区间 [A, B]。472. 对区间内每章按顺序: 取该章原四要素(或与用户重定) → 派 chapter-writer 重写 → 回写状态。483. 区间外章节不动; 重写完跑 novelist-check 核对区间与上下文衔接。4950## 工作流(统一)51521. **解析 mode** — 首 token 为 `detect` → mode=detect(进诊断分支, 见上「mode=detect 诊断模式」, 完成后直接 step 5 回报, 不走 step 2-4); 首 token 为 `fix` 或其他 → mode=fix(默认, 进 A/B/C)。**判模式** — mode=fix 时从用户措辞判 A/B/C。不明确 → `AskUserQuestion` 让用户选模式 + 范围。532. **破坏性前置闸门** — 模式 B(或 C 含清空)必须先确认 + 先备份, 见上。543. **派 chapter-writer 重写** — 真实 `Agent` tool_use, 不亲自改正文。554. **生成后收尾链(同 write, 不可跳)+ 重写棘轮** — 重写的正文同样过三环才算定稿: **a.** 回写事实源 → **b.** `novelist-check` 一致性(派 continuity-auditor, 致命冲突回 step 3 重写) → **c.** `novelist-proofread` 校对 → **d.** `novelist-humanize` 去 AIGC → **e.** 算定稿分(一致性×0.5+文字×0.2+人味×0.3, 纯算术)。**棘轮(满分零容忍)**: 重写后定稿分必须 > 重写前那版(否则重写无效甚至改坏 → 回退或重做), 且 **==100** 才定稿。==100 等价于一致性/文字/人味三项全满分(因加权和==100 ⟺ 各项==100); 任一项非满分 → 定稿分<100 → 不定稿。连续 3 次重写未达 ==100 → 硬停 转人工裁决。565. **回报** — mode=detect: 报告建议重写章清单+理由+建议模式; mode=fix: 列重写了哪些章、状态回退/更新、收尾链结果(检查/校对/去AIGC 各是否过, 定稿分是否 ==100)。5758## 失败模式(触发 → 一线修复 → 仍失败兜底)5960| 触发 | 一线修复 | 仍失败兜底 |61|---|---|---|62| 模式不明确 | `AskUserQuestion` 让用户选 A/B/C + 范围 | 仍不明 → 不动手 |63| mode=detect 误动文件 | detect 禁派 chapter-writer / 禁删章 / 禁改正文, 只产诊断报告 | 已动 → 撤回, 改为只产建议 |64| 模式 B 用户未明确确认删除 | 硬停, 必须显式确认才执行 | 不确认 → 取消, 一字不删 |65| 删错/删多了 | 从 `元数据/.废弃章节-<日期>/` 恢复 | 备份也无 → 报告用户, 禁谎称已恢复 |66| 重写后与上下文衔接断裂 | 调整衔接段, 重跑 check | 断裂大 → 扩大重写区间 |67| chapter-writer 重写仍带原冲突 | 把冲突点更显式地写进 prompt 重派 | 连续 2 次未修复 → 硬停 转人工 |68| 模式A: check 仍有致命冲突(重写后未清零) | 遗漏冲突逐条加入 prompt 重派(一次只修一条) | 连续2次清零失败 → 硬停, 事实源本身矛盾, 需人工解设定冲突 |69| 重写棘轮不过(定稿分≤原版 或 <100) | 逐环定位拖分处: check低→补修; proofread低→重校; 人味低→重去AI(目标三项全 ==100) | 连续 3 次未满分 → 硬停 转人工 |70| 模式C: 某章与前章衔接断裂 | 调整该章四要素使衔接自然 → 重写该章 | 反复断裂 → 缩短区间逐章推进 |7172## 反例黑名单(命中=错, 重来)7374| # | 禁做 | 改为 |75|---|---|---|76| 1 | 模式 B 不确认就删章节 | 删除前必 AskUserQuestion 显式确认 |77| 2 | 直接 rm 删除, 无备份 | 先移入 .废弃章节-<日期>/ 再清 |78| 3 | 删章后不回退状态源 | 人物/世界观/伏笔回退到 N-1 章末 |79| 4 | main 自己改写正文 | 派 chapter-writer(真实 Agent tool_use) |80| 5 | 重写后不重跑 check | 收尾必跑 novelist-check 确认 |81| 6 | 谎称已恢复但实际无备份 | 如实报告, 禁幻觉式合规 |82| 7 | mode=detect 派 chapter-writer / 删章 / 改正文 | detect 只产诊断建议, 不动文件 |83| 8 | 定稿分 <100 就谎称定稿 | 棘轮 ==100(三项全满分) 才定稿; 否则 硬停 转人工 |8485> 修复依据 novelist-check 报告; 重写派 chapter-writer; 破坏性删除先确认先备份; 收尾回 check 闭环; mode=detect 只读不动文件; 棘轮定稿分 ==100 才定稿。独占 章节/ 覆盖写入。