563737f39c
§2.4 讲的是「抢跑之前自己该跑哪些等价门禁」,那一节管形态;这一节管另一类钩子拦不住的东西: **归因与陈述的正确性**。今天一天里,这类错误造成的代价不比任何一个编译错误小,所以四条规则 每条都配着当天真实发生过的一次返工: 1. 数字必须钉产物身份(路径 + 构建/运行时刻);**重跑同一个报告脚本不算新测量**——产物没变、 数字必然不变,写成「我复验过」就是假凭证。附带本仓实测坑:stack_report.py 的 REPO_ROOT 跟着 __file__ 走,cd 进别的 worktree 跑主仓脚本量的还是主仓产物(今天就栽过一次,据此错怪了一笔 清白的提交,公开更正了两次)。 2. hash 不是稳定身份,tree + 父提交才是;出回执前先核 reflog,**先请人按 hash 复算、自己再重写 hash** 是顺序错误(今天真发生过,让队友的回执一出生就过期)。 3. 归因前先确认数字来自哪棵树、哪一次运行——并发时序不是谁的错。当天把「文件 mtime 晚于构建」 误判成某个道「删实现后注册」,实际只是两条道同时在写、构建读到中间态;更正时两个道都点到名。 4. 「我核过」不等于机器核过:「6 个文件 BOM 逐个核过」被 bom-guard 证伪;自写扫描脚本报「0 处 嵌套注释」是脚本自身 bug 的假绿。结论必须附可复跑的命令与退出码。 同族第二条是「**注释与文档必须陈述事实,而不是意图**」:ui_data_maint_ready() 的头注释写着「页面用 它决定这页能不能操作」,而页面从没用过它(全仓零消费者)。它解释了为什么假接口能活过一整轮评审: **评审读意图陈述,门禁读可达路径,两者都不反驳「意图未实现」**。写法要求与机器兜底的分界也写清了: 死代码有 bsp-err 的 consume-result 与覆盖率总闸兜,**意图陈述没有任何钩子能证伪**,只能靠写的人, 所以才必须落在文档里。 自查:check_doc_links.py --all exit 0(186 个文档)、本篇 --sections-strict exit 0(新增引用全部写成 可校验形式);check_ids.py --strict exit 0,不可判定绝对数 1162 **未变**(本笔没吃余量、没新增编号); 字节卫生 bom=false / CRLF=0 / U+FFFD=0 / 结尾换行齐,新增行最长 79 字符。 看板:本笔收口 task-35。其余任务仍在五条道手上,我只暂存本篇。