Schema-As-Code
Schema-As-Code / Constraint Externalization Lab
主题 ⑧ · 约束显化实验室

约束显化实验室

把隐含的语义假设变成显式规则。四项能力,四个交互实验——亲手验证"从建议到阻断、从五份到一份、从事后到事前、从拍脑袋到有凭据"。

能力一:规则必须带"违约动作"

从"建议"变成"阻断"——选择 violation_action,看 AI 输出如何被处理

契约规则

immutable_boundaries:
- boundary_type: "safety"
rule: "限流提示禁止用红色"
violation_action:
BLOCK:违反即拦截,错误不出现

AI 生成结果

AI 生成的错误提示组件:
⚠️ 请求过于频繁,请稍后再试
契约校验器处理:
🚫
BLOCKED
检测到 retryable 级别使用了 status.critical(红色)
SUGGEST
仅显示建议标签,AI 输出照常通过
成本:高(事后修复)
WARN
标记警告但允许通过,需人工复查
成本:中(走查返工)
BLOCK ✓
直接拦截,错误在生成阶段被消灭
成本:零

能力二:规则只能有一个"真身"

从"五份规范"变成"一份源头"——修改 YAML 真身,看四种格式同步更新

YAML 真身(唯一源头)

error_severity:
retryable:
visual_mapping:
color_token:
motion_token: "none"
icon_token: "clock"
user_action:
- label: "等待倒计时"
- label: "升级套餐"
↑ 修改此处,右侧四处自动同步

编译产物(自动同步)

Prompt 前缀
限流提示必须使用黄色(status.warning),禁止红色...
JSON Schema
"color_token": {"enum": ["status.warning"]}
Checklist
□ 限流提示是否为黄色?
CI 规则
forbidden: {color: "#cf1322"}
单一来源验证通过
YAML 真身修改后,4 个编译产物版本号自动同步为 v1.1.0,零遗漏

能力三:规则要放在生成之前

从"事后检查"变成"前置拦截"——选择防线位置,看成本如何变化

生成前
Prompt 注入
编码时
Schema 校验
提交时
CI 拦截
走查时
人工复查
上线后
用户投诉
防线位置
生成前 · Prompt 注入
规则作为 Prompt 前缀,在 AI 生成界面之前进入上下文。约束从"事后检查清单"变成"前置生成条件"。
成本评估
零成本
错误在出生前就被拦住,零返工
拦截效果
🛡️
100% 拦截 · 错误根本不出现
AI 生成阶段即合规,无需后续修复

能力四:只显化有证据的

从"拍脑袋"变成"有凭据"——提交规则,看系统如何判断是否入典

提交新规则

已入典模式(v1.0.0)

ERR-001 后果差异未分级
证据:ChatGPT / 文心 / 通义 / Kimi / 豆包
PRO-001 认知阶段未显化
证据:Perplexity
BND-001 权利差异未区分
证据:Claude
ACT-001 高危操作未约束
证据:通用 AI 后台界面
ALR-001 文案语义降级
证据:通用 AI 运维系统
INF-001 状态权重未对齐
证据:通用 AI 协作工具

实验完成,回到主站?

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

返回 Schema-As-Code →