|
|
@@ -1,6 +1,12 @@
|
|
|
-# Story Repo 格式规格(v7 草案 0.8)
|
|
|
+# Story Repo 格式规格(v7 草案 0.9)
|
|
|
|
|
|
-> 状态:0.8。相对 0.7 的变更:
|
|
|
+> 状态:0.9。相对 0.8 的变更(2026-07-02 设计边界回顾,作者逐项确认,决策 27-32 见 §14):
|
|
|
+> - 收卷声明制:§4.1 增「收卷」字段、§7 细纲可提议收卷、§10 序 4 改按声明判定,`卷规模` 退为提示参考
|
|
|
+> - §10 序 0 钉死"源文件"清单;序 3 细纲计入未完成流程并补续跑映射表
|
|
|
+> - §3 book.yaml 增「体检周期」;§11 表清单补 entity_aliases(六表)
|
|
|
+> - §2.2 依赖口径改「运行时直接依赖仅 js-yaml,其余零依赖」
|
|
|
+>
|
|
|
+> 0.8 相对 0.7 的变更:
|
|
|
> - 新增 D3 决策:未登记伏笔检测——事实审查增 `unregistered_thread` 候选项(§8 第 6 步),声明制补漏网,非阻断
|
|
|
> - 新增 D4 决策:设定↔大纲单向依赖入宪(不变量 13,§4.2 角色卡说明)
|
|
|
>
|
|
|
@@ -12,7 +18,7 @@
|
|
|
> - 补充审稿终止机制:severity + blocking 规则(§8 第 6-7 步)
|
|
|
> - 澄清 B 类问题:缓存删除代价(§11)、关键词扫描边界(§4.3)、两审模式(§8 第 6 步)
|
|
|
>
|
|
|
-> 来源:2026-06-10「最正确架构」讨论 + PRD 1.0(2026-06-12 定稿)+ RFC 后续决策(2026-06-26)+ RFC 深度核验(2026-06-27,Discussion #118 第 8 条评论与 v7 逐条核验)。
|
|
|
+> 来源:2026-06-10「最正确架构」讨论 + PRD 1.0(2026-06-12 定稿)+ RFC 后续决策(2026-06-26)+ RFC 深度核验(2026-06-27,Discussion #118 第 8 条评论与 v7 逐条核验)+ 设计边界回顾(2026-07-02)。
|
|
|
> 地位:`v7-prd.md` 是产品法律文本,本规格是**格式法律文本**——两者冲突时以 PRD 为准并修订本规格。代码是格式的派生物:任何实现与本规格冲突时,改实现或改规格,不允许"代码里悄悄多存一份"。
|
|
|
> 范围:本规格管**格式层**(工作目录与 story repo 里有什么、长什么样、怎么变更),平台无关。宿主适配(SKILL.md 入口、subagent 壳、安装器)由 `multi-agent-adaptation-spec-2026-06-05.md`(v3.4)承接。
|
|
|
|
|
|
@@ -111,7 +117,7 @@
|
|
|
|
|
|
### 2.2 中文路径的工程约束(规范性,CI 强制)
|
|
|
|
|
|
-- **脚本运行时统一 Node ≥ 22.13.0**(零第三方依赖:`.cache/index.db` 用内置 `node:sqlite`,v22.13.0 起无需 `--experimental-sqlite` flag;装任何 agent CLI 的用户必有 Node;无 Python、无 pip、无 .env)。安装器检测 Node 版本,< 22.13.0 时人话提示升级。一切文件 IO 显式 UTF-8(Node 默认即是),禁止依赖系统 locale。
|
|
|
+- **脚本运行时统一 Node ≥ 22.13.0**(运行时直接依赖仅 `js-yaml`——YAML 规范复杂不适合手写,解析用成熟库、序列化手写防呆方言,决策记录见 M1 任务 design §8.1;其余零依赖:`.cache/index.db` 用内置 `node:sqlite`,v22.13.0 起无需 `--experimental-sqlite` flag;装任何 agent CLI 的用户必有 Node;无 Python、无 pip、无 .env)。安装器检测 Node 版本,< 22.13.0 时人话提示升级。一切文件 IO 显式 UTF-8(Node 默认即是),禁止依赖系统 locale。
|
|
|
- 仓库初始化时设置 `git config core.quotepath false`(git log 里中文路径可读)。
|
|
|
- 文件排序一律靠零填充数字前缀(`0152-`、`第05卷`、`伏笔-031`),不依赖中文字典序。
|
|
|
- 实体引用一律用**正名**(中文),别名经名册(§4.5)解析。
|
|
|
@@ -136,13 +142,14 @@ spec_version: "7.0"
|
|
|
书名: 示例书名
|
|
|
类型: 玄幻
|
|
|
每章目标字数: 3000
|
|
|
-卷规模: 40 # 参考值,不是硬约束
|
|
|
+卷规模: 40 # 参考值:仅供全书近况提示与细纲收卷提议(§7),不参与状态机判定
|
|
|
文体基线起: 1 # 文体指纹基线章区间,作者可改
|
|
|
文体基线止: 30
|
|
|
伏笔悬了太久章数: 10 # 超过亮"悬了太久"提醒(提醒不是错误)
|
|
|
悬念悬了太久章数: 10
|
|
|
感情线悬了太久章数: 30
|
|
|
连续弱钩上限: 3
|
|
|
+体检周期: 50 # 手动模式每 N 章体检(§9);连写时体检随批次(§8.1)
|
|
|
关键章稿数: 3 # 卷首/转折/高潮章 best-of-N
|
|
|
自动确认细纲: false # true 时细纲默认采纳提案,跳过停顿点 2(§8.1)
|
|
|
连写批次大小: 8 # 自动模式一个批次的章数,也是连写体检周期(§8.1)
|
|
|
@@ -167,6 +174,7 @@ spec_version: "7.0"
|
|
|
章定位: 推进 # 推进|过渡|日常(细纲声明,§7)
|
|
|
钩子: 危机钩-强 # 结尾钩子类型与强弱(章属性)
|
|
|
情绪定位: 压抑 # 压抑|铺垫|小爽|大爽|转折(章属性)
|
|
|
+收卷: 是 # 可选,仅卷末章有:作者确认细纲的收卷提议后由定稿写出(§7、§10 序4)
|
|
|
伏笔:
|
|
|
- 埋下 伏笔-058
|
|
|
- 推进 伏笔-031
|
|
|
@@ -361,6 +369,8 @@ B 方案:本章纯感情线过渡(定位改"过渡章"),伏笔-031 推
|
|
|
|
|
|
作者动作只有三种:点头 / 改 / 选备选。改 = 直接编辑此文件,或一句话让系统改(不变量 10)。
|
|
|
|
|
|
+**收卷提议(声明制)**:本章提案可声明"本章收卷"——AI 依据卷纲进度与 `卷规模`(参考值)提议,作者确认细纲即生效,定稿时写入章 front matter `收卷: 是`(§4.1),下次启动触发卷复盘(§10 序 4)。收不收卷是创作决策,只由作者确认;状态机不用章号整除推算卷末。
|
|
|
+
|
|
|
**大纲偏离是决策点不是 bug**:写稿偏离细纲/卷纲时,细纲下一章给三选——拉回 / 改纲 / 存进 `大纲/灵感池.md`(偏离素材与未用的好点子都归这里,卷复盘时翻一遍)。
|
|
|
|
|
|
## 8. 写章流程(内环,八阶段)
|
|
|
@@ -449,16 +459,28 @@ ch(152): 北境的雪
|
|
|
| 0 | 任一源文件解析失败 | **修复确认**:定位到行、展示上下文、AI 提议保留意图的修复、作者确认。全角冒号/逗号出现在结构位置属确定性错误,直接预修复后只报不问。**永不带堆栈崩溃** |
|
|
|
| 1 | 工作目录无任何书 / 当前书不存在 | **建书引导**:问答式生成 book.yaml、总纲、第一卷卷纲,生成书仓库(含指路 AGENTS.md),登记进 `books.jsonl` |
|
|
|
| 2 | 定稿/大纲有未登记手改 | 提议 fix 补登 |
|
|
|
-| 3 | 工作区有未完成流程(含待定稿批次) | 从中断的阶段继续 |
|
|
|
-| 4 | 刚定稿的章是卷末章 | 卷复盘 |
|
|
|
-| 5 | 章号到达体检周期 | 体检 |
|
|
|
+| 3 | 工作区有未完成流程(细纲/材料/草稿/审稿,含待定稿批次) | 按续跑映射表从中断的阶段继续(见下) |
|
|
|
+| 4 | 最新定稿章声明了收卷(front matter `收卷: 是`,§4.1/§7) | 卷复盘 |
|
|
|
+| 5 | 距上次体检已满「体检周期」章(体检记录存 `.cache`,丢失则重测,无害) | 体检 |
|
|
|
| 6 | 其余 | 起草新章细纲(内环第 1 步) |
|
|
|
|
|
|
+**序 0 的"源文件"清单(钉死范围,实现不得自行增减)**:`定稿/正文`、`大纲/伏笔|悬念|感情线`、`定稿/设定/角色`、`定稿/设定/信息差` 的 front matter;`book.yaml`;`文风/文风铁律.md` 的 front matter;`定稿/设定/名册.md` 与 `定稿/设定/时间线/` 的表格。清单之外不属序 0 扫描范围(总纲/卷纲/摘要是自由 Markdown,无可失败的结构)。**任一清单文件解析失败都不得静默降级为默认值**——必须进修复确认。
|
|
|
+
|
|
|
+**序 3 的续跑映射**(`细纲.md` 计入未完成流程——已确认的细纲是作者决策,不得被序 6 重新起草覆盖):
|
|
|
+
|
|
|
+| 工作区现存 | 从哪继续 |
|
|
|
+|---|---|
|
|
|
+| 仅 细纲.md | 出示细纲请作者过目,然后备料(§8 第 3 步) |
|
|
|
+| + 本章写作材料.md | 写稿(第 4 步) |
|
|
|
+| + 草稿-*.md | 机检 / 两审(第 5-6 步) |
|
|
|
+| + 审稿.md | 等作者裁决(第 7 步) |
|
|
|
+| 待定稿/ 有批次 | 自动模式批次续跑(§8.1) |
|
|
|
+
|
|
|
v6 的 8 个命令全部内化为以上状态。作者只需要一个入口和"继续"。
|
|
|
|
|
|
## 11. 派生缓存 `.cache/index.db`
|
|
|
|
|
|
-唯一允许的持久派生物(`node:sqlite`),gitignored,任何时刻可删。首查重建,重建器只读 定稿/大纲/文风 源文件。表(机器域,表名英文):`chapters`(front matter 展开,含章定位/钩子/情绪定位)、`threads`(三类条目统一存放,类型为列)、`secrets`(信息差,含"读者已知"与蓄积章数)、`entities`(名册)、`fingerprints`(文体指纹历史)。**重建器即格式的参考实现**——能完整重建,说明格式自洽。
|
|
|
+唯一允许的持久派生物(`node:sqlite`),gitignored,任何时刻可删。首查重建,重建器只读 定稿/大纲/文风 源文件。表(机器域,表名英文):`chapters`(front matter 展开,含章定位/钩子/情绪定位/收卷)、`threads`(三类条目统一存放,类型为列)、`secrets`(信息差,含"读者已知"与蓄积章数)、`entities`(名册与角色卡)、`entity_aliases`(别名 → 正名索引,供别名解析与唯一性校验)、`fingerprints`(文体指纹历史)。列定义以 `cache-design-2026-06-26.md` 为准。**重建器即格式的参考实现**——能完整重建,说明格式自洽。
|
|
|
|
|
|
**删除 `.cache/` 后的行为**(RFC 澄清 B1):
|
|
|
- 系统从源文件全量重建缓存(所有查询照常回答,这是 CI 验收项,不变量 2)
|
|
|
@@ -515,6 +537,17 @@ v6 的 8 个命令全部内化为以上状态。作者只需要一个入口和"
|
|
|
|
|
|
## 14. 决策记录
|
|
|
|
|
|
+### 0.8 → 0.9(依据:2026-07-02 设计边界回顾,作者逐项确认)
|
|
|
+
|
|
|
+| # | 变更 | 落点 | 来源 |
|
|
|
+|---|------|------|------|
|
|
|
+| 27 | 收卷声明制:卷末由作者在细纲确认收卷提议、定稿写入 front matter `收卷: 是`;序 4 按声明判定;`卷规模` 退为全书近况提示与提议参考 | §3、§4.1、§7、§10 | 边界回顾 #5(代码 `章号 % 卷规模` 整除启发式与"卷规模是参考值"矛盾,且 spec 未定义卷末判定) |
|
|
|
+| 28 | 序 0 "源文件"清单钉死:book.yaml/文风铁律/名册/时间线入列,解析失败不得静默降级 | §10 | 边界回顾 #6(book.yaml 解析失败曾静默用默认值跑) |
|
|
|
+| 29 | 序 3:`细纲.md` 计入未完成流程 + 续跑映射表;序 5 体检判定改"距上次体检已满周期" | §10 | 边界回顾 #7(已确认细纲曾被序 6 重新起草覆盖) |
|
|
|
+| 30 | book.yaml 增 `体检周期`(策略参数,作者可调) | §3 | 边界回顾 #4(代码已读此字段,规范缺位) |
|
|
|
+| 31 | 缓存表清单补 `entity_aliases`(六表),列定义以 cache-design 为准 | §11 | M4 review S1 回填补位(此前只进了 backend 规范) |
|
|
|
+| 32 | 依赖口径:运行时直接依赖仅 `js-yaml`,其余零依赖 | §2.2 | 边界回顾 #13(M1 任务 design §8.1 决策补入法律文本;PRD §5 同步修订) |
|
|
|
+
|
|
|
### 0.7 → 0.8(依据:RFC 深度核验 2026-06-27,Discussion #118 第 8 条评论 + v7 逐条核验)
|
|
|
|
|
|
| # | 变更 | 落点 | 来源 |
|