知识库作为活的系统规格说明
静态文档的根本缺陷
传统技术文档的根本问题是:它是死的。写成那一刻,就开始过时。系统演化了,文档没有跟上;需求变了,文档还停留在上一个版本;团队换了人,新成员不知道哪些文档是过时的。
问题出在结构上。静态文档跟它描述的系统没有硬性关联——文档是文档,代码是代码,两者各走各的路,各自腐化。只靠人的自觉来维持文档和代码的一致性,时间一长必然失败。
知识库作为活的系统规格说明,试图解决的正是这个结构性问题。它的意思是:技术知识的组织方式应该同时照顾人类理解和 AI 使用。当一份知识库真正做到了这一点,它就成为系统规格说明的一部分。
从描述到规格说明的跃迁
"描述"和"规格说明"有本质区别。
描述来自观察:它告诉读者系统现在是什么样子。描述可以模糊、可以过时、可以有遗漏,读者需要自行判断描述的可靠程度。
规格说明是规范:它声明系统应该是什么样子。规格说明是可验证的——系统行为与规格说明不一致时,要么系统有 bug,要么规格说明需要更新。
传统文档是描述。它没有约束力,不参与系统的执行过程。但当 CLAUDE.md 中写着"不使用 emoji",AI 在生成内容时就会遵守这条规则。这条规则不再只是一个建议——它通过 AI 的执行变成了一个有约束力的规格说明。知识库的内容一旦被 AI 当作上下文来读,就成了规格说明。
这个转变不是自动的。一段模糊的、歧义的描述即使被 AI 读取,也无法产生确定性的行为约束。只有结构清晰、语义精确、边界明确的知识库内容,才能有效地充当规格说明。换句话说,知识库的每一段内容都可能成为某次 AI 交互的 prompt 片段,精确度和可维护性都该拿 prompt 的标准来衡量。
双重读者的结构要求
一个同时服务于人类理解和 AI 使用的知识库,在内容组织上有一些特殊的结构要求。
自包含性。 每篇文章应该在合理的范围内自包含——读者(无论是人还是 AI)不需要打开十个链接才能理解一个概念。这不意味着不做引用,而是意味着引用的内容应该是"深入了解"的入口,读者不打开链接也能理解当前段落。对 AI 来说,自包含性直接决定了上下文窗口用得好不好:一篇自包含的文章可以作为独立的上下文单元被消费,一篇充满外部依赖的文章则需要递归加载大量关联内容。
层次化结构。 知识库的内容应该有清晰的层次:章节级别提供全局地图,文章级别提供完整论证,段落级别提供具体论点。这个层次结构对人来说是导航的辅助,对 AI 来说是检索的索引。扁平的知识库(所有内容都铺在同一层),人看还能凑合,AI 检索的精度就会大打折扣。
显式的概念关系。 人类读者可以通过阅读经验和领域知识隐式推断概念之间的关系。AI 依赖显式的引用链。当一篇文章提到"约束传播"时,显式链接到第四章的定义,不能指望读者已经知道这个概念。这种显式引用对人类读者是便利,对 AI 则是必要。
稳定的术语体系。 同一个概念在不同文章中使用不同的名称,人类读者还能靠上下文猜出来,AI 可能就以为是两个不同的概念了。统一的术语体系是知识库能充当规格说明的前提。
本项目作为自指案例
本项目——这本关于 LLM 应用开发最佳实践的技术著作——就是知识库作为活的系统规格说明的一个实例。
CLAUDE.md 声明了项目的定位、写作风格、技术倾向、协作规范。AI 每次协作时都会加载这些声明作为上下文,直接影响生成内容的风格、结构和质量。"偏好声明式而非命令式"这条技术倾向,不需要在每篇文章中重复说明,AI 会在生成代码示例时自动遵循。
章节结构的设计本身就体现了双重读者的考量。从认识论到方法论的展开,对人类读者来说是一条逻辑线索;对 AI 来说则是一个语义地图——当被问到关于测试的问题时,AI 知道应该参考第七章的内容,当被问到关于架构的问题时,AI 知道应该参考第五章。固定的结构让 AI 检索和引用时也更准。
每篇文章遵循统一的模式——论点声明、论证展开、代码示例(如适用)、局限性讨论——这个模式对人类读者来说是阅读节奏的保证,对 AI 来说是内容解析的可靠模板。AI 可以预期每篇文章的结构,从而更有效地提取和引用特定的信息。
怎么维护活的规格说明
知识库和静态文档的本质区别在于一个"活"字——它会随着认知的深入和实践的积累而演化。但演化必须是受控的,否则知识库会退化为一堆互相矛盾的随笔。
受控演化的关键机制:
向后兼容的概念演化。 当一个概念的定义需要更新时,更新不应该使引用该概念的其他文章失效。这和 API 的向后兼容原则一样——概念可以扩展、细化、补充,但已有的引用关系应该保持有效。
变更的可追溯性。 版本控制不仅记录"改了什么",还应该通过 commit message 记录"为什么改"。当 AI 使用知识库内容时,变更的理由比变更的内容更重要——理由提供了决策的上下文,AI 读懂意图后,才能处理字面规则管不到的情况。
内部一致性检查。 知识库的规模增长到一定程度后,人工维护内部一致性变得不可行。AI 反而可以在这个任务上发挥作用:检测术语使用是否一致、引用的目标是否存在、不同文章的主张是否矛盾。这就有意思了——AI 一边用知识库来干活,一边帮着检查知识库本身的质量。
技术知识该怎么组织
知识库作为活的系统规格说明,这个理念的意义不止于个别项目。它背后有一个更大的问题:LLM 时代,技术知识该怎么组织?
传统的知识组织范式——教科书、文档网站、Wiki——都是为人类读者设计的。它们假设读者是人,所以表达上可以用隐喻、留白、跳跃,靠读者自己推理补全。这些假设在 AI 作为读者的场景下不再成立。
但反过来,纯粹面向 AI 优化的知识组织——全结构化、全形式化、去除一切隐含信息——人读起来就没法看了。没有人愿意阅读一份看起来像数据库 schema 的技术书籍。
出路是找到两者的交集:既对人友好又对 AI 友好的知识组织方式。本书项目的 CLAUDE.md 中有一句话精确地表达了这个立场:"如果一份文档不能同时对人和机器保持清晰,那它的结构本身就有问题。"这是一个实践中可操作的质量判据。
张力
知识库要当系统规格说明,这里面有一个矛盾:规格说明要求精确和稳定,知识库要求开放和演化。过度追求精确会僵化,过度追求开放会失去约束力。这个平衡没有一劳永逸的答案。
另一个局限是规模。本项目作为一个个人项目,其知识库的规模和复杂度是可控的。当知识库扩展到团队级别或组织级别时,维护一致性、管理概念演化、协调多人贡献的成本会急剧上升。知识库的治理问题——谁有权修改核心定义、概念冲突如何仲裁、过时内容如何退役——在规模化场景下会成为主要矛盾。这些问题本质上是组织问题,这里不展开。