فهرست منبع

docs: add v7 design discussion notes and story repo spec feedback

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lingfengQAQ 1 هفته پیش
والد
کامیت
dcfe747bba

+ 47 - 0
docs/architecture/story-repo-spec-feedback-2026-06-11.md

@@ -0,0 +1,47 @@
+# 对《Story Repo 格式规格 v7 草案 0.4》的差异意见(2026-06-11)
+
+> 来源:另一线讨论(见 `v7-design-discussion-notes-2026-06-11.md`)
+> 对象:`story-repo-spec-2026-06-10.md`(0.4 已冻结稿)
+
+## 一、认同并放弃己方方案的部分
+
+- **承诺系统**优于己方"伏笔账本+情绪曲线+桥段账本"三件套,采纳。
+- **settle=原子 commit + git status 手改检测**优于己方"入账记录.json+哈希对账",采纳,己方方案作废。
+- 决策卡/盘面状态机/防呆方言/修复卡/金句库收割,全部采纳。
+
+## 二、需要对齐的冲突(按严重度排序)
+
+### 1. §13"❌ 全自动无人值守模式"与已确认需求冲突
+
+作者明确说过用户两派需求并存("有的需求全自动,有的需求交互式"),且 v6 issue #79(连写功能)是高呼声需求。建议不要禁掉,而是无侵入兼容:
+
+- 自动模式 = 决策卡默认采纳提案 + 机检/镜头评审过线即 settle + 验收卡攒批事后审;
+- 状态机零改动,仅两个停顿点(拍板/验收)变为可跳过开关,存 `book.yaml`;
+- 连写中体检周期需从 50 章加密到 5-10 章(质量漂移在无人值守下累积更快);
+- 停止条件:写满章数 / 体检不过线 / 卷纲耗尽(绝不让模型裸奔编纲)。
+
+核心论点:**全自动 ≠ 无控制,是控制上移到大纲层**(作者逐卷拍板卷纲,一次确认管几十章)。若坚持砍掉,请在决策记录补充理由及对 #79 用户的回应口径。
+
+### 2. §2.1 `PYTHONUTF8=1` 暗示 Python 运行时,与"零依赖"决策冲突
+
+v6 安装类 issue(#90 安装包、#103 找不到脚本、#69 环境配置)根源是 Python+pip 门槛;目标用户是写手非工程师。另一线已定:**脚本统一 Node**——装任何 agent CLI 的用户必有 Node,且 Node 默认 UTF-8,编码税更低。建议 §2.1 改为 Node 口径,或在决策记录补一条运行时选型。
+
+### 3. 多宿主层缺席——确认是分层留白还是遗漏
+
+背景(2026-06 核验):SKILL.md 已是 30+ 工具的开放标准(Codex/Gemini CLI/Cursor 等);subagent 三大平台都有但格式三家三样(Claude/Gemini 用 markdown+frontmatter,Codex 用 TOML)。
+
+本规格作为格式层是平台无关的(决策卡=文件界面,天然可移植),但需要第二份 spec 覆盖:
+
+- 状态机入口落成标准 SKILL.md(注意 Codex 对 skill 列表约 8k 字符预算,description 需精简);
+- 角色定义单源、构建时生成三平台壳;
+- 每宿主 `support.md`(官方文档链接+核验日期+smoke 命令)、registry 分级(一级 Claude Code+Codex 亲测,二级社区反馈);
+- `npx` 安装器(检测环境拷 skills,顺带解决 #90)。
+
+可继承现有 `multi-agent-adaptation-spec-2026-06-05.md` 的元层(support.md 纪律、registry、drift check、降级诚实条款),但其 §5.1"Runtime 是唯一业务真源"需反转为"story repo 是唯一真源",§8.3 的 gate/commit/projection 跨宿主硬要求随 v6 架构一并删除。
+
+## 三、不阻塞的小项
+
+- 机检(内环第 5 步)建议补两个零 token 脚本检查:**跨章高频意象统计**("空气仿佛凝固"全书 47 次这类)、**句式体检**(句长方差/段落长度分布/高频句式开头)——格式不用动,纯机检项扩充。
+- 信息差砍掉"计划揭露"字段可接受:揭露可建为承诺(类型=悬念,兑付计划=揭露安排),机制自洽。
+- 上下文包/渲染层需前置"**反和解倾向**"规则(反派恶意落实处、冲突升级到底、禁说教式和解,按题材配浓度)——AI 对齐训练的副作用对爽文是毒药,事后审查修不了,只能写前反制。可进风格宪法或题材模板,不影响本规格。
+- 另一线已定但本规格未提的杂项,落地时别丢:题材平台预设(番茄/起点节奏差异)、许可证换 MIT/Apache-2.0、AI 味承诺口径("读者不出戏",不承诺过检测器)。

+ 82 - 0
docs/architecture/v7-design-discussion-notes-2026-06-11.md

@@ -0,0 +1,82 @@
+# v7 设计讨论纪要(2026-06-11)
+
+> 状态:讨论快照,供 v7 spec 对照
+> 来源:v6 问题诊断 + issue 区需求盘点 + 写作问题空间梳理 + 多平台调研
+
+## 1. 背景与定位
+
+- 目标:长篇网文创作插件,200 万字级别,开源给广大写手(非工程师)使用,全程中文化,重点照顾 Windows 中文编码。
+- **决策:推翻运行时架构,保留项目资产**——仓库/star/用户群/issue 区、37 个题材模板、审查维度、追读力体系、踩坑记录全部继承;Story System、SQLite 双库、RAG、Python runtime 归零。v6 留分支只修致命 bug,v7 新 major + `/migrate` 迁移命令 + 先发 RFC 让用户拍砖。
+
+## 2. v6 的病根诊断(issue 与代码互证)
+
+| 病根 | 证据 |
+|---|---|
+| 用 prompt 驱动确定性状态机,模型不遵守 | #91(作者自认)、#66 偷懒不调 agent、#87/#76 schema 输出失败;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(朱雀 100%) |
+| 连写缺失/质量漂移 | #79、#95、#74 |
+
+**核心教训:v6 信任流程、不信任模型和作者;v7 信任 markdown 和作者,把流程压到最薄。**
+
+## 3. v7 核心架构原则
+
+1. **状态外置、纯 markdown**:作者面对的一切状态都是 markdown 文件,可手改、可 git diff。没有 DB、没有向量库、没有投影。细节召回靠 Grep 正文原文(正文本身就是无损数据库);没配 key 的 v6 用户本来就在跑 BM25,体验无损、复杂度全卸。
+2. **确定性的活给代码,创作的活给模型**:字数统计、高频短语、句式体检、一致性对账全是零 token 脚本;脚本是唯一在所有模型下行为一致的东西。
+3. **零依赖安装**:脚本全用 Node(装 agent 工具的人必有),无 Python、无 pip、无 .env。
+4. **可靠性来自自愈,不来自门禁**:接受最终一致,每次写作前检测并修复(漏记/手改/崩溃统一收敛),宁停勿崩。
+5. **手改是一等公民**:已发布不可改是网文铁律 → 修改语义分三档:未发布(直接改+自动重入账)、已发布(只读,生成"圆设定方案")、设定/大纲(影响分析,分已发布/未发布两清单)。
+
+## 4. 写小说的问题空间(16 项)
+
+### "吃书"拆成五个性质不同的问题
+
+1. **客观事实**(修为/资产/物品)→ 增量记账。
+2. **时间线** → 每章强制时间锚点,必须从第 1 章执行,中途难补救。
+3. **知识状态/信息差** → 专门登记(谁知道什么、怎么知道的、谁不该知道);写前注入出场人物知识边界,审稿双向查(不知情者露知 / 装不知者露馅);"在场即知情"。升格定位:**爽点库存管理**——装逼打脸的本质是信息差兑现,可报告"蓄积 N 章未兑现"。
+4. **人设语气** → 无法账本化(漂移是渐变的);角色卡存典型对话原文做 few-shot + 周期语气体检 + 遮名盲测。
+5. **摘要信息损耗** → 理论上不可全解(压缩时不知道哪个细节未来重要);分层摘要管主干 + Grep 管细节 + 伏笔/承诺即"人工标注的未来相关性"。
+
+### 剧情结构
+
+6. **大纲漂移是双向的**:偏离是决策点不是 bug(拉回 / 改纲 / 进灵感池)。
+7. **改稿三档语义**(见原则 5)。
+8. **AI 的和解倾向**是对齐训练副作用,对网文是毒药:反派太讲道理、冲突过快化解、主角圣母。必须写作 prompt 前置反制(恶意落到实处、冲突升级到底、禁说教式和解),按题材配浓度。
+9. **桥段循环**:升级流 300 章模型会无意识循环装弱→被辱→打脸;需桥段使用史注入"冷却中"清单。**高频意象统计**("空气仿佛凝固"全书 47 次)用零 token 脚本逮。
+10. **情绪节奏**:每章标注情绪定位(压抑/铺垫/小爽/大爽/转折),体检看波形;平台预设定周期(番茄短周期 vs 起点可慢热)。
+
+### 文笔/AI 味
+
+11. **AI 味是分布问题不是词汇问题**:词汇/句式节奏/结构/telling-vs-showing 四层,禁词表只够第一层。主力解法是**文风锚定**(喂对标作者样本 few-shot)+ 句式体检脚本(句长方差/段落分布/高频开头)。
+12. **对话同质化**:口癖卡(句长习惯、绝不会说的词)+ 遮名盲测。
+13. **诚实边界**:承诺"读者不出戏",不承诺过 AI 检测器(军备竞赛,承诺即埋雷)。
+
+### 工程交互
+
+14. **控制点滑杆**:细纲确认(性价比最高的单一控制点)/ 正文确认两个开关;**全自动 ≠ 无控制,是控制上移到大纲层**(逐卷确认卷纲 → 无人值守连写 → 偏离进灵感池 → 周期体检)。交互/全自动两派是同一根滑杆的两端,一套实现。
+15. **连写质量漂移**:无人值守下错误自我强化,每 5-10 章强制体检,不过线即停。停止条件:写满章数 / 体检不过线 / 大纲耗尽(绝不让模型裸奔编纲)。
+16. **真源唯一**:正文 + 记忆 markdown,一切可重建。
+
+**优先级**:1/2/5/7/14 决定文件格式必须进骨架;3/8/9/11 是差异化卖点可增量加;4/10/12 体检类后置。
+
+## 5. 多平台策略(调研结论,2026-06 核验)
+
+- **SKILL.md 已是开放标准**(Anthropic 2025-12 开放,Codex/Gemini CLI/Cursor/Copilot/Windsurf 等 30+ 工具支持,路径 `.claude|.codex|.cursor|.gemini/skills/`)→ skills 层零适配,拷目录即用。
+- **Subagent 三大平台都有但无标准**:Claude/Gemini 用 markdown+frontmatter(路径不同),Codex 用 TOML(experimental)→ 角色规范单源 markdown,构建时生成三平台壳;**subagent 只做增强不做依赖**,skill 写降级路径。
+- Hook 同理:核心流程显式调脚本,hook 只是 Claude Code 上的自动兜底。
+- 弱模型现实(Codex 跑 GPT、Cursor 什么模型都有)让"流程薄+脚本确定性"从优雅变成必需。
+- 分发:`npx` 安装器(检测环境拷 skills,顺带解决 #90)。
+- 支持分级:一级 Claude Code + Codex(亲测),二级 Gemini/Cursor(社区反馈),其余"标准 SKILL.md 理论可用"。
+- Codex 对 skill 列表有约 8k 字符预算 → description 必须精简。
+- 继承 `multi-agent-adaptation-spec-2026-06-05` 的元层:support.md 核验纪律(官方链接+核验日期+smoke)、registry 分级、生成器+drift check、降级诚实条款、UTF-8 First;反转其 §5.1(真源从 runtime 换成 markdown);删除其 §8.3(gate/commit/projection 跨宿主硬要求)。
+
+## 6. 工程杂项(既定决策)
+
+- 命令名英文/拼音 + 中文描述;所有文件 UTF-8 无 BOM,`.gitattributes` 锁 LF;不用 .bat/.sh。
+- 字数统计按字符数自己写(`wc -w` 对中文无效)。
+- 写手与审稿分离(自己审自己会自我辩护),"新鲜上下文"靠独立命令/会话实现。
+- 许可证建议 MIT/Apache-2.0(v7 从零写,无 GPL 传染问题)。
+- 合规/敏感词不进 v1。
+- 直接采纳的用户需求:定点修复(#78/#99)、连写(#79)、手改重读(#100/#77)。