框架设计背景
本文是 Schema-As-Code 证据链 的"可靠性"站。在前序章节中, 阶段一 Guard 结构化诊断 通过 组件语义快照 与 三层判定模型 发现了 6 个漂移模式; 语义令牌表 把语义概念编码为离散枚举, 语义字典 成为组织级唯一信源, Token 层差异 证明了契约只引用字典绑定而非定义色值。但还有一个关键问题没有回答:如果字典是组织内唯一的真理来源,那"非法引用"如何被机器拦住?本文要验证的正是这条"字典引用的机器防线",不是人查文档,而是编译管线在加载、校验、执行的每个环节自动核对字典。
1. 问题:字典写了,不等于引用被守住了
语义字典 白纸黑字写着 status.critical 仅用于 transactional 域, 语义令牌表 明确定义了 error_severity 的四级枚举。但团队的真实反馈是:"规范里写着'限流提示禁用致命红',上线前才发现 AI 还是把它画成了红色。"
一份 YAML 契约 引用了字典里没有的条目,或把 fatal 级错误绑定到了 observational 域,或 LLM 把 Critical 降级为"严重",这些错误在造成伤害之前,机器能否识别并阻断?没有验证层,字典只是"写好了的规范",不是"被执行的规则"。
2. 为什么人工评审守不住:引用关系不可见
人工走查的局限不是责任心问题,是信息结构问题:
●设计师在 语义字典 中查到的 error_severity 定义,与 契约库 中的引用是否逐字对齐?人眼比对不了;
●前端工程师拿到的 Prompt 前缀 是否基于最新版字典编译?版本不一致时,生成结果与字典定义脱节;
●DesignOps 变更字典时,能否精确列出哪些契约、哪些消费面受影响?没有引用解析,影响面评估靠猜;
●AI 生成工具的训练语料里没有字典,提示词里不写,它就按旧习惯继续生成。
这正是 从观察到契约 的 Semantic Pipeline 要解决的问题:诊断和契约化之后,必须进入验证阶段,证明字典的引用关系真的被机器守住了。
3. 设计思路:三层机器防线
字典引用的机器防线不是单一检查点,而是三层独立校验:
●编译期(契约加载):加载 YAML 契约 时,逐条核对引用的语义令牌是否在 语义字典 中注册,版本是否匹配,跨层禁止是否被违反。非法引用在入库前即被阻断;
●生成期(AI 输出): 编译管线 将字典定义编译为 Prompt 前缀注入 AI 上下文, 语义分级器 抽检生成结果,对比字典锁定后的约束显化与当前 UI 的语义混乱;
●交付期(验收走查):设计师按 Checklist 逐项核对,红线项未过即阻断,结论注明契约版本号。
三层防线共享同一信源, 语义字典。字典升级时,三层全部自动换版,不存在"上游改了,下游还在用旧定义"的断裂。
4. 本文的核心命题
"字典引用的机器防线"必须翻译成可测试的命题。本文验证三个命题:
| 命题 | 验证标准 |
|---|---|
| 契约引用可被正确加载 | 系统加载 ERR-001 错误状态后果差异未分级 后,正确解析 error_severity 四级定义,与字典逐字对齐 |
| 令牌引用可被机器校验 | status.critical 的注册信息明确标注"仅用于 transactional 域",与契约覆盖层声明相互校验 |
| 不可变边界可被机器执行 | 红线项(如"禁止致命错误做成普通文字")未过即阻断,不存在降级或忽略 |
二、验证设计:三层
2.1 契约加载与解析验证——契约能被正确读入吗?
问题: 契约不是自包含文档,它大量引用字典中的语义绑定(如 error_severity 四级分级)。如果字典升级了,旧契约仍在引用过时结构,下游的 Checklist、Prompt 前缀、CI 规则将全部基于错误假设运行。
我的设计:
● 字典回查: 加载契约时逐条核对引用是否在字典中注册。发现字典外条目(如某团队私创 status.extreme),立即阻断并提示"引用未注册"。
● 版本锚定: 契约头部声明依赖的字典版本(如 v1.1.0),加载时锁定该版本快照。字典升级不会意外破坏旧契约。
● 不可变边界硬校验: "高危删除必须二次确认"这类硬性规则标记为最高优先级,任何校验中都不允许降级或忽略。
演示环境证明: 系统加载"ERR-001 错误状态后果差异未分级"漂移模式后,正确识别 error_severity 四级定义,与字典完全一致。这一结果在 5 个链路中得到交叉验证:
| 链路 | 验证点 |
|---|---|
| 链路 4(语义字典) | 设计师查到的 error_severity 定义与契约引用逐字对齐 |
| 链路 3(模式卡片) | 同一份契约编译为 4 种格式,证明引用解析后可被统一消费 |
| 链路 5(角色工作台) | DesignOps 能准确列出三类消费方,证明引用关系被完整解析 |
| 链路 1(结构化问诊) | 诊断输出的 YAML 片段可被系统识别为契约合法子集 |
| 链路 2(语义分级器) | "请求过于频繁"被识别为 retryable,输出约束与契约一致 |
在演示环境中,上传 ERR-001.yaml 后,系统正确解析了 semantic_tokens 与 immutable_boundaries,生成内存规则树,并完成引用对账:
●契约加载接口:输入 contracts/ERR-001.yaml,解析 semantic_tokens(4 个语义级别:fatal / transient / retryable / degraded)和 immutable_boundaries(2 条安全边界规则),生成内存中的规则树。
●引用对账:规则树生成时,逐条核对契约引用的覆盖层与绑定是否都在字典注册项内:
- 覆盖层 observational → 字典已注册 ✓
- 绑定 status.critical / status.neutral / status.warning / status.info → 字典已注册 ✓
- motion_token + icon_token 组合 → 字典已注册 ✓
- 引用对账 0 异常
●解析指标:4 个语义级别 / 14 个校验规则节点 / 6 个引用对账项全部通过 / 解析耗时 12ms
推演条件: 需明确组织分工——语义翻译设计师 维护字典定义,DesignOps 负责版本发布。字典是"语义宪法",修改权限集中。
2.2 语义令牌引用校验——令牌指向有效吗?
问题: 契约写了 color_token: status.critical,但字典可能未注册该绑定,或该绑定仅注册在 transactional 域却被用到了 observational 域。这种"跨层非法绑定"是语义漂移的主要形态。
我的设计:
● 编译前置校验: 核对所有 semantic_tokens 的引用路径。引用不存在的令牌,或令牌与覆盖层不匹配(如 status.critical 出现在 observational 域),编译直接阻断。
● 跨层禁止规则: 字典中注册的 6 个语义绑定均附带"跨层禁止"声明(如 status.critical 禁止用于 observational / navigational / conversational)。契约若违反,生成前即被拦截。
演示环境证明:
● 链路 2(语义分级器) 将"请求过于频繁"识别为 retryable(黄色时钟),而非 fatal(红色脉冲),证明令牌-视觉映射被字典锁定,机器不会"猜错级别"。
● 链路 5(前端工作台) 选择 ERR-001 后,输出的 Prompt 前缀自动注入"限流提示禁止红色"约束,证明字典的跨层禁止规则已被编译为可执行指令。
● 链路 4(字典查询) 中,status.critical 的注册信息明确标注"仅用于 transactional 域",与契约中的覆盖层声明相互校验。
【演示环境:编译前置校验验证报告 · 编译管线 v1 · M3 里程碑】
契约入库前,系统执行五项前置校验,任一不过即阻断入库。校验失败返回 { code, message, location },错误定位到具体字段路径:
| 安检项 | 查什么 | 对抗用例拦截结果 |
|---|---|---|
| 覆盖层存在性 | semantic_domain 是否在字典预定义列表 | custom_domain → SEMANTIC_DOMAIN_UNDEFINED ✓ 已拦截 |
| 绑定存在性 | color_token / motion_token / icon_token 是否在字典 | status.unknown → BINDING_UNDEFINED ✓ 已拦截 |
| 场景一致性 | scenario_mappings 是否指向字典已注册的覆盖层 | 未注册 domain → SCENARIO_DOMAIN_MISMATCH ✓ 已拦截 |
| 字段完整性 | 7 个顶层字段是否齐全、版本号是否符合 SemVer | 缺字段 + 版本格式错误 → FIELD_INCOMPLETE ✓ 已拦截 |
| 结构合法性 | YAML 语法、缩进、类型是否符合 schema | 缩进错误 → SCHEMA_VIOLATION ✓ 已拦截 |
2.3 不可变边界执行验证——红线能被守住吗?
问题: 契约中声明了"禁止致命错误做成普通文字",但这条规则在下游工具中真的被执行了吗?如果设计师的 Checklist 漏了这项,或 CI 规则没有配置这条,不可变边界就会名存实亡。
我的设计:
● violation_action 三档执行: block(阻断生成)、warn(记录放行)、escalate(升级审核)。安全类边界必须 block,不允许降级。
● 消费追踪(Observability): 追踪每份契约被哪些 Prompt 前缀引用、被哪些组件校验规则消费。追踪指标包括契约文件版本号、下游消费点清单、最后同步时间戳。
● 版本兼容与弃用: 旧契约可继续引用旧版本字典(多版本共存,编译时按契约声明的字典版本解析);弃用项标记 deprecated 保留至少 90 天;所有变更经 Git Diff 审查留痕,可回滚、可归因。
演示环境证明:
● 链路 5(设计师工作台) 的验收 Checklist 中,6 项检查逐项勾选,红线项未过则结论为"不通过,必须修改"。
● 链路 2(语义分级器) 的对比视图直观展示了"语义混乱"(所有错误同一种红色)与"约束显化"(四级四色)的差异,证明红线可被机器感知。
● 链路 1(结构化问诊) 的三层判定中,若用户勾选"所有错误都用红色",系统直接匹配 ERR-001 并标注"视觉校验失败",证明边界突破可被结构化定位。
【演示环境:契约消费追踪与版本治理验证报告 · Observability】
在演示环境中,手动模拟了契约提交 → 解析 → 生成 Prompt 前缀的完整链路:
●消费追踪:ERR-001 v1.1.0 的 4 个下游消费点(Prompt 前缀 / JSON Schema / Checklist / CI 规则)全部同步,版本号 v1.1.0、最后同步时间戳 09:42:18 已记录,消费断裂点 0 个。
●版本兼容:字典 v1.0 与 v1.1 多版本共存已验证;旧契约 ERR-001 v1.0.0 按声明引用字典 v1.0 编译,新契约 ERR-001 v1.1.0 引用字典 v1.1 编译,互不影响。
●弃用策略:废弃令牌 status.deprecated_token 标记 deprecated → 90 天内编译 warning,附迁移指引 → 90 天后移除,引用即报错。
●失败判定:三类失败场景(超时未消费 / 版本不一致 / 消费日志断裂)的检测策略与告警格式均已定义,可在 Observability 面板中实时监控。
●端到端链路:契约提交 → 前置校验 → 规则树生成 → Prompt 前缀编译产出,端到端耗时 10s,零异常,链路成功率 100%。
三、它一直在工作吗:运行逻辑
5 个交互链路不是孤立工具,而是一个自增强的飞轮:
链路 1(结构化问诊)发现问题
↓
链路 4(语义字典)更新定义
↓
链路 5(角色工作台)消费新规则
↓
链路 2(语义分级器)验证拦截率
↓
链路 3(模式卡片)沉淀证据
↓
回到链路 1,置信度递增

飞轮咬合点:
● 链路 1 是启动器: 语义翻译设计师通过三层判定将新漂移归档为模式卡片,触发字典变更需求。
● 链路 4 是轴承: 所有模式卡片必须经过字典的规范化写入,才能成为可被引用的语义令牌。
● 链路 5 是传动带: 字典更新自动同步到设计师的 Checklist、前端的 Prompt 前缀、CI 的拦截规则。
● 链路 2 是转速计: 持续抽检 AI 生成结果,若某条文案的语义分级与字典不符,立即触发新一轮诊断。
● 链路 3 是飞轮本身: 每一次验证结果(通过/失败)追加到模式卡片,使字典的置信度随时间递增。
管理者视角的验证结论:
这套防线的价值不在于"写了多少规则",而在于规则可被机器执行、结果可被交叉验证、失效可被定位追溯。当设计师在链路 4 查到的定义、前端在链路 5 拿到的 Prompt、CI 在链路 2 执行的拦截,三者指向同一份字典时,组织才真正拥有了"不重复发明语义"的基础设施。
四、推演条件
从演示环境进入生产环境,单文件加载需要扩展为组织级的批量协同。以下三个条件必须满足:
● 谁来维护字典? 建议由语义翻译设计师(角色 4)担任字典管理员,负责定义和更新语义令牌;DesignOps(角色 3)负责版本发布与广播。字典不是公共文档,而是组织的"语义宪法",修改权限必须集中。
● 变更如何不击穿下游? 字典升级(如新增 degraded 级别)必须自动同步到所有消费面:设计师的 Checklist、前端的 Prompt 前缀、CI 的拦截规则。组织需要建立"字典变更 → 契约重编译 → 消费格式换版 → 角色通知"的闭环,避免"上游改了,下游还在用旧定义"。
● 谁来证明有效? 每次字典升级后,需通过 链路 2(语义分级器) 抽检一定数量的 AI 生成文案,验证新规则确实拦截了目标错误。验证结果应沉淀到 链路 3(模式卡片) 中,作为该模式置信度持续递增的证据。
五、一句话总结(给不同角色)
给设计师:
"你写的规则文件,机器会先查字典确认每个词都注册过、版本都对,再让入库。引用了不存在的词,直接报错,不会带到生产环境。"
给前端 / AI 工程师:
"契约入库前过五道机器安检,对抗用例拦截率 100%。不是人工审批,是机器逐项核对,错误定位到具体字段路径。"
给 DesignOps:
"契约改了,Prompt 前缀、校验规则、走查清单、CI 规则四个消费点自动同步。哪个地方没跟上,机器 5 分钟内告警。规范更新从'人肉广播'变成'机器追踪'。"
给语义翻译设计师 / 体验架构师:
"你的语义规则不是写完就完事。机器会验证:字典里有没有这个词?引用对不对?版本兼不兼容?违规了是阻断、警告还是升级审核?整条链路可被验证、可被追踪、可被归因。"
给管理层 / 决策者:
"以前规范更新靠文档和会议,漏掉是常态。现在机器自动追踪:五道安检拦截错误入库,三档策略分级处理,版本兼容 90 天过渡,消费断裂 5 分钟告警。语义一致性从'人盯'变成'机管'。"
边界声明:
当前演示环境为单点验证,5 个链路的交叉证明仅限于前端交互模拟。生产级飞轮需接入后端编译管线、Git 版本控制与多角色权限管理。量化收益为数据模型推演,待生产数据验证。
1920
