Expand description
evorule validate —— 规则集形态门禁(L2 纪律)
§从白名单到门禁
本命令最初只做一件事:校验顶层 type 是否在 core_eval 元指令白名单
(META_INSTRUCTION_TYPES)内。那份「规范」被写死在 Rust 里,只能回答一个
问题——顶层类型认不认识。
BUG-P0-005 暴露了它回答不了的问题:每条规则的 type 都合法、整个规则集
仍然可能让守卫永不求值(L1 io_request 排在 L2 enforce 之前、命中即
返回,后者永远求不到值)。这不是「某条规则写错」,而是排列与组合不合法
——性质上属于规则集的形态,不属于单条规则。
故本命令改为形态门禁:
- 判定条款在
evorule-tcb/discipline/core_eval.json(数据:可版本化、 可 diff、可评审,随内核发版,不存在「规范与代码各写一份」的漂移); - 遍历与事实标注在
discipline_gate(机制:把内核看不见的列表级事实 注入_ctx,判定全部交给execute_transition求值)。
作用域从「顶层 N 条」扩大到「含 branch 内嵌子指令的全部节点」—— BUG 不住在顶层。
§退出码
- 0:通过门禁
- 1:有纪律违规(含未知元指令 —— 即历史上的 DC-01 前身)
§行为变更提示
老版本只认顶层 type;新版本会额外拦截会让守卫失效的形态(DC-05 遮蔽)、 破坏重放等价性的形态(DC-08/DC-09)等。首次在新仓库跑出现违规属预期, 这些违规历史上一直存在,只是此前没有任何东西检查它们。
Functions§
- run
- 执行 validate 子命令