v7-prd.md 32 KB

webnovel-writer v7 产品需求文档(PRD)

状态:1.0(作者逐项确认,2026-06-12 定稿) 日期:2026-06-12 读者:①开发实施者(含 AI);②issue 区用户(RFC 母本,裁剪时换大白话) 地位:本 PRD 是 v7 的产品法律文本。spec 0.5 的"冻结"已解除——本 PRD 先行,story-repo-specmulti-agent-adaptation-spec 随本文档修订(修订指令见 §10)。 上游:story-repo-spec 0.5、multi-agent-adaptation-spec v3.1、v7-design-discussion-notes、v6 issue 区(#58–#113) 决策过程:.trellis/tasks/06-11-v7-prd-webnovel-writer/prd.md(20 条 ADR)


1. 背景与目标

1.1 一句话

为中文网文作者做一个开箱即用、全程中文、200 万字不崩的 AI 长篇创作系统:一本书是一个 git 仓库,AI 负责写和审,脚本负责数和记,作者只做三件事——确认细纲、审稿、拍创作决策。

1.2 为什么推翻 v6 重来

v6 的病根(issue 与代码互证):

病根 证据
用 prompt 驱动确定性状态机,模型不遵守 #91、#66、#87/#76;385 行写章流程规范
派生状态(SQLite/投影)与作者手改冲突,无解 #100、#77、#63、#67、#70、#71、#89
Token/时间消耗失控(每章 3 subagent + 4 份 JSON + 多道 gate) #58、#92、#106
安装门槛高(Python 依赖 + .env + RAG key) #90、#103、#69
禁词表治不了 AI 味 #94
连写缺失/质量漂移 #79、#95、#74

核心教训:v6 信任流程、不信任模型和作者;v7 信任 markdown 和作者,把流程压到最薄。

1.3 继承与归零

  • 继承:仓库/star/用户群/issue 区;37 个题材模板;追读力分类与爽点节奏知识库;审查维度;踩坑记录。
  • 归零:Story System、SQLite 双库、RAG、Python runtime、8 个命令、Dashboard 常驻服务。
  • v6 留 master 分支只修致命 bug;v7 新 major + /migrate 一次性迁移。

1.4 产品原则(宪法级)

  1. 文件即真相:作者面对的一切状态都是中文 Markdown,可手改、可 git diff。系统检测手改并提议入账,永不报错拒绝。
  2. 脚本能做的归脚本,做不到的归 AI 语义判断——一定要分清楚。禁止用正则硬凑语义判断(一点用没有);能数的不让模型估,能模型判的不打扰作者。
  3. git 隐身铁律:作者永远不需要亲手敲 git 命令——真需要 git 操作时由 AI 代为运行;任何 git 异常都有人话修复流程。
  4. 可靠性来自自愈,不来自门禁:宁停勿崩;hook 语义是 ask 不是 deny(#113 教训)。
  5. 精准读取,非必要不全文读:所有数据文件都有"精准读到所需一段"的脚本命令;AI 默认读片段,不整文件读取(v6 token 失控的根治手段)。
  6. 作者界面零机器味:术语全部用网文圈原生词或大白话(§8 术语表);财务/工程/数据库隐喻和自造精简词禁止出现在作者界面。
  7. 品味决策归人定稿永远由作者敲定(没有"自动定稿");金句入库、文风规则入铁律,一律作者审核,不交给阈值或模型。

2. 用户画像与作者旅程

用户是中文网文作者,非工程师,Windows 为主力环境,目标体量 200 万字。三条旅程全部支持,主旅程是新书作者——它是产品定义本身;迁移作者第二;连写党是日常写作的一种模式而非独立门面。

2.1 主旅程:新书作者(从零到稳定日更)

① 安装        npx webnovel-writer init
              (检测 Node ≥22 与已装的 AI 工具,生成工作目录;缺 Node 时人话提示升级)
② 建书        打开 AI 工具说"开始写书"→ 引导式问答生成 book.yaml、总纲、第一卷卷纲
③ 写第一章    确认细纲(AI 拟,作者点头或改)→ AI 写稿 → 机检 → 三审 → 审稿 → 定稿
④ 日常        每次打开,AI 先报全书近况(写到哪、哪些伏笔悬了太久、连续几章钩子弱)
              → 继续写下一章,或说"改第 N 章""把这条感情线收了"
⑤ 卷末        卷复盘:伏笔清账、卷摘要、与作者对谈定下卷卷纲、伏笔机会扫描
⑥ 发布        一键导出干净正文(单章/范围/全书,去 front matter),贴到起点/番茄

体验底线:全程看不到 git、看不到报错堆栈、看不到英文术语;目录里只有 定稿/大纲/文风/工作区 四个中文文件夹。

2.2 旅程二:v6 迁移作者

① 引导        市场版插件页面与 README 指引:v7 换了安装方式 → 卸载市场版 → npx 安装
② 迁移        在工作目录说"迁移我的书"→ /migrate 一次性脚本(映射表见 §10.3)
③ 校对        迁移报告人话列出:迁了什么、哪些条目标了"迁移待校对"、建议先看哪
④ 继续写作    进入主旅程 ④

体验底线:迁移不丢任何一个字;v6 的伏笔/剧情线/追读账本全部有去处;失败可整体回退。

2.3 旅程三:连写党(自动模式)

① 前提        当前卷卷纲已确认(自动模式的控制边界——全自动 ≠ 无控制,是控制上移到大纲层)
② 开关        自动确认细纲 + 连写批次大小(默认与体检周期一致 8 章;开关中文名 spec 定稿时敲定)
③ 挂机        连写一个批次:草稿与预入账数据攒在工作区,**不定稿**;
              写后续章的材料从"定稿 + 待定稿批次"叠加组装(脚本提供)
④ 停止        批次写满 / 体检不过线 / 卷纲耗尽(绝不让模型裸奔编纲)
              + 连续 3 章(可配)无账本变动也停
⑤ 批量审稿    作者过一遍攒下的审稿单:整批接受 / 改某几章 / 从某章起打回重写
              (批内错误未定稿,直接改,影响最多波及一个批次)
⑥ 批量定稿    作者敲定后逐章按序定稿(原子性按章保留)→ 继续下一批次
              整批不要 → "回到第 N 章"(git 回滚的人话包装)
              已发布后才发现错误 → 影响分析 → 顺势圆(向后兼容;已发布不可改是铁律)

定稿永远需要作者敲定——系统没有任何不经作者确认就写入定稿区的路径(宪法级)。自动模式与手动模式的差异只是确认粒度:逐章 vs 按批次。


3. 系统形态

3.1 安装布局:工作目录 ⊃ 书目录

工作目录/                      ← AI 工具在这里启动;本身不是 git 仓库
├── AGENTS.md                  # 公约数层:没装插件的 AI 也能看懂这里是什么、入口在哪
├── .claude/  .codex/ …        # 各平台壳(按检测到的环境生成)
├── .webnovel/                 # 插件本体:Node 脚本、角色定义、版本与模板哈希清单
│   └── books.jsonl            # ★ 书目录登记:每行一本书(书名/目录/是否当前在写/最后打开)
├── 我的第一本书/               # 书仓库(独立 git 仓库)
└── 我的第二本书/               # 多本书共用一套安装
  • 强制安装到工作目录(项目级),不支持用户级——所有用户目录结构一字不差,可诊断性优先于灵活性(v6 安装类 issue 半数根源是"装哪了/读的哪份"歧义)。
  • 分发只走 npxnpx webnovel-writer init / update)。Claude Code 插件市场渠道放弃,市场版停在 v6 并指引新装法。
  • update 用模板哈希追踪:用户没改过的文件直接更新,改过的提示(Trellis 模式)。
  • 当前书与书单由登记文件解析.webnovel/books.jsonl,机器域,每行一本书:书名/目录/是否当前在写/最后打开):
    • SessionStart hook 注入上下文(Claude Code):会话启动自动注入"当前在写哪本、共几本书、全书近况入口";无 hook 宿主由状态机入口启动时读同一文件,行为等价——关键能力不得只存在于 hook 中。
    • 换书 = 一句话让 AI 改登记(对话即编辑器);作者不需要手编 jsonl。
    • 自愈:登记文件缺失/损坏 → 扫描工作目录下含 book.yaml 的子目录重建书单(书单是可重建派生物),"当前在写"标记请作者选一次。
  • 只支持从工作目录启动:各宿主只在启动目录自动加载 skills/配置(.claude/.codex/ 都住工作目录),在书目录里启动插件根本不会加载。当前书一律由登记文件决定。脚本启动时校验当前目录含 .webnovel/,不是工作目录 → 人话提示"请从工作目录启动"。
  • 运行时要求 Node ≥ 22(用内置 node:sqlite 实现缓存,零依赖承诺保住);无 Python、无 pip、无 .env。

3.2 书仓库目录(spec 0.5 §2 修订版)

<书名>/
├── .git/  .gitignore  book.yaml
├── AGENTS.md                   # ★ 指路文件(建书时自动生成):误在书目录启动 AI 工具 /
│                               #   单独 clone 时,指引回工作目录或 npx 重建
├── 定稿/                       # ── 审稿通过后的一切,只进不改 ──
│   ├── 正文/0152-北境的雪.md    # 正文 + 章信息 front matter(自包含档案)
│   ├── 设定/
│   │   ├── 角色/林晚.md
│   │   ├── 信息差/信息差-021-灭门真凶.md
│   │   ├── 世界观.md
│   │   ├── 时间线/第05卷.md     # ★ 按卷拆分(原单文件)
│   │   └── 名册.md
│   └── 摘要/                   # ★ 原「记忆/」
│       ├── 章摘要/0152.md
│       └── 卷摘要/第05卷.md
├── 大纲/                       # ── 作者意图,随时可改 ──
│   ├── 总纲.md
│   ├── 卷纲/第05卷.md          # 主线支线的推进写在这里,不另记账
│   ├── 伏笔/伏笔-031-灭门真凶.md  # ★ 账本三类(原「承诺/」大一统拆分)
│   ├── 悬念/悬念-008-神秘老者身份.md
│   └── 感情线/感情线-012-林晚主线.md
├── 文风/
│   ├── 文风铁律.md             # ★ 原「风格宪法.md」;含反和解标准段
│   └── 金句库/战斗.md …
├── 工作区/                     # ── 没定稿的一切,默认不进 git ──
│   ├── 细纲.md                 # ★ 原「决策卡.md」:全书近况+本章提案+要写到的事+备选
│   ├── 本章写作材料.md          # ★ 原「上下文包.md」
│   ├── 草稿-A.md
│   ├── 审稿.md                 # ★ 原「验收卡」
│   ├── 评审报告/
│   └── 导出/                   # ★ 新增:干净正文导出落点(不进 git)
└── .cache/index.db             # 唯一派生物,删了能全量重建(CI 验收项)

书仓库里零工程文件——作者打开文件夹只看到书。唯一显式例外是指路 AGENTS.md:误在书目录启动 AI 工具或单独 clone 时,它是唯一会被 AI 自动读到的求生通道。

3.3 账本:三类,统一引擎

有"开启→推进→收尾"生命周期的才进账本;引擎一套共用(每条一个文件、平铺 front matter、履历、"悬了太久"预警、定稿时入账;机器内部状态同构 open/advance/resolve/drop):

类型 编号 生命周期动词 "悬了太久"默认阈值
伏笔 伏笔-031 埋下 → 推进 → 回收 / 放弃 紧(10 章量级)
悬念 悬念-008 设下 → 推进 → 揭晓 / 放弃 紧(10 章量级)
感情线 感情线-012 开启 → 推进 → 修成正果 / 无疾而终 宽(30 章量级)

条目编号一律用全称(伏笔-031,不是 伏-031 或 P-031)——作者天天要念的编号必须是人话,不过度压缩;信息差同理(信息差-021)。

不进账本的(各归各位):

  • 爽点:不是账本条目,是知识层——v6 的追读力分类(危机钩/悬念钩/渴望钩/情绪钩/选择钩)、爽点与节奏知识库(压抑爆发/微反转补刀/黄金三章等,按题材有偏好和毒点)、37 个题材模板平移继承,喂给细纲(按题材推荐本章钩子类型/情绪定位/爽点节拍)和三审读者审。
  • 钩子、情绪定位:每章属性,住章节 front matter(本章钩子类型与强弱、情绪定位:压抑/铺垫/小爽/大爽/转折)。
  • 剧情线(主线/支线):推进本来就是总纲/卷纲正文内容,再开一类账=重复记账。
  • 冲突、立旗:不设类(冲突每章都有;立旗是黑话直译,归悬念或爽点知识)。
  • "装逼打脸蓄积了多少章":信息差的派生报表(数据源就是"谁还不知道主角的底牌"),不需要独立机制。

账本态度:"悬了太久"是提醒不是错误,有些伏笔收不了可以接受——系统不逼作者填所有坑。

注:「账本」是开发侧词汇,仅用于本文档与 spec 内部指代这套机制;作者界面只出现 伏笔/悬念/感情线 三个具体名字,不出现"账本"二字。

3.4 写章流程(八阶段,spec 0.5 §8 修订版)

# 阶段 执行体 说明
1 起草细纲 脚本读全书近况 + AI 拟 生成 工作区/细纲.md细纲声明本章定位(推进/过渡/日常)——过渡章合法,消除模型撒谎动机(替代 0.5 的"每章必须动一条承诺"硬门检与豁免机制)
2 确认细纲 作者 点头 / 改 / 选备选;自动模式可跳过
3 备料 脚本 组装 工作区/本章写作材料.md:全书近况+要写到的事+事实切片+信息差边界+近章结尾+反复读清单+文风锚点+反和解规则;默认用精准片段(当前卷+上一卷时间线、按编号取账本条目)
4 写稿 AI(干净上下文) 工作区/草稿-*.md;关键章 best-of-N
5 机检 脚本,零 token 只做可计数项:字数、禁词/禁句式、复读、高频意象统计、句式体检(句长方差/段落分布/高频开头)、新专名比对名册、front matter 格式、账本文件是否变动(只查形式)、信息差关键词命中(只出候选清单,不拦截)。不过关打回第 4 步,不打扰作者
6 三审 AI ×3(各自新鲜上下文) 读者审(爽不爽/哪段想划走,用追读力知识库的标准)、编辑审(结构与商业性)、设定校对(语义判断在这里:①"本章要写到的事"逐条核对正文写没写到;②机检的泄密候选是不是真泄密;③账本履历引用的章内证据是否属实)
7 审稿 作者 工作区/审稿.md = 草稿 + 三句话审意见 + 待确认新人名 + 章摘要(扫一眼可改)。动作:接受 / 改完接受 / 打回。手动模式逐章审;自动模式按批次审(§2.3)。定稿永远需要作者敲定,没有"自动定稿"
8 定稿 脚本,原子 一次 git commit:正文进定稿、设定/时间线/名册更新、账本各条目写入履历、章摘要存入 定稿/摘要/、工作区清空。要么完成要么原样保留,没有中间态

写评分离:写稿与三审必须在不同上下文中进行;机检先于 AI 审。

3.5 单入口状态机(spec 0.5 §10 修订版)

系统启动按序判定,命中即停。第 0 步之前加 git 健康检查:半提交/冲突/锁文件/.git 损坏/网盘冲突副本("xxx (1).md"),每种配自动修复或人话指引——作者永远不直面 git 报错。

条件 下一步
0 任一源文件解析失败 修复确认(原"修复卡"):定位到行、AI 提议保留意图的修复、作者确认;全角标点结构性错误直接预修复只报不问。永不带堆栈崩溃
1 定稿/大纲有未入账手改 提议补登(系统适应作者,不报错)
2 工作区有未完成流程 从中断的阶段继续
3 刚定稿的章是卷末章 卷复盘
4 章号到达体检周期 体检
5 其余 起草新章细纲

v6 的 8 个命令全部内化为以上状态;作者只需要一个入口和"继续"。

3.6 精准读取接口(新增,宪法级原则的落地)

每类数据文件的 spec 定义都附带"定位读取"脚本接口,例如:

  • 读伏笔-031 的履历 / 读感情线-012 的当前状态
  • 读第 5 卷卷纲的高潮节点 / 读总纲的结局承诺段
  • 读 0152 章结尾 500 字 / 读第 148–152 章的章摘要
  • 查"玄阶令牌"在全书的出现章(Grep 正文,正文本身就是无损数据库)

.cache/index.db 的表设计必须支撑这些查询;写作材料组装默认用精准片段。


4. 功能需求:问题空间 16 项的产品化映射

# 问题 解法 版本 验收方式
1 客观事实吃书(修为/资产/物品) 角色卡结构化字段增量记账,定稿时脚本更新 7.0 改 100 章前的设定,影响分析能列全受影响章
2 时间线混乱 每章强制时间锚点;时间线按卷拆分,append-only 7.0 从第 1 章起强制;体检报告时间线孤儿为零
3 信息差泄密 登记表(每条一文件:知情人/读者已知/关键词)+ 机检出候选 + 设定校对判真伪;写作材料注入出场人物知识边界 7.0 构造泄密样章,三审能逮住;误报不拦截流程
4 人设语气漂移 角色卡存典型对话原文 few-shot + 周期语气体检 + 遮名盲测 7.x(体检后置) 盲测准确率报告
5 摘要信息损耗 分层摘要(章≤200字/卷≤500字/全书骨架按需拼接、不落盘)+ Grep 正文管细节 + 账本即"人工标注的未来相关性" 7.0 写第 0153 章时,写作材料能召回第 12 章埋下、第 152 章推进的伏笔
6 大纲漂移 偏离是决策点不是 bug:细纲阶段给"拉回/改纲/进灵感池"三选 7.0 细纲模板含偏离报告段
7 改稿三档 未发布:直接改+自动重入账;已发布:只读,生成"顺势圆"方案;设定/大纲:影响分析出已发布/未发布两清单 7.0 三档各有端到端用例
8 AI 和解倾向毒害爽文 反和解规则入文风铁律标准段,随写作材料前置注入,按题材配浓度 7.0 题材模板含反和解预设;样章对比可感
9 桥段循环 高频意象统计(零 token 脚本,7.0)+ 桥段使用史"冷却中"清单(7.x) 7.0/7.x "空气仿佛凝固"全书 47 次这类能被机检报出
10 情绪节奏失控 每章情绪定位入 front matter(7.0)+ 波形体检与平台预设周期(7.x) 7.0/7.x 体检报告含情绪波形图
11 AI 味 分布问题分层打:禁词表(第一层)+ 句式体检脚本(7.0)+ 文风锚定 few-shot(7.x)。诚实边界:承诺"读者不出戏",不承诺过 AI 检测器 7.0/7.x 句式体检指标进体检报告
12 对话同质化 口癖卡 + 遮名盲测 7.x 盲测用例
13 诚实边界 README/RFC 明示承诺口径;合规/敏感词不进 v1 全程 文档口径一致
14 控制点滑杆 确认细纲/审稿两个开关;全关=逐章交互,全开=自动模式;一套实现 7.0 开关组合矩阵全测
15 连写质量漂移 按批次定稿(错误最多污染一个批次,且未定稿可直接改)+ 体检与批次对齐(默认 8 章)+ 停止条件(写满/体检不过线/卷纲耗尽/连续 3 章无账本变动)+ 已发布错误走顺势圆 7.0 自动模式端到端 + 注入错误的恢复演练
16 真源唯一 正文+摘要 markdown 即全部状态;.cache 删了全量重建 7.0 重建 CI(重建器即格式的参考实现)

5. 非功能需求

维度 要求
运行时 Node ≥ 22,零第三方依赖(node:sqlite);安装器检测版本并人话提示
平台 Windows 中文环境一等公民:全链路 UTF-8 无 BOM、core.quotepath false、CI 含 Windows 中文路径全链路测试(建库→写章→定稿→重建缓存)
Token 成本 机检零 token;精准读取默认片段化;分层摘要控制长程上下文;每章 AI 调用次数有预算上限(实现时定数)
健壮性 永不带堆栈崩溃(修复确认兜底);定稿原子性;git 健康检查;容错读取(未知字段保留原样写回)
可诊断性 强制项目级安装,目录结构全网统一;issue 里贴目录清单即可定位
防呆 系统写出的 YAML 一律平铺、块列表、危险值加引号;多条记录每条一文件
多宿主 格式层平台无关;SKILL.md 开放标准零适配;角色单源生成三平台壳 + drift check;降级诚实(不允许声称调用了不存在的能力);hook 语义 ask 不 deny
许可证 MIT/Apache-2.0(v7 从零写)

6. 范围切分

切线原则:已设计完且实现成本低的进 7.0;需要新设计或调参的体检类全部 7.x。

v7.0(首发)

  • 骨架:状态机单入口、写章流程八阶段(机检/三审新分工)、三类账本(声明制)、客观事实记账、时间线(按卷)、分层摘要、改稿三档、git 隐身全套(含健康检查与"回到第 N 章")、精准读取接口
  • 高呼声卖点:自动模式(连写,按批次定稿)、反和解规则、信息差登记(候选制泄密检查)
  • 配套:npx 安装器(工作目录布局)+ update、/migrate、干净导出、AGENTS.md
  • 文风层基础:文风铁律 + 禁词/句式机检 + 高频意象统计(v6 资产平移);金句库目录与手动放入
  • 宿主:一级(Claude Code + Codex),亲测过 smoke

v7.x(增量)

  • 金句库自动收割(候选制:作者改写且字数相近才候选,净删减不算;对话触发:作者聊天中夸某段也触发;最终一律作者审核入库)
  • 按需静态简报(单文件 HTML,内联样式无外链无服务器;账本全貌、体检统计与情绪波形、时间线浏览——"全书近况"管对话里的决策瞬间,浏览级信息归简报)
  • 文风锚定(对标作者 few-shot)、桥段冷却清单、语气盲测、情绪波形、口癖卡
  • 多宿主二级平台(Gemini CLI / Cursor,社区反馈确认)

不做(封死)

  • RAG/向量库(语义检索=可选插件,永不做事实召回主路径)、常驻服务、敏感词/合规、AI 检测器承诺
  • 大一统 YAML 数据文件、事件级 witnesses 投影、自建提交链、模型自由评"文笔好坏"、模型裸奔编纲
  • 术语禁用词 CI 检查(术语一致性靠自审与评审把关,不上机器)

7. 发布判据

阶段 过线标准
发 RFC 本 PRD 定稿;术语表/目录图/三条作者旅程齐;RFC 以大白话裁剪发 GitHub Discussions(需先开启 Discussions,issue 区发置顶指引),征求意见至少开放 1 周
beta 用 v7 真实写一本书到 50 章(自用验证,覆盖建书→日更→吃书→卷复盘);Windows 中文路径全链路 CI 绿;"删光 .cache 全量重建" CI 绿
7.0.0 /migrate 在 ≥3 个真实 v6 项目跑通;beta 期无数据丢失级 bug;迁移指引文档齐

8. 术语表(作者界面词汇的法律文本)

命名四原则:①网文圈原生词优先;②圈内没有的用自然大白话;③财务/工程/数据库隐喻禁止出现在作者界面;④不自造两字精简词——宁可用自然的长短语。

spec 0.5 旧词 v7 定名 备注
承诺(P-031) 账本拆三类:伏笔(伏笔-031)/ 悬念(悬念-008)/ 感情线(感情线-012) 各用各的生命周期动词(埋下→回收 / 设下→揭晓 / 开启→修成正果);编号一律全称
节奏债 "悬了太久"预警 是提醒不是错误
retcon 事务 吃书(吃书-87) commit 前缀仍 retcon(机器域)
settle / 结转 定稿(动词) 定稿/ 目录一致
章事务 写章流程
盘面 全书近况
上下文包 本章写作材料
合同 本章要写到的事
镜头评审 三审(读者审/编辑审/设定校对) 出版业原生词
棘轮 删除该比喻 直接说"定稿前/定稿后"
风格宪法 文风铁律
决策卡 取消"卡"概念:环节叫"确认细纲",文件 工作区/细纲.md AI 拟细纲→作者点头或改
验收(卡) 审稿,文件 工作区/审稿.md
修复卡 修复确认
定稿/记忆/ 定稿/摘要/ "记忆"是 AI 视角词
信息差/时间线/名册/金句库/体检/钩子/强弱钩 保留 原生或大白话

机器协议不动(机器域,作者看不到):commit 前缀 ch/vol/retcon/fix、book.yamlspec_version.cache 表名。条目编号全部中文全称(伏笔-031/悬念-008/感情线-012/信息差-021,原 P-031/S-021 废止)——编号是作者天天要念的,必须是人话且不过度压缩。


9. 风险与开放问题

风险 控制
三审每章 3 次 AI 调用,弱模型宿主上质量参差 三审任务书单源;设定校对给的是核对清单不是开放问题;降级模式(无 subagent 顺序执行)如实声明
自动模式错误连锁 按批次定稿——错误不经作者审稿不入定稿,污染上限一个批次且未定稿可直接改;已发布后的错误走影响分析+顺势圆
中文路径在小众平台/工具链上出幺蛾子 CI 全链路 + 一级宿主 smoke;问题平台降级到二三级,不硬保
Node 22 普及度 安装器人话提示升级;22 已是 LTS,写手装最新版无历史包袱
Codex skill 列表 8k 字符预算 description 精简纪律 + validator 检查
金句库 few-shot 注入旧文加重自我重复 7.x 才做自动收割;候选制+作者审核;按场景分文件轮换

开放问题(不阻塞 RFC,spec 修订时解决):

  • [O2] 自动模式开关的中文定名("自动确认细纲"+"连写批次大小"候选)。
  • [O3] 灵感池(偏离大纲的素材去向)的文件落点——大纲/灵感池.md 候选。
  • [O4] 精准读取接口的完整清单与 .cache 表设计(实现 spec 定)。

(已消解,均为作者 2026-06-12 拍板:编号体系→全称中文编号;攒批审稿落点→按批次定稿后问题不复存在;多本书切换→.webnovel/books.jsonl 登记 + hook 注入;启动点→只支持工作目录启动;O1 书仓库自描述→根部指路 AGENTS.md。)---

10. spec 修订指令清单(本 PRD 对两份 spec 的下行要求)

10.1 story-repo-spec 0.5 → 0.6

  1. §0/§1:删"棘轮"比喻;不变量补三条——git 隐身铁律、精准读取、"脚本/AI 语义分界"。
  2. §2:目录按 §3.2 修订(账本三目录、摘要/、时间线按卷、细纲/审稿/导出、工作区文件改名);条目编号改中文全称("编号保留 ASCII"条款废止);新增"工作目录 ⊃ 书目录"安装布局、书目录登记(.webnovel/books.jsonl)、启动点限制(只支持从工作目录启动——宿主只在启动目录加载 skills/配置;脚本校验 cwd 含 .webnovel/,否则人话提示)。
  3. §2.1:Node ≥ 22,node:sqlite
  4. §3 book.yaml:删除"自动验收"开关(定稿永远归作者),新增"连写批次大小"(默认与体检周期一致);开关中文名随术语表(O2);新增分类型"悬了太久"阈值。
  5. §5:大一统"承诺"拆三类账本;"每章必须结转"硬门检改声明制(细纲声明本章定位);履历行必须引用章内证据;删豁免机制。
  6. §6.1 改名文风铁律;§6.2 金句库 7.0 仅目录+手动,自动收割条款移入 7.x 附录(候选制+对话触发+作者审核)。
  7. §7 决策卡 → 细纲.md,固定段落改为:全书近况 / 本章提案与定位声明 / 本章要写到的事 / 备选。
  8. §8:第 5 步机检删"合同断言比对"(移三审设定校对)、信息差扫描改"只出候选";第 6 步三审职责按 §3.4 重写。§8.1 整节重写:删除"自动验收过线即 settle"——定稿永远由作者敲定;自动模式改为按批次定稿(批内草稿与预入账数据攒工作区、写作材料组装支持"定稿+待定稿批次"叠加视图、批量审稿、作者敲定后逐章按序定稿);停止条件增加"连续 3 章无账本变动即停"。
  9. §9:retcon 作者界面叫吃书;新增影响分析脚本、"回到第 N 章"命令、顺势圆主路径。
  10. §10:第 0 步前加 git 健康检查;修复卡→修复确认。
  11. §11:表设计须支撑精准读取接口(O4)。
  12. §4.1 章节 front matter:字段名随术语表与账本三类改写(开启/推进/兑付承诺 → 分类型的 埋下/推进/回收 等;"合同"→"本章要写到的事");新增章属性字段:钩子类型与强弱、情绪定位(压抑/铺垫/小爽/大爽/转折)。
  13. 新增"建书"入口:状态机目前假设书已存在,需补"无书/空仓库"态——引导式问答生成 book.yaml、总纲、第一卷卷纲(主旅程 §2.1 ② 的依据);建书时同步生成书仓库根部指路 AGENTS.md(误启动/单独 clone 的指引)并登记进 books.jsonl
  14. §12 迁移映射更新:foreshadowing→伏笔、plot_threads→并入卷纲(不进账本)、chase_debt/reading_power→知识层与章属性;新增"市场版插件卸载+npx 重装"引导。
  15. 新增章节:干净导出命令、精准读取接口。

10.2 multi-agent-adaptation-spec v3.1 → v3.2

  1. §8 安装器重写:工作目录布局、强制项目级、npx init/update、模板哈希追踪、Node 版本检测、书目录登记初始化(建书时写入 .webnovel/books.jsonl)。
  2. §5.5 hook 条款扩充:SessionStart 注入"当前在写哪本/书单/全书近况入口"(读 books.jsonl);无 hook 宿主由状态机入口读同一文件,行为等价。
  3. 新增 AGENTS.md 公约数层条款(工作目录根部,<!-- WEBNOVEL:START/END --> 标记块管理)。
  4. 吸收 Trellis 调研:共享模板 + 平台上下文/条件块编译降级路径(降级在安装时定稿,不靠运行时判断)。
  5. 删除 §5.2 中插件市场相关表述(.claude-plugin/ 仅作为 v6 遗留说明)。

10.3 迁移映射(v6 → v7,更新版)

v6 v7
正文/ 定稿/正文/(补 front matter,"要写到的事"标"迁移")
设定集/ 定稿/设定/
大纲/ 大纲/总纲.md大纲/卷纲/
foreshadowing 大纲/伏笔/ 逐条成文件
plot_threads 并入卷纲正文(不进账本)
chase_debt / reading_power 知识层与章属性(不进账本)
.webnovel/state.json 一次性展开进 定稿/设定/
summaries/ 定稿/摘要/
project_memory patterns / scratchpad 文风/文风铁律.md(人工过一遍再入)
.story-system/ 提交链 压成初始 commit,原目录只读归档
index.db / vectors.db / projection_log 删除(缓存重建;向量为可选插件)
references(题材模板/追读力/爽点节奏) 知识层平移继承

11. 验收清单(PRD 自身)

  • 三条作者旅程完整(安装→建书/迁移→日常写作→卷复盘→发布)
  • 问题空间 16 项每项有归属(7.0 / 7.x / 不做)与验收方式
  • 发布判据可执行(每阶段有可验证的过线条件)
  • RFC 可从本 PRD 直接裁剪产出(§1.1、§2、§3.2、§6、§8 为裁剪主体)
  • spec 修订指令完整(两份 spec 的每处冲突都有下行指令)