Schema-As-Code
Contract Library / Pre-Compilation Validation
③ 编译前置校验:显式规则的 5 项机器安检

编译前置校验验证 Pre-Compilation Validation

契约提交入库前的最后一道机器闸门。5 项安检全部是确定性检查,任一不过即短路阻断。
验证"显式规则本身是否合法",而非"翻译后是否被消费"。

1

选择对抗契约

5 类非法契约,查看各自在哪一关被拦截

对抗契约源码

intent_id: "ERR-001"
semantic_domain: "observational"
semantic_tokens:
  error_severity:
    fatal:
      visual_mapping:
        color_token: "status.critical"
        motion_token: "pulse.red.urgent"
    # ← 缩进错误:此处多缩进一格
      icon_token: "alert.octagon"
      user_action:
        - label: "刷新页面"
          action: "refresh"
# ... 后续字段正常

错误摘要

被拦截 第 1 关:结构合法性

YAML 缩进错误导致 icon_token 被解析为 fatal.visual_mapping 的子节点而非同级节点,Schema 类型校验失败。

2

5 项安检执行链路

先结构后语义,短路阻断,精确回报

BLOCKED

① 结构合法性

Schema 解析

YAML 语法 / 字段类型 / 枚举值域

SKIPPED

② 字段完整性

7 顶层字段

SemVer / 冻结清单

SKIPPED

③ 覆盖层存在性

字典注册核对

semantic_domain

SKIPPED

④ 绑定存在性

字典绑定核对

color_token / motion_token

SKIPPED

⑤ 场景一致性

场景映射核对

scenario_mappings

短路阻断详情

Schema 校验作为第一道工序,结构不合法的文件没有资格谈语义。规则树构建日志显示:0 节点生成,未进入引用对账

3

精确回报

错误码 + 字段路径 + 修正建议,让提交者一次改对

error_code: "SCHEMA_PARSE_ERROR"
field_path: "semantic_tokens.error_severity.fatal.visual_mapping"
line: 8
column: 6
message: "Unexpected key 'icon_token' at this indentation level"
expected_type: "mapping[string, string]"
actual_type: "null"

rule_tree:
  nodes_generated: 0
  semantic_check_entered: false
  dictionary_reconciliation_entered: false

blocking: true
dictionary_version: "v2.1.0"

# 修正建议:
# 将第 8 行缩进调整为与 color_token / motion_token 同级
# 即:减少一个缩进层级(2 个空格)

精确回报设计原则

错误码:机器可读,便于拦截统计与趋势分析
字段路径:定位到具体 YAML 节点,不模糊
修正建议:给出具体修改方案,但绝不自动纠正后放行——纠正必须由人确认,防止校验器替规则作者做决定

4

三道防线串行接力

先合法,再对齐,再防越界

1

本文:5 项安检

守"规则本身合法"
结构 / 字段 / 域 / 绑定 / 场景

输入:原始契约 YAML

输出:合法规则 或 阻断

2

字典防线

守"规则的字典引用与版本对齐"
引用存在 / 版本兼容 / 同版换版

输入:合法规则

输出:对齐规则 或 阻断

3

跨层禁止

守"规则的语义绑定不被越界使用"
编译期 / Lint 期 / 生成期拦截

输入:对齐规则

输出:防越界执行

原始契约 ① 合法规则 ② 对齐规则 ③ 防越界执行
5

验证结论

5 项命题全部通过,任一不过即阻断入库

安检关卡 命题 对抗契约 错误码 结果
① 结构合法性 非法 YAML 结构可被拦截 缩进错误 SCHEMA_PARSE_ERROR ✓ 已拦截
② 字段完整性 缺字段契约可被拦截 缺少 scenario_mappings FIELD_INCOMPLETE ✓ 已拦截
③ 覆盖层存在性 未注册覆盖层可被拦截 custom_domain SEMANTIC_DOMAIN_UNDEFINED ✓ 已拦截
④ 绑定存在性 悬空引用与拼写错误可被拦截 status.critial BINDING_UNDEFINED ✓ 已拦截
⑤ 场景一致性 非法场景映射可被拦截 场景指向未注册 domain SCENARIO_DOMAIN_MISMATCH ✓ 已拦截

核心命题验证完成

5 项安检全部是确定性检查(注册项比对、字段清单核对、Schema 解析),不依赖概率模型。
同一份契约任何时刻校验结果一致。任一校验不过即阻断入库,不存在"先入库后修复"的灰色状态。

契约库不再有"格式正确"掩护下的非法规则。你维护的是一座只进合格品的仓库。

编译前置校验验证完成

Schema-As-Code 三阶段流水线:Guard → Contract → Verify

返回 Schema-As-Code →