契约库:让设计规范像代码一样管理

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 本文是Schema-As-Code阶段二的基础设施专题,详解如何将YAML语义契约构建为组织级契约库:通过Git版本管理、自动化编译、影响面分析与细粒度权限控制,让设计规范真正具备代码级可追溯、可同步、可验证能力。(239字)

本文是阶段二《设计师作为"语义翻译者"》的基础设施专题,回答 YAML 语义契约在组织内如何被管理、被追踪、被同步。

阶段二的核心判断是:传统设计规范以文档形态存在(PDF、语雀、Figma 注释),版本不可追溯、变更不可同步、影响不可分析。Schema-As-Code 的解法是将设计意图形式化为 YAML 语义契约,但形式化本身不足以解决规模化问题——契约需要像代码一样被管理。

本文回答契约库怎么建。它不是设计师本地的零散文件,而是组织级的语义规范仓库,具备版本管理、Git 同步、影响面分析与权限控制四项核心能力。

阶段一:组件语义快照与模式诊断:AI 生成界面的第一道检查
阶段二:设计师作为"语义翻译者" 当AI生成界面时我怎么用规则锁住设计意图
方法论总纲与开源仓库:把设计规范写成代码格式,是所有 AI 工具的上游约束方法论


一、问题:YAML 写完后放在哪里

设计师写好了 ERR-001.yaml,接下来面临四个问题:

  1. 版本问题:这份契约是 v1.0.0 还是 v1.1.0?改了什么?为什么改?
  2. 同步问题:5 个产品都在用这份契约,改了之后怎么通知所有前端?
  3. 追溯问题:三个月前为什么把"严重"加入同义词防火墙?谁决定的?
  4. 权限问题:谁可以修改契约?谁可以审批?谁只能查看?

传统设计规范的答案是:发在语雀文档里,@全员,开会同步。但语雀文档不具备版本管理、Diff 对比、自动通知、权限控制四项能力——它面向"人"阅读,不面向"机器"消费。

YAML 契约如果也放在语雀里,会面临同样的困境:形式化了,但管理没有跟上。


二、核心判断:契约需要像代码一样被管理

代码仓库(Git)解决了什么问题?

  • 版本可追溯(git log 看历史)
  • 变更可审查(Pull Request 评审)
  • 影响可分析(代码搜索、依赖分析)
  • 权限可控制(谁可以 push、谁可以 merge)

设计规范同样需要这四项能力。契约库的本质,就是把设计规范从"文档"变成"代码",从"人读"变成"机读+人审"

Schema-As-Code 不是只写一份 YAML 文件,而是建立一套组织级的语义规范仓库——契约库。


三、契约库的整体架构

契约库是一个 Git 仓库,目录结构如下:

contract-library/                    # 契约库根目录
├── contracts/                       # 契约文件(核心)
│   ├── ERR-001.yaml                 # 错误状态语义契约
│   ├── ACT-001.yaml                 # 高危操作语义契约
│   ├── PRO-001.yaml                 # 过程状态语义契约
│   └── BND-001.yaml                 # 边界动作语义契约
│
├── schema/                          # 结构校验规则
│   └── intent-schema.json           # YAML 必须符合的格式标准
│
├── snapshots/                       # 版本快照
│   ├── v1.0.0/                      # 每个版本一个文件夹
│   │   └── ERR-001.yaml
│   └── v1.1.0/
│       └── ERR-001.yaml
│
├── changesets/                      # 变更记录
│   └── 2024-06-01-ERR-001-update.md # 每次改了什么,为什么改
│
└── compiled/                        # 编译输出(自动生成)
    ├── prompt-prefixes/             # 供 AI 编程工具消费的 Prompt 前缀
    │   └── ERR-001-prompt.md
    ├── json-schemas/                # 供前端校验消费的 JSON Schema
    │   └── ERR-001-schema.json
    ├── ci-rules/                    # 供 CI 流水线消费的校验规则
    │   └── ERR-001-eslint.js
    └── checklists/                  # 供设计师走查用的清单
        └── ERR-001-checklist.md

3.1 contracts/:契约文件(核心)

存放所有 YAML 语义契约。每份契约对应一个漂移模式(如 ERR-001、ACT-001)。

命名规则{模式ID}.yaml,如 ERR-001.yamlACT-001.yaml

文件内容:包含 6 个顶层字段(intent_iddescriptionversionapplicable_productssemantic_tokensimmutable_boundariesllm_constraints)。
详见《YAML 契约格式:理解了语义规范体系后怎么写语义规则》

3.2 schema/:结构校验规则

存放 intent-schema.json,定义 YAML 契约必须满足的格式标准。类似 JSON Schema 对 JSON 的约束,确保所有契约文件结构一致、字段完整。

作用

  • 设计师提交 YAML 时,自动校验字段是否缺失
  • 防止 semantic_tokens 写错层级、防止 immutable_boundaries 遗漏 violation_action
  • 确保契约库内的所有文件遵循同一套结构标准

3.3 snapshots/:版本快照

每个版本(v1.0.0v1.1.0)对应一个独立文件夹,存放该版本下所有契约文件的完整快照。

作用

  • 版本可追溯:随时回滚到任意历史版本
  • 版本可对比:git diff v1.0.0 v1.1.0 看变更内容
  • 版本可锁定:下游工具可以明确声明"我消费的是 v1.0.0"

3.4 changesets/:变更记录

每次契约变更,必须附带一份变更说明(Changeset),记录:

  • 改了什么(What)
  • 为什么改(Why)
  • 影响哪些产品(Impact)
  • 谁审批的(Approver)

作用

  • 三个月后回溯:为什么把"严重"加入同义词防火墙?
  • 变更可审计:所有修改都有记录、有审批、有责任人
  • 影响可分析:根据 Changeset 自动生成影响面报告

变更记录样例

# Changeset: ERR-001 v1.0.0 → v1.1.0
## 变更内容
- 新增 `degraded` 错误级别(部分功能可用)
- 修改 `retryable` 的视觉映射:从"黄色提示"改为"黄色提示 + 倒计时"

## 变更原因
- 用户反馈:限流提示没有倒计时,不知道等多久
- 产品需求:降级错误需要明确说明"哪些功能仍可用"

## 影响范围
- 适用产品:ChatGPT、文心一言、通义千问、Kimi、豆包、DeepSeek
- 下游消费方:Prompt 前缀、JSON Schema、Checklist、CI 规则
- 预计影响:前端需更新组件 Props 枚举值

## 审批人
- 提交:@体验架构设计师
- 审批:@设计系统负责人
- 合并:@DesignOps

3.5 compiled/:编译输出(自动生成)

存放编译管线自动生成的消费格式。此目录下的所有文件不应手动修改,由编译管线根据 contracts/ 内的 YAML 契约自动生成。

子目录

  • prompt-prefixes/:供 AI 编程工具消费的 Prompt 前缀
  • json-schemas/:供前端校验消费的 JSON Schema
  • ci-rules/:供 CI 流水线消费的校验规则
  • checklists/:供设计师走查消费的清单

作用

  • 契约变更后,编译管线自动更新此目录
  • 下游工具从此目录取消费格式,不直接读取 contracts/
  • 确保下游消费的是"已编译、已验证"的产出物

四、契约库的四项核心能力

4.1 版本管理:Semantic Versioning

契约版本遵循语义化版本规范(MAJOR.MINOR.PATCH):

版本号变化 含义 示例
MAJOR 升级(如 1.0.0 → 2.0.0) 破坏性变更:删除语义级别、修改已有级别的含义 删除 fatal 级别,或将其改为 critical
MINOR 升级(如 1.0.0 → 1.1.0) 新增功能:增加语义级别、增加约束字段 新增 degraded 级别
PATCH 升级(如 1.0.0 → 1.0.1) 修复:文案修正、示例更新、不影响语义 修正 description 中的错别字

版本声明(嵌入每个契约文件头部)

intent_id: "ERR-001"
version: "1.1.0"
last_updated: "2026-07-13"
changelog_ref: "changesets/2026-07-13-ERR-001-degraded.md"

4.2 Git 同步:Diff 即通知,MR 即评审

契约库以 Git 仓库形态存在,遵循代码开发的工作流:

设计师修改 ERR-001.yaml
    ↓
git checkout -b feature/ERR-001-degraded
    ↓
修改 YAML + 编写 Changeset
    ↓
git commit -m "feat(ERR-001): add degraded severity level"
    ↓
提交 Merge Request
    ↓
@设计系统负责人 评审
    ↓
@前端 TL 确认影响范围
    ↓
@DesignOps 审批合并
    ↓
合并到 main 分支
    ↓
自动触发编译管线
    ↓
生成新的消费格式 + 通知下游

与代码仓库的区别

  • 代码仓库的 MR 评审的是"代码逻辑"
  • 契约库的 MR 评审的是"语义定义"——这个新增的语义级别是否合理?是否与其他契约冲突?

4.3 影响面分析:改了契约,下游怎么知道

契约库的核心价值之一:变更后自动分析影响范围。

影响面分析维度

维度 分析内容 输出
产品维度 哪些产品消费了这份契约? 产品列表(如 ChatGPT、文心一言、Kimi)
工具维度 哪些下游工具需要更新? 工具列表(如 Claude Code、v0、Figma 插件)
团队维度 哪些团队需要同步? 团队列表(如前端团队、AI 工程团队、设计团队)
版本维度 当前消费的是哪个版本?是否需要升级? 版本对比报告

影响面分析报告样例

## 影响面分析:ERR-001 v1.0.0 → v1.1.0

### 变更摘要
- 新增 `degraded` 错误级别

### 影响产品(6 个)
- ChatGPT:当前消费 v1.0.0,需升级至 v1.1.0
- 文心一言:当前消费 v1.0.0,需升级至 v1.1.0
- 通义千问:当前消费 v1.0.0,需升级至 v1.1.0
- Kimi:当前消费 v1.0.0,需升级至 v1.1.0
- 豆包:当前消费 v1.0.0,需升级至 v1.1.0
- DeepSeek:当前消费 v1.0.0,需升级至 v1.1.0

### 影响团队(3 个)
- 前端团队:需更新组件 Props 枚举值(新增 `degraded`- AI 工程团队:需更新 Prompt 前缀(新增降级错误描述)
- 设计团队:需更新走查 Checklist(新增降级错误检查项)

### 建议行动
1. 前端团队:在下次迭代中更新 `ErrorState` 组件
2. AI 工程团队:替换 Prompt 前缀为 v1.1.0 版本
3. 设计团队:使用新版 Checklist 进行走查

4.4 权限控制:谁可以改,谁可以审,谁可以看

角色 权限 说明
语义翻译设计师 创建、修改契约 负责编写和更新 YAML 契约
设计系统负责人 评审、批准 负责语义定义的准确性和一致性
前端 TL 确认影响范围 负责评估技术实现成本
DesignOps 合并、发布 负责变更的同步和通知
设计师(普通) 查看、评论 可以查看契约和 Changeset,但不能修改
前端工程师 查看、消费 可以查看编译后的消费格式,但不能修改源文件

五、契约库与编译管线的关系

契约库是编译管线的"源文件仓库",编译管线是契约库的"翻译引擎"。

维度 契约库 编译管线
定位 管理 YAML 源文件 翻译 YAML 为消费格式
核心能力 版本管理、Git 同步、影响面分析、权限控制 字段映射、格式转换、多目标输出、版本同步
输入 设计师写的 YAML 契约 契约库 contracts/ 目录下的 YAML 文件
输出 版本化的 YAML 文件 + Changeset Prompt 前缀、JSON Schema、Checklist、CI 规则
类比 代码仓库(Git) CI/CD 流水线(GitHub Actions)

工作流

设计师修改 contracts/ERR-001.yaml
    ↓
提交 MR,经过评审和审批
    ↓
合并到 main 分支
    ↓
触发编译管线
    ↓
读取 contracts/ERR-001.yaml(源文件)
    ↓
编译为 compiled/ 下的 4 种消费格式
    ↓
通知下游工具:Prompt 前缀已更新、JSON Schema 已更新

没有契约库,编译管线无法工作:编译管线需要知道编译哪些文件、版本号是什么、变更历史是什么——这些信息都来自契约库。

没有编译管线,契约库价值减半:契约库管理了 YAML 文件,但如果 YAML 不能自动翻译成下游工具能消费的格式,设计师仍然需要手动同步,规模化不可行。


六、结语:契约库是语义治理的基础设施

Schema-As-Code 不是只写一份 YAML 文件,而是建立一套组织级的语义规范基础设施

  • YAML 契约是原子:定义了"这个场景下必须表达什么语义"。
  • 契约库是仓库:管理了这些原子的版本、变更、影响、权限。
  • 编译管线是引擎:将原子翻译为不同角色能消费的格式。

三者缺一不可:

  • 没有 YAML,契约库是空的;
  • 没有契约库,编译管线是无源的;
  • 没有编译管线,YAML 是死的。

契约库的核心价值,不是让设计师多写一份文件,而是让设计规范从"文档"变成"代码",从"人读"变成"机读+人审",从"一次性"变成"可持续"。

当设计规范像代码一样被管理时,规范变更不再是"发文档、@全员、开会",而是"提交 MR、评审、合并、自动下发"。

这就是语义翻译设计师在组织内的基础设施能力:不是产出更精美的界面,而是建立设计意图在概率性界面时代的防稀释机制。


本文是 Schema-As-Code 阶段二《设计师作为"语义翻译者"》的基础设施专题。下一篇:《从契约到消费格式:编译管线》。

640.png

相关文章
|
4天前
|
人工智能 弹性计算 运维
|
2天前
|
缓存 人工智能 安全
GPT-5.6 Terra与GPT-5.5性能实测:成本减半后的跑分对比与快速迁移指南
GPT-5.6 Terra 的定价为每百万 token 输入 2.50/输出 15。GPT-5.5 则是 5/ 30。Terra 的每一项费率,包括 $0.25/M 的缓存读取,都恰好是 GPT-5.5 的一半,因此在任何工作负载组合下,Terra 都固定 便宜 2.0x。以每天 10 万次请求、3K token 提示词计算,大约是 Terra 每天 2,000,GPT−5.5每天 4,000,即每月约 60,000对 120,000。问题在于:OpenAI 没有发布任何针对 Terra 的编码基准。那个著名的 91.9% Terminal-Bench 数字是 Sol 在 Ul
|
2天前
|
SQL 人工智能 自然语言处理
大模型内容安全实时防护:恶意Prompt注入拦截、越权阻断与熔断机制方案.166
本文系统阐述大模型输入安全防护体系,涵盖提示词注入、恶意Prompt拦截、越权阻断与输入熔断四大核心风险及应对方案。提出四层防护架构(预处理、检测、鉴权、熔断),结合规则引擎、语义识别与RBAC权限控制,实现全链路实时防护,保障业务合规、数据安全与服务稳定。
213 1
|
26天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
10天前
|
人工智能 编解码 物联网
2026 最新Stable Diffusion 本地部署教程 下载安装使用详细图解(含官网安装包)
Stable Diffusion(SD)是2022年发布的开源文生图模型,由Stability AI等联合开发。支持文生图、图生图、局部重绘等,依托VAE降低算力需求,可在消费级显卡运行。本文提供秋葉aaaki制作的Windows整合包(含图形界面与插件),开箱即用,零配置启动。
|
11天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
20天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
16天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
508 127
|
11天前
|
人工智能 安全 程序员
终于,Claude Code 封号的原因被曝光了!竟然针对中国用户,植入隐形代码?!
通俗易懂地揭秘 Claude Code 封号的手段,分享一些自己对 AI 编程困境的思考,Codex、Cursor、DeepSeek、智谱 GLM、甚至是豆包,都有所行动了
539 1

热门文章

最新文章