基于证据的文档
一个声明只有在具备验证手段时才构成文档。 此技能是标准与地图:十个准则,以及每个准则的定义、执行和种子位置。
它是一个导航器,而非第二副本。以下每条定律只有一个归属——这是准则3,任何重述该原则的导航器都会违反它所索引的规则。每个准则的完整陈述、其原理及执行方式均位于
documentation.md → 准则部分。
十个准则
- 声明携带其地址 ——
文件:行号,附带输出的命令,测试名称;经验教训需指明其提交。 - 数字是计算得出的,绝不重述。
- 每个事实只有一个归属 —— 其他部分只链接,绝不重述。
- 引用从文档读取的位置解析 —— 而非其存储位置。
- 无人见证的绿灯变红不算证据。
- 检查证明其范围,不超出范围。
- 沉默不是通过 —— 询问机制在未检查时输出什么。
- 估算绝不应被宣布为测量结果 —— 规则需说明其证据条件。
- 未检查的内容应与已检查的内容一同输出。
- 文档随变更一同交付 —— 修改是追加,而非覆盖。
这些是认识论层面的:定义什么构成文档声明。操作层面——在给定触发条件下该做什么,附带检查与退出标准——位于
learned.md。当两者看似表述相同内容时,准则是为什么,规则是如何做。
下一步操作
| 您将要…… | 阅读 | 原因 |
|---|---|---|
| 从零开始建立项目文档 | documentation.md → 清单部分 | 在开始第一行工作前回答四个问题 |
| 记录决策使其超越作者 | 寄存器与ID + templates/decisions.md | 仅追加ID、边缘标记、单一决策归属 |
| 修改内容且不使文档孤立 | 文档循环 + 传播矩阵 | 变更需要更新哪些文档,从元数据行开始 |
| 确定事实归属 | 单一事实来源 | 两个归属在一方更新时产生冲突 |
| 构建不可撒谎的检查 | gates.md | 三个轴、执行阶梯、渐进武装、探测 |
| 信任报告成功的机制 | gates.md → 假成功 | 消除检查理由的失败 |
| 将检查接入代理自身工具 | hooks.md | 钩子契约,以及崩溃的守卫允许该操作的原因 |
| 审计现有项目文档 | setup.md | 七遍扫描,从最简单开始,输出为修复计划 |
| 将经验教训带入下一轮 | retrospective.md | 先标记(冷触发读取它),然后修剪至上限十条;每条经验教训需指明其提交 |
| 将门控种子植入宿主项目 | templates/docgate.sh | 种子为绿色:在无输入时处于休眠状态 |
| 声明代理的行为 | tdd.md → 当被测对象是代理时 —— 此处命名而非链接,因为此导航器的目录外链接在打包器单独交付此技能时会断裂 | 地址是追踪ID和执行的断言(准则1);无人见证的绿灯变红是无人见证的绿灯变红(准则5) |
| 完成整个变更直至验收 | task-pipeline | 此技能是标准;那个技能说明变更如何到达仓库 |
适用范围
边界是“会被阅读为真”。 决策记录、README、验收报告、运行手册、面向用户的变更日志、审计发现、声称已验证的声明。
不通过此技能: 草稿、思考过程、聊天回复、提交信息、代码注释。要求为“让我检查一下”提供文件:行号是教会代理绕过规则的最快方式,而在规则实际保护某些内容时,这样做却适得其反。
拒绝短语——"без доков" / "on my word"。它适用于本应通过此处处理的任务:直接执行并大声说出来该声明无依据,而不是将估算呈现为测量结果(准则8)。
唯一测试
在文档交付前,阅读它,找到那句如果别人问“你怎么知道?”会让你尴尬的句子——然后要么给该句子一个地址,要么删除它。以上所有内容,就是将这个问题机械化的结果。