Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

附录 C 本书的 Spec(自举)

本书不是“讲“spec 驱动,它 spec 驱动。这一页是证据。

本书的需求

knowledge/requirements/req-agent-spec-book.md 定义了 REQ-AGENT-SPEC-BOOK: mdbook 工程 + mermaid 渲染、SUMMARY 完整性、章章有定位锚与图、前言双阅读路径 与知识地图、自举附录、双 E2E 轨迹、中文先行。它经历了与任何功能需求相同的 生命周期:intake 起草 → 人类确认 → transition --to accepted → 计划门检查 配对合同。

本书的合同

specs/task-agent-spec-book.spec.md 把需求降低为七个可机械验证的场景,每个 绑定一个真实的结构守卫测试:

场景绑定测试
SUMMARY 完整且章节文件齐备test_book_summary_lists_chapters_and_files_exist
章章有定位锚与 Mermaid 图test_book_chapters_carry_anchor_baseline_and_mermaid
mdbook-mermaid 已配置test_book_toml_configures_mermaid_preprocessor
前言含阅读路径与知识地图test_book_preface_has_reading_paths_and_knowledge_map
自举附录收录本书契约test_book_dogfood_appendix_embeds_own_contract
E2E 轨迹跨章且有图test_book_traces_span_chapters_with_diagrams
缺失章节被机械拒绝test_book_guard_fails_on_missing_chapter_fixture

第七个场景是异常路径:给结构校验函数一份引用了不存在文件的 SUMMARY 副本, 断言缺失清单指名该文件——守卫自己也被验证会叫。

写作即工作流

sequenceDiagram
    participant W as 写作者
    participant K as KLL
    participant T as 结构测试
    participant L as lifecycle
    W->>K: req-agent-spec-book.md (proposed)
    W->>W: 写合同,lint 至 100%
    W->>T: 先写七个测试 → RED(书不存在)
    W->>W: 写书稿(骨架→章节→附录)
    W->>T: cargo test → GREEN
    W->>K: transition --to accepted + 合同已在 specs/
    W->>L: lifecycle → 7/7 pass
    Note over W,L: explain 输出即本书的"验收报告"

有趣的推论:从今往后任何人删掉一章、忘了画图、改坏目录,CI 的 Contract Guard 都会在提交时拦下——这本书的结构质量不靠自觉,靠机器。这正是第 1 章说的 审查点位移在文档工程上的应用。

读者可以复刻

给你自己的项目文档立一份这样的合同,只需要:一条需求(写清结构承诺)、几个 文本形状测试(SUMMARY 解析 + grep 锚点)、satisfies: 连线。从此文档腐烂 是机械诊断,不是季度回顾时的叹气。