给 agent 用
agent 接入一套设计系统只需要两样东西:规则,和验证自己有没有做到的手段。给它三千行双语散文不是接入,是把工作转嫁回去。
先读这一个文件
完成本地安装后,在消费者项目根目录运行:
npm exec --no -- wenxin contracts --all # 或直接读 kit/wenxin.json
约 29KB,含不变之魂、三层仲裁规则、两种排除、禁令(可检查的与需判断的)、 全部 token、71 条组件契约、已记录的判定索引、以及如何验证。
它完全由来源派生,没有一行是手写的——所以它不可能和来源不一致,
npm run check:contracts 重建后逐字节比对,不一致即失败。
四个入口,按预算选
| 文件 | 规模 | 回答什么 |
|---|---|---|
kit/wenxin.json | 29KB | 规则与契约的全部结构化数据 |
site/llms.txt | ~100 行 | 索引:有哪些页,每页回答什么问题 |
site/llms-full.txt | ~2800 行 | 全部规范正文,预算充足时通读 |
.claude/skills/wenxin-design/ | 130 行 | 可直接安装的技能包:判断规则 + 交付前自查 |
还有一个 AGENTS.md,但那是给在这个仓库里干活的 agent 的,
不是给使用者的。两类读者需要的东西不一样,所以分开放。
不要声称合规,跑一遍
npm exec --no -- wenxin audit dist/<slug>/index.html
它要求有效的 render contract 和约定的输出路径,吐出 JSON;hardGates 数组非空即该可执行子集不合规,退出码 1。
它不读取外链 CSS,也不替代浏览器、辅助技术或不可机械化规则的人工判断——一个 agent 说"我遵循了设计系统"同样没有信息量。
npm run check:render-audit 用一份合规夹具,以及故意缺 <main>、非法轨道和错误阅读轨 CTA 的夹具跑它。
这验证审计器会抓这些缺陷,不等于它已经验证了你的页面。没有反向控制的审计器不是证据。
5 条没有检查在守的规则
这是 agent 最容易出错的地方:"检查全绿"不等于"每条规则都被执行了"。
kit/contracts/forbidden.json 的 judgement 数组列出 5 条不可机械检查的规则,
每条写明为什么不可检查:
| 规则 | 为什么机器判不了 |
|---|---|
| 卡片几何 | 静态 CSS 分不出内容容器与控件。按钮、标签、输入框、以及 D-21 许可的浮层都合法地同时具备边框与圆角——naive 规则在本仓库命中 60 次,几乎全是误报。 |
| 色块背景分区 | background 的合法用途太多;是否构成"分区"取决于轨道与意图。 |
| 强调色预算 | 需按渲染后的页面计数并区分装饰与状态色。单页范围内 audit 能执行,全仓库静态扫描不行。 |
| 填充主动作语义 | 静态 HTML 分不出导航、反馈后的安全出口和应用轨任务推进;全页数主按钮会误杀合法动作。 |
| 装饰插画 | 机器分不出装饰图与信息图。 |
一条没被标出来的不可执行规则,会被误以为有人在守。把它们显式列出来,
就是为了让 agent 知道这 5 条要靠自己判断——见 D-22。
绝对不要单方面改的
A9 克制之美 B9 温暖极简 D9 暖土调
改动这三条,产物就不再属于这套语言。如果判断必须改,
写进 spec/DECISIONS.md 作为待议项,不要直接改。
命令行速查
npm exec --no -- wenxin audit dist/<slug>/index.html
# 审计合同 / DOM / 内联样式;hardGates 非空即失败
npm exec --no -- wenxin contracts [query]
# 查契约,按名称或 class 过滤
npm exec --no -- wenxin contracts --all
# 输出完整契约包
npm exec --no -- wenxin tokens --format dtcg
# json | dtcg | css | scss | ts
npm exec --no -- wenxin skeleton [a-e]
# 输出页面原型骨架