第 3 课
检查并诊断
诊断,是用固定的机械规则去检查规范的 DoclingDocument。命中了就记下来。 不修文档,也不拿比较视图当发现项的来源。
学完这一课
你要学会:怎么读一个发现项、严重程度到底是什么意思、证据为什么重要、 以及 NO_FINDINGS 只是"本规则集没命中",而不是"文档没问题"。
诊断不是判官
规则被刻意做得很窄。它们能识别的东西有限:替换字符、不该出现的标题 层级跳、重复文本、可以归一化的空白字符……但判断不了文档真不真实、 完不完整、合不合规、适不适合所有后续用途。
这种"窄"反而是优点。规则能下结论,前提是规范文档里确实有支撑结论的 证据。它不用去猜读者或下游系统喜欢什么。
把发现项当"带证据的断言"来读
一个发现项,包含:稳定规则标识符、显示名称、严重程度、受影响的文档 引用、规则专属证据。证据的形状随规则变化,因为每条规则撑的是不同的 断言。
拿空白字符发现项举例——它能指出具体哪些内容受影响、为什么触发了规则。 结构类发现项可能引用标题、偏移量或重复文本。严重程度是规则对问题的 固定分类,不是给你"可以改"的授权。
读发现项,按这个顺序来:
- 先看显示名称,知道报告了什么条件。
- 需要精确定位规则时,看稳定标识符,比如 D009。
- 严重程度是规则的固定分类,不是你的最终优先级。
- 在考虑改之前,看完证据和受影响的引用。
- 再看有没有受支持的修订器能处理这个发现项。
工作台的规则参考在第 2 步很管用——它列出所有固定规则、名称、严重程度 和检测条件。这是词典,不是评分卡。
NO_FINDINGS 的真实含义
NO_FINDINGS 是说:本轮准备,所有固定规则都没命中。不表示文档正确、 完整、合规,也不表示适合任何后续用途。
但这个结果仍然有价值。它记录了:哪个规范文档被诊断了、用了哪些规则、 结论是什么。工作台里,这轮的修订和修订版会被标记为"不需要"——因为 没有受支持的修改可供决策。诊断记录本身还在检查器里,随时可查。
诊断完,原样不动
诊断发布独立的不可变记录。来源、观察记录、规范文档——一样没动。 这样你检查发现项的时候,不会顺带把文档也改了。
当你不同意某条规则的结果时,这个分离就体现出价值了。你可以看完证据, 决定不修订,或者走别的流程。诊断记录始终老老实实地说:固定规则发现了 什么,仅此而已。
在工作台里试试
添加引导文档 whitespace-cleanup.md,点运行诊断。先别急着继续, 好好读一下 D009——显示名称、稳定标识符、严重程度、证据、"为什么 重要"的说明,逐一看过去。
打开检查器的"摘要"和"证据"标签页。摘要告诉你诊断结果,证据告诉你 这个结果是怎么来的。产物只在你有具体问题、需要看底层文件时才打开。
再添加 policy-memo.md,运行诊断。拿它的无发现项结果跟 D009 对比。 关键区别不是"好文档 vs 坏文档",而是"有固定规则命中了 vs 没有固定 规则命中"。
记住
证据回答"发生了什么"。改不改,是人决定的。别把两个问题混在一起。
下一课:决策并修订。