Schema-As-Code
Schema-As-Code / 产物层差异演示
阶段二 · 产物层差异 · 同一份契约的五角色消费格式

产物层差异演示 Four-Role Consumption

同一份 YAML 语义契约,经编译管线后,不同角色消费不同格式的产物。
语义翻译设计师设计唯一事实来源 YAML 契约,经编译管线分发为 4 种角色产物:DesignOps 审计 Checklist、AI 工程师注入 Prompt 前缀、前端消费 JSON Schema、研发效能执行 CI 规则。

组织级基线 v1.1.0
前端团队扩展 v2.0.1
契约:ERR-001 · 错误状态后果差异未分级
已对齐
角色-产物对应关系(点击高亮)
Role-Product Mapping · 4 个消费者角色 × 4 种产物格式
踩坑场景:自己写 Prompt 前缀,写成"用红色表示严重",导致所有错误状态共用同一种红色,违反组织级不可突破红线
🤖
AI 工程师
Prompt 前缀
紫色 · AI 主题
踩坑场景:组件 Props 没有约束 severity 枚举值,导致前端传入非法的错误级别字符串,运行时无法正确映射视觉样式
💻
前端工程师
JSON Schema
蓝色 · 代码主题
踩坑场景:审计走查时只关注视觉美观,忽略"每个错误级别必须提供明确的用户行动指引"这一语义约束
📋
DesignOps
Checklist(审计)
绿色 · 设计主题
踩坑场景:CI 规则只校验颜色值,不校验 motion_token 和 icon_token,导致动画和图标与语义级别不匹配
🔧
CI / 研发效能
CI 规则
橙色 · 工程主题

悬停卡片查看踩坑场景 · 点击卡片高亮对应产物

0
生产者 → 编译管线 → 消费者
Relationship Overview · 1 个规则生产者 × 唯一事实来源 × 4 个消费者角色(点击消费者节点跳转演示)
语义翻译设计师(生产者) → 唯一事实来源 YAML → 编译管线 → 四种产物 → 四个消费者角色
🎨 语义翻译设计师
规则生产者 · 产出:唯一事实来源 ERR-001.yaml
⬇️
⚙️ 编译管线
结构 / 语义 / 一致性 / 产物 · 四层验证
⬇️
✅ Checklist(审计)
→ 📋 DesignOps · 消费者
💬 Prompt 前缀
→ ✨ AI 工程师 · 消费者
📋 JSON Schema
→ 💻 前端 · 消费者
🔍 CI 规则
→ ⚙️ 研发效能 · 消费者
说明:输入端只有 1 个生产者(语义翻译设计师),输出端是 4 个消费者角色。消费者不读 YAML 原文,只消费各自的编译产物;产物变更只能由修改源契约后重新编译产生,禁止直接改产物。
1
选择角色视角
Role Selector · 点击切换角色,观察同一份契约的不同消费格式
🎨 语义翻译设计师 = 规则生产者 · 设计唯一事实来源 YAML
📋 DesignOps · ✨ AI 工程师 · 💻 前端 · ⚙️ 研发效能 = 规则消费者 · 各自消费编译产物

语义翻译设计师视角:不消费任何编译产物——ta 设计的是唯一事实来源 ERR-001.yaml 本身

2
五角色消费视图
Consumption View · 左栏:唯一事实来源 · 中栏:编译管线映射 · 右栏:角色产物(生产者视角下右栏即源契约本身)

唯一事实来源 · ERR-001.yaml v1.1.0

org-baseline team-ext

Single Source of Truth · 由语义翻译设计师维护

1intent_id: "ERR-001"
2version: "v1.1.0"
3
4semantic_tokens:
5 error_severity:
6 fatal: # → 映射到角色产物
7 color_token: "status.critical"
8 motion_token: "pulse.red.urgent"
9 icon_token: "alert.octagon"
10 user_action: ["refresh", "export_history"]
11
12 transient: # → 映射到角色产物
13 color_token: "status.neutral"
14 motion_token: "spinner"
15 icon_token: "loader"
16 user_action: ["wait", "retry"]
17
18 retryable: # → 映射到角色产物
19 color_token: "status.warning"
20 motion_token: "none"
21 icon_token: "clock"
22 user_action: ["wait_countdown", "upgrade"]
23
24 degraded: # → 映射到角色产物
25 color_token: "status.info"
26 motion_token: "none"
27 icon_token: "info.circle"
28 user_action: ["continue", "retry_simplified"]
29 llm_constraints: # 团队扩展
30 - "显式列出可用功能清单"
31 - "禁止模糊表述"
32
33immutable_boundaries:
34 - safety: "禁止统一红色"block
35 - clarity: "必须提供行动指引"warn

⚙️ 编译管线

fatal
transient
retryable
degraded
team-ext
boundary
产物 = 源契约本身
无需编译

角色产物(随角色切换)

语义翻译设计师
this IS the source · 此视图即事实来源本身
唯一事实来源 · YAML 契约设计视图 org-baseline
intent_id: "ERR-001"
version: "v1.1.0"
designed_by: "语义翻译设计师"
status: "唯一事实来源 · Single Source of Truth"

semantic_tokens:
  error_severity: [fatal, transient, retryable, degraded]
  # 每一级的 color / motion / icon / user_action
  # 均由语义翻译设计师定义并评审入库

immutable_boundaries:
  - safety:  "禁止统一红色" → block
  - clarity: "必须提供行动指引" → warn

生产者说明

语义翻译设计师不消费任何编译产物。下游 4 个角色消费的 Checklist / Prompt / Schema / CI 规则,全部是这份 YAML 经编译管线分发的投影。修改产物必须回到此源契约修改后重新编译。

语义翻译设计师(生产者):不消费任何编译产物——ta 设计的是唯一事实来源 ERR-001.yaml 本身。
每一条 semantic_token、每一个 immutable_boundary 都由 ta 定义并提交,经编译管线分发后,下游 4 个角色消费的产物全部是这份 YAML 的投影。
3
1 个生产者 × 4 个消费者 · 产物说明
Role Legend · 语义翻译设计师设计唯一事实来源,4 个消费者各取所需
生产者
🎨
语义翻译设计师
设计并维护唯一事实来源
YAML 源契约(唯一事实来源)
消费者
📋
DesignOps
审计清单,标注来源与记录
Checklist(审计)
消费者
AI 工程师
Prompt 前缀,注入 AI 系统消息
Prompt 前缀
消费者
💻
前端
组件 Props 类型约束
JSON Schema
消费者
⚙️
研发效能
流水线自动校验规则
CI 规则

单一来源多目标输出

编译管线的核心设计:同一份 YAML 语义契约作为单一来源,经编译后输出为四种不同格式的产物。
每种产物都保留了与源契约的映射关系(中栏箭头),确保当源契约更新时,所有消费格式的产物都能同步迭代。
团队级扩展规则(紫色标记)仅在相关角色的产物中显化,不影响其他角色的消费格式。
AI 工程师消费的 Prompt 前缀直接注入 AI 工具的 system message,让 AI 在生成界面前自动遵守语义约束。

产物层差异演示完毕

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

返回主站 →