|
@@ -1,6 +1,10 @@
|
|
|
-# Story Repo 格式规格(v7 草案 0.9)
|
|
|
|
|
|
|
+# Story Repo 格式规格(v7 草案 0.10)
|
|
|
|
|
|
|
|
-> 状态:0.9。相对 0.8 的变更(2026-07-02 设计边界回顾,作者逐项确认,决策 27-32 见 §14):
|
|
|
|
|
|
|
+> 状态:0.10。相对 0.9 的变更(2026-07-03 M1-M5 全量 review,决策 33-34 见 §14):
|
|
|
|
|
+> - 序 2/序 4 执行责任落点钉死:手改补登由脚本 `relink` 命令 `fix(手改): 说明` 入档,卷复盘产物由脚本 commit `vol(NN): 复盘与下卷规划`(§9/§10)
|
|
|
|
|
+> - §11 增「改源流程自刷缓存」公约:定稿/回退/吃书/卷复盘/修复回写完成后由该流程刷新缓存
|
|
|
|
|
+>
|
|
|
|
|
+> 0.9 相对 0.8 的变更(2026-07-02 设计边界回顾,作者逐项确认,决策 27-32 见 §14):
|
|
|
> - 收卷声明制:§4.1 增「收卷」字段、§7 细纲可提议收卷、§10 序 4 改按声明判定,`卷规模` 退为提示参考
|
|
> - 收卷声明制:§4.1 增「收卷」字段、§7 细纲可提议收卷、§10 序 4 改按声明判定,`卷规模` 退为提示参考
|
|
|
> - §10 序 0 钉死"源文件"清单;序 3 细纲计入未完成流程并补续跑映射表
|
|
> - §10 序 0 钉死"源文件"清单;序 3 细纲计入未完成流程并补续跑映射表
|
|
|
> - §3 book.yaml 增「体检周期」;§11 表清单补 entity_aliases(六表)
|
|
> - §3 book.yaml 增「体检周期」;§11 表清单补 entity_aliases(六表)
|
|
@@ -440,12 +444,12 @@ ch(152): 北境的雪
|
|
|
|
|
|
|
|
## 9. 中环、外环与例外流程
|
|
## 9. 中环、外环与例外流程
|
|
|
|
|
|
|
|
-- **卷复盘** `vol(05): 复盘与下卷规划`:三类条目清账(本卷开/收/悬了太久清单)→ `摘要/卷摘要/` → 翻一遍灵感池 → 与作者对谈产出 `大纲/卷纲/第06卷.md` → 顺手做伏笔机会扫描(模型提 3-5 个"本卷可埋、N 卷后响"候选,必须引用总纲的具体远期节点,作者勾选后生成条目文件)。
|
|
|
|
|
|
|
+- **卷复盘** `vol(05): 复盘与下卷规划`:三类条目清账(本卷开/收/悬了太久清单)→ `摘要/卷摘要/` → 翻一遍灵感池 → 与作者对谈产出 `大纲/卷纲/第06卷.md` → 顺手做伏笔机会扫描(模型提 3-5 个"本卷可埋、N 卷后响"候选,必须引用总纲的具体远期节点,作者勾选后生成条目文件)。**执行体**:复盘产物由脚本落盘并 commit(`vol(NN)` 前缀)+ 刷新缓存——与定稿同为脚本责任,否则产物滞留未提交区误触序 2。
|
|
|
- **体检**(手动模式每 50 章;连写中每批次一次):文体指纹 vs 基线区间的漂移报告 + 条目活跃率与悬了太久清单 + 时间线孤儿 → 报告进工作区,不入档;作者决定回拉或更新基线。
|
|
- **体检**(手动模式每 50 章;连写中每批次一次):文体指纹 vs 基线区间的漂移报告 + 条目活跃率与悬了太久清单 + 时间线孤儿 → 报告进工作区,不入档;作者决定回拉或更新基线。
|
|
|
- **吃书**(作者界面叫吃书,commit 前缀仍 retcon):`retcon(87): 修正大长老境界设定`——显式流程,允许改定稿,要求 commit message 写明原因,设定/条目同步,留痕可查。
|
|
- **吃书**(作者界面叫吃书,commit 前缀仍 retcon):`retcon(87): 修正大长老境界设定`——显式流程,允许改定稿,要求 commit message 写明原因,设定/条目同步,留痕可查。
|
|
|
- **影响分析**(脚本):改设定/吃书前,grep 正文+条目履历+时间线,列出"哪些章建立在这个事实上",分已发布/未发布两清单。未发布 → 直接改或吃书;**已发布 → 顺势圆**(生成向后兼容错误的圆设定方案——"已发布不可改"是网文铁律,顺势圆是主路径)。
|
|
- **影响分析**(脚本):改设定/吃书前,grep 正文+条目履历+时间线,列出"哪些章建立在这个事实上",分已发布/未发布两清单。未发布 → 直接改或吃书;**已发布 → 顺势圆**(生成向后兼容错误的圆设定方案——"已发布不可改"是网文铁律,顺势圆是主路径)。
|
|
|
- **"回到第 N 章"**(人话命令):git 回滚的包装,自动模式跑废了一键回到批次起点或任意已定稿章。执行前展示影响范围,作者确认。
|
|
- **"回到第 N 章"**(人话命令):git 回滚的包装,自动模式跑废了一键回到批次起点或任意已定稿章。执行前展示影响范围,作者确认。
|
|
|
-- **手改检测**:每次启动发现定稿/大纲有未登记的手改 → 细纲前问一句"补登吗",确认后 `fix(设定): …` 入档。**系统适应作者,不报错。**
|
|
|
|
|
|
|
+- **手改检测**:每次启动发现定稿/大纲有未登记的手改 → 细纲前问一句"补登吗",确认后由脚本 `relink` 命令 `fix(手改): 一句话说明` 入档并刷新缓存(作者不碰 git;检测与补登的文件范围同源)。**系统适应作者,不报错。**
|
|
|
- **分支试写**:作者想试另一条线 → AI 代为开 git 分支(如 `what-if/林晚黑化`),各推演 3 章纲要,读完合并或丢弃——作者全程不碰 git 命令(不变量 8)。
|
|
- **分支试写**:作者想试另一条线 → AI 代为开 git 分支(如 `what-if/林晚黑化`),各推演 3 章纲要,读完合并或丢弃——作者全程不碰 git 命令(不变量 8)。
|
|
|
|
|
|
|
|
## 10. 启动序列与状态机(单入口)
|
|
## 10. 启动序列与状态机(单入口)
|
|
@@ -458,9 +462,9 @@ ch(152): 北境的雪
|
|
|
|----|------|--------|
|
|
|----|------|--------|
|
|
|
| 0 | 任一源文件解析失败 | **修复确认**:定位到行、展示上下文、AI 提议保留意图的修复、作者确认。全角冒号/逗号出现在结构位置属确定性错误,直接预修复后只报不问。**永不带堆栈崩溃** |
|
|
| 0 | 任一源文件解析失败 | **修复确认**:定位到行、展示上下文、AI 提议保留意图的修复、作者确认。全角冒号/逗号出现在结构位置属确定性错误,直接预修复后只报不问。**永不带堆栈崩溃** |
|
|
|
| 1 | 工作目录无任何书 / 当前书不存在 | **建书引导**:问答式生成 book.yaml、总纲、第一卷卷纲,生成书仓库(含指路 AGENTS.md),登记进 `books.jsonl` |
|
|
| 1 | 工作目录无任何书 / 当前书不存在 | **建书引导**:问答式生成 book.yaml、总纲、第一卷卷纲,生成书仓库(含指路 AGENTS.md),登记进 `books.jsonl` |
|
|
|
-| 2 | 定稿/大纲有未登记手改 | 提议 fix 补登 |
|
|
|
|
|
|
|
+| 2 | 定稿/大纲有未登记手改 | 提议 fix 补登:出示变更清单问"补登吗",确认后脚本 `relink` 入档(`fix(手改): 说明`)并刷新缓存 |
|
|
|
| 3 | 工作区有未完成流程(细纲/材料/草稿/审稿,含待定稿批次) | 按续跑映射表从中断的阶段继续(见下) |
|
|
| 3 | 工作区有未完成流程(细纲/材料/草稿/审稿,含待定稿批次) | 按续跑映射表从中断的阶段继续(见下) |
|
|
|
-| 4 | 最新定稿章声明了收卷(front matter `收卷: 是`,§4.1/§7) | 卷复盘 |
|
|
|
|
|
|
|
+| 4 | 最新定稿章声明了收卷(front matter `收卷: 是`,§4.1/§7) | 卷复盘(产物由脚本 commit `vol(NN)` 并刷新缓存,见 §9) |
|
|
|
| 5 | 距上次体检已满「体检周期」章(体检记录存 `.cache`,丢失则重测,无害) | 体检 |
|
|
| 5 | 距上次体检已满「体检周期」章(体检记录存 `.cache`,丢失则重测,无害) | 体检 |
|
|
|
| 6 | 其余 | 起草新章细纲(内环第 1 步) |
|
|
| 6 | 其余 | 起草新章细纲(内环第 1 步) |
|
|
|
|
|
|
|
@@ -482,6 +486,8 @@ v6 的 8 个命令全部内化为以上状态。作者只需要一个入口和"
|
|
|
|
|
|
|
|
唯一允许的持久派生物(`node:sqlite`),gitignored,任何时刻可删。首查重建,重建器只读 定稿/大纲/文风 源文件。表(机器域,表名英文):`chapters`(front matter 展开,含章定位/钩子/情绪定位/收卷)、`threads`(三类条目统一存放,类型为列)、`secrets`(信息差,含"读者已知"与蓄积章数)、`entities`(名册与角色卡)、`entity_aliases`(别名 → 正名索引,供别名解析与唯一性校验)、`fingerprints`(文体指纹历史)。列定义以 `cache-design-2026-06-26.md` 为准。**重建器即格式的参考实现**——能完整重建,说明格式自洽。
|
|
唯一允许的持久派生物(`node:sqlite`),gitignored,任何时刻可删。首查重建,重建器只读 定稿/大纲/文风 源文件。表(机器域,表名英文):`chapters`(front matter 展开,含章定位/钩子/情绪定位/收卷)、`threads`(三类条目统一存放,类型为列)、`secrets`(信息差,含"读者已知"与蓄积章数)、`entities`(名册与角色卡)、`entity_aliases`(别名 → 正名索引,供别名解析与唯一性校验)、`fingerprints`(文体指纹历史)。列定义以 `cache-design-2026-06-26.md` 为准。**重建器即格式的参考实现**——能完整重建,说明格式自洽。
|
|
|
|
|
|
|
|
|
|
+**改源流程自刷缓存**(决策 34):「缺失/损坏才重建」的正确前提是所有改源的路径自己负责刷新。定稿、回到第 N 章、吃书、卷复盘、修复回写、手改补登完成后由该流程立即重建缓存;刷新失败不阻断已完成的入档,但必须作废旧缓存(防陈旧章号/条目驱动后续判定),下次命令自动重建。
|
|
|
|
|
+
|
|
|
**删除 `.cache/` 后的行为**(RFC 澄清 B1):
|
|
**删除 `.cache/` 后的行为**(RFC 澄清 B1):
|
|
|
- 系统从源文件全量重建缓存(所有查询照常回答,这是 CI 验收项,不变量 2)
|
|
- 系统从源文件全量重建缓存(所有查询照常回答,这是 CI 验收项,不变量 2)
|
|
|
- 首次查询会触发冷重建(可能需数秒,视书籍体量),或临时降级为全文件扫描并给出提示
|
|
- 首次查询会触发冷重建(可能需数秒,视书籍体量),或临时降级为全文件扫描并给出提示
|
|
@@ -537,6 +543,13 @@ v6 的 8 个命令全部内化为以上状态。作者只需要一个入口和"
|
|
|
|
|
|
|
|
## 14. 决策记录
|
|
## 14. 决策记录
|
|
|
|
|
|
|
|
|
|
+### 0.9 → 0.10(依据:2026-07-03 M1-M5 全量 review,行为级探针复现)
|
|
|
|
|
+
|
|
|
|
|
+| # | 变更 | 落点 | 来源 |
|
|
|
|
|
+|---|------|------|------|
|
|
|
|
|
+| 33 | 序 2/序 4 执行责任落点:手改补登 = 脚本 `relink` 命令 `fix(手改): 说明`(前缀从示意的 `fix(设定)` 正名;此前只有检测无执行通道,作者确认补登后系统无事可做);卷复盘产物 = 脚本 commit `vol(NN): 复盘与下卷规划`(此前只落盘不提交,走完误触序 2) | §9、§10 | review P1-1/P1-3(两轮 review 均在"执行体归属"上抓到漏洞,钉死) |
|
|
|
|
|
+| 34 | 改源流程自刷缓存公约:定稿/回退/吃书/卷复盘/修复回写/手改补登完成后由该流程重建缓存;「缺失/损坏才重建」只兜底不感知源变更 | §11 | review P1-2(goto 回退后 next 用旧章号起草错章,探针确认) |
|
|
|
|
|
+
|
|
|
### 0.8 → 0.9(依据:2026-07-02 设计边界回顾,作者逐项确认)
|
|
### 0.8 → 0.9(依据:2026-07-02 设计边界回顾,作者逐项确认)
|
|
|
|
|
|
|
|
| # | 变更 | 落点 | 来源 |
|
|
| # | 变更 | 落点 | 来源 |
|