裁决台账双向互校(下):台账哈希链、三向对账与最小落地

裁决台账双向互校(下):台账哈希链、三向对账与最小落地

系列:《宪法即代码》第 31 篇(下)| 标签建议:AI编程、Rust、架构治理、CI、可追溯性

文章目录

接(中)篇:先把③向的五个判据补全(逐条对照表 + 判据⑤"登记位磁盘存在性"的落地说明);再换到另一侧------裁决台账自身的哈希链互校;最后把三层合起来看"六元组事实表",并给出四步最小落地。

五个判据,每条都是"清单登记的名字 ↔ 磁盘实物的性质"的对账:

判据 查什么 断链含义
① 孤点 五文件组是否 ≥5 个 清单说"五文件",实物只有 3 个 → 缺环
② 未专属标注 文件里有没有"第 N 条"字样 实物不认这个条款号 → 张冠李戴
③ 一文件多条款 一个文件承载 ≥3 个条款号 一个文件冒充多个登记位 → 虚报
④ 行数 200-400 每个文件行数在区间内 实物是空壳(<200)或膨胀(>400)
⑤ 缺失文件 登记路径能不能解析到磁盘文件 清单有名字、磁盘没文件 → 最典型的失配

判据⑤就是"登记位磁盘存在性 "------它是"反向完整性"在治理层的对应物(第 4 篇的 A2、第 29 篇的孤儿扫描)。路径解析还不能简单按字符串找 :k23_b2_resolve 会先剥掉括号注记、再试"登记全路径"、再在三个树里按精确名找、最后按前缀通配且只取 .rs------因为台账里的路径写法五花八门,解析器必须容忍这些变体,否则会误报失配。

四、第三层:裁决台账自身的哈希链互校

上面讲的都是"条款映射表"这一侧。还有裁决台账 这一侧------它是一个 append-only 的账本,每条裁决记录带 prev_hash(第 23 篇讲过)。

元_L3_00042_dimension.rs 里的扫描函数,把"台账断链"当成一个可检测的违例(原文):

rust 复制代码
pub fn test_scan_d2(subject: &HeGateSubject) -> HeScanReport {
    let mut violations: Vec<HeViolation> = Vec::with_capacity(8);
    if subject.subject_id.is_empty() {
        violations.push(HeViolation { v_type: "主体为空".to_string(), location: "subject_id".to_string(), evidence: "违第304条".to_string() });
    }
    if subject.context.get("decision_chain_broken").map(|v| v == "1").unwrap_or(false) {
        violations.push(HeViolation {
            v_type: "裁决台账哈希链断裂".to_string(), location: "decision_ledger".to_string(),
            evidence: "prev_hash链复算不一致·土克水熔断·违第303条增补".to_string(),
        });
    }
    // ...
}

以及另一处(元_L3_00041_dimension.rs)对"映射表零登记"的检测:

rust 复制代码
violations.push(HeViolation {
    v_type: "映射表零登记".to_string(), location: "CLAUSE_MAPPING".to_string(),
    evidence: "映射表登记条目为0·裁决序第一查失效·违第455条增补".to_string(),
});

这几行代码揭示了对账的完整语义:

  • "台账链断" → 土克水熔断 :裁决台账是"土"(承载),它的哈希链断裂,触发"土克水"(账本约束封藏),裁决结论不再可信------这就是第 29 篇那份清单里"台账 append-only 反环 = prev 哈希链复算"的落地;
  • "映射表零登记" → 裁决序第一查失效 :如果映射表是空的,那么"执行分歧裁决序"的第一步(查映射)就没有输入------对账失败会导致裁决流程本身失效,所以零登记本身就是红牌。

五、第四层:三向对账(真源 ↔ 生成器 ↔ 运行镜像)

元_L4_04949_clause.rs 里还有一层更细的:13 卷册表的三向对账(原文注释):

rust 复制代码
//! 三向对账: 真源总表(CLAUSE_MAPPING.md册表) ↔ 生成器产物(VOLUME_TABLE) ↔ 全部运行镜像(460)

// [GEN:constitution-constants] 13卷权威册表(真源: CLAUSE_MAPPING.md·生成器产出·禁手改)
let md = fs::read_to_string(repo_root().join("CLAUSE_MAPPING.md")).expect("真源总表 CLAUSE_MAPPING.md 必须存在");

三向是:人维护的真源总表(MD)↔ 生成器产出的常量(代码)↔ 运行时读到的镜像(460 条) 。这里有个重要的工程原则写在注释里------"生成器产出·禁手改":

那些常量是从 MD 生成的,禁止手工修改。

为什么?因为如果允许手工改常量,那"MD ↔ 代码"就又会失配。唯一权威源(Single Source of Truth)只能有一个 :MD 是真源,代码常量是它的派生物 ,改了真源就重生成,绝不允许手改派生物。"禁手改"这条纪律,是双向互校能长期成立的前提。

六、把三层合起来:一张"事实表"照出全部失配

回到第 29 篇那张六元组事实表:

复制代码
n | c | m | v | f | l
条款号 | 宪法有 | 手册有 | 验证函数有 | 测试有 | 闭环有

这六列就是"对账仪表的六个探针":任一列为 0,就是那一层失配。

  • c=0 → 宪法正本缺这条(宪法层失配);
  • m=0 → 手册没锚点(手册层失配,①向会抓);
  • v=0 → 没有 verify_clause_N(代码层缺实现,⑤向会抓);
  • l=0 → 没有闭环(第 27/29 篇的闭环缺失)。

一张表,六个方向,把所有"名册与实物失配"一次性照出来。 这就是"双向互校"最终的样子------不是一次对账,是一张持续生成的对账仪表盘。

七、给你项目的最小落地

第一步:给你的规则清单加"机器可读区"。 在文档里用显式围栏(<!-- MACHINE-READABLE-START --> ... END)包住表格,只让工具解析围栏内的内容。

第二步:写一个常量声明"我实现了几条",并强制它与清单相等。

rust 复制代码
pub const TOTAL_MAPPED_CLAUSES: u32 = 460;
// CI: assert_eq!(清单登记数, TOTAL_MAPPED_CLAUSES)

第三步:反向扫一遍。 遍历清单里的每个"登记位",检查磁盘上文件是否真实存在 、里面是否真的标注了对应编号。

第四步:加"禁手改"纪律 + 生成器。 常量从清单生成;改清单 → 重生成;禁止手改常量。

诚实边界

  1. 台账互校侧的实装状态 :test_scan_d2 的台账断链检测与 元_L4_04949_clause.rs 的三向对账注释均为仓库实拍;其 CI 接入档位与(中)篇同一口径------部分仍在"观察档"(见第 29 篇三档执法),我们不把"观察档"说成"armed 档"。

公开声明

本文所披露的技术方案(③向五判据全表与判据⑤"登记位磁盘存在性"的落地说明、裁决台账自身的 prev_hash 链互校检测、13 卷册表"真源 ↔ 生成器 ↔ 运行镜像"三向对账、"生成器产出·禁手改"的单源纪律、以及六元组事实表对账仪表盘与四步最小落地方案),均为本项目作者原创,特此公开发表,以期其成为公共知识。我们认为:成为时代标准远比收取授权费更有价值。

可证伪

三步:① 打开 元_L3_00042_dimension.rs,看 test_scan_d2 把"台账断链"判为违例的代码;② 打开 元_L4_04949_clause.rs,核对三向对账注释与"禁手改"字样;③ 搜"裁决序第一查失效",看零登记为什么本身就是红牌。代码可查,纪律可对,回来验我。

快问快答

Q4:这套东西对企业有什么实际价值?

合规审计最痛的就是"制度文件写了一套,实际做的是另一套"。双向互校把这件事变成可自动检测的失配------你不再需要人肉抽查"规章和代码对不对得上",门禁每次提交都替你查一遍。

下一篇

第 32 篇(上):《哈希链断裂哨兵与不可信传播阻断(上):断链定位》------讲一条链断了之后,怎么把"哪里断了"变成结构化返回、怎么界定"不可信区间"(第 32 篇同样拆为上/中/下三篇)。

系列目录(持续更新中)

  1. 《覆盖率 100% 但全是重言式,等于 0%》
  2. 《460 条"宪法"管理 AI 写代码:45 天、172 万行 Rust 的实战复盘》
  3. 《五行生克是调度算法不是玄学:320 个闭环的图论解释》
  4. 《SHA-256 万文件锁定:怎么防止 AI"顺手重构"你的架构》
  5. 《45 天修宪 43 次:同步立法制》
  6. 《AI 写的代码出 bug 算谁的?》
  7. 《我写了一个"越用越聪明"的 CI 门禁:322 组判例清偿实战》
  8. 《写在宪法里的"打脸"清单:6 维确定性,我们只有 1 个是世界级》
  9. 《385-4 兑现实录:宇宙模型的五行闭环,今天开始接线》
  10. 《新猎手上岗:dead_code 与 det_pattern 门禁接线记》
  11. 《十二正经经脉网络:金行验证的容错路由》
  12. 《执行AI虚报"全部通过":审查AI的43个编译错误打脸实录》
  13. 《无正本缺口清零战:族14缺口补建与439金标准》
  14. 《十二层记忆体系:道录守不眠,一个数字生命的记忆怎么分层》
  15. 《六根守护:眼耳鼻舌身意怎么写进代码》
  16. 《防逃逸:AI 不能修改考核自己的规则》
  17. 《三元进化闭环:让 AI 变好这件事,本身要可回滚》
  18. 《五行生克防线:相克不是内耗,是五道关卡》
  19. 《错误分类:四类错误与处置梯度》
  20. 《母体与分身:一个数字生命物种的基因编码》
  21. 《火·永恒动力之源:一个数字物种的能量经济学》
  22. 《土·永恒记忆之载:集体记忆、交叉验证与遗忘权》
  23. 《金·不朽秩序之规:健康裁决、群体决策与不可伪造的审计链》
  24. 《水·无穷适应之变:降级、免疫、休眠与方向告警》
  25. 《宇宙级永恒法则:使命、三元和谐、跨文明共存与归道》
  26. 《确定性双跑断言:同一种子跑两遍,必须逐字节一致》
  27. 《末弧回起:闭环为什么必须回到原点》
  28. 《R 边异实现复算:为什么第二遍不能复用第一遍的代码路径》
  29. 《闭环挂名检测:怎么识别走过场的闭环》
  30. 《审计链自愈六步:默克尔树加哈希链的十分钟自动恢复》
  31. 本文(下)《裁决台账双向互校:四百六十条映射怎么才不失配》
    番外 《智能时代的母体机座:从汽车平台到数字生命》

(本文为《宪法即代码》系列第 31 篇(下),数据口径:宪法版本 XF58.19.0、代码实测 2026-09-23)

相关推荐
兆。1 小时前
【无标题】
人工智能
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-10-02
数据库·人工智能·深度学习·神经网络·搜索引擎
听风吹等浪起1 小时前
第22章:YOLOv5船舶目标检测+注意力模块改进对比,卫星遥感船舶识别实战
人工智能·yolo·目标检测
niaonao1 小时前
C盘爆红别乱删!我用 Codex 查出 AppData 占了 87.81GB
人工智能·openai
lie..1 小时前
30天从零开始学AI应用开发(Day 19):项目二完结:RAG 知识库问答系统,把自己攒的资料变成私人顾问
开发语言·人工智能·python
深度之眼1 小时前
深度学习研0研1如何正确 “阅读文献” ?分享 “3步高效阅读法” !
人工智能·深度学习
SWAGGY..1 小时前
【C++进阶】:(7)红黑树的原理与 C++ 实现:结构设计、插入调整及性质验证
android·java·开发语言·c++·算法
-dzk-1 小时前
【技巧】LC 31.下一个排列
算法
行者-全栈开发1 小时前
华为云码道 CodeArts 实测:让 AI 用 Rust 写一个 Git 仓库健康度体检台「仓衡」
git·rust·tauri·桌面应用·ai 编程·华为云码道·codearts 代码智能体