我在《从"画对界面"到"标对语义"》文中讲了设计师与产品经理如何理解并使用语义层基础设施来表达设计意图,从语义令牌的选定、语义域的场景标注,到约束显化(把口头规矩变成机器规则)的规则输入。那些内容偏"机制",回答的是"为什么需要这样做"。
先把这个词拆开。约束显化(把"绝对不能"从口头说法变成机器能执行的规则) ,是 Schema-As-Code把设计规范写成代码格式 体系里的一个环节:设计师脑中的语义判断,"这个删除按钮是危险的""限流不是致命错误",过去只活在评审会的空气里、Figma注释里、Wiki角落里,机器读不到;约束显化(把口头规矩变成机器规则)要做的,就是把这些判断写成机器读得懂的显式规则,让AI在生成界面之前就知道"这个场景下绝对不能做什么"。
这里有两个设计师可能陌生的词,先各用一句大白话交代:规则=机器照做的指令,不是写在文档里的建议;编译=把一份规则自动翻译成AI工程师、前端工程师、设计师各自能用的格式。整件事不需要设计师写代码,只需要把"绝对不能"说清楚,说清楚之后,怎么变成规则、怎么编译,都是下游的事。
本文只看一件事:设计师最少做多少,就能开始建立"把口头强调变成规则输入"的能力?
答案是:找到你最近说过的1句"绝对不能",把它写成1条约束意图。
一、为什么要从1句"绝对不能"开始
很多设计师看到"约束显化"(把口头规矩变成机器规则),第一反应是:
"这是不是意味着要学写机器规则、学写YAML?"
不是的。
设计师不生产机器规则,你写的是约束意图(什么绝对不能做 + 后果是什么),编码成交互规则是语义翻译环节的工作。你的产出是三要素齐备的一段描述,不是代码。
1. 先看那个反复发生的困境
设计师在评审会上说:"删除按钮太危险,不能和普通按钮一样。"工程师改了。三个月后,另一个团队用AI生成后台界面,删除按钮又变回蓝色实心。
这个循环反复上演。问题不是工程师没记住,也不是设计师没说清,而是"危险"这个判断从未离开过设计师的脑子。同一个"危险",在评审会上说了三年,每换一个工程师、每开一条新产品线,就要重新说一遍。 语义判断是个人资产,不是组织资产:它在场时约束就在场,它休假时约束就休假。
2. 为什么过去靠"人记",现在靠不住
传统时代,设计师说"危险一点",工程师靠经验脑补出"红色 + 确认框"。本质是人替格式缺口打补丁,补丁打得了一时,打不了规模:人一走、团队一扩,补丁就失效。
AI介入后,问题变成"急性衰竭":AI没有上下文补偿能力。它只读显式输入:Prompt里的文字、组件库的参数。评审会上那句"危险一点"不在任何AI消费的输入里,AI 就只能按概率生成最常见的样式,而训练语料里最常见的按钮,就是蓝色实心主按钮。
这里要下一个关键判断:语义漂移不是 AI"做错了",而是约束从未被显式传递,AI根本没有收到信号。 把漂移归因为"AI理解力不够",会让人去等更强的模型;把漂移归因为"约束不在输入里",才会去修约束的形态。前者是等待,后者是工程,约束显化(把口头规矩变成机器规则)就是这个工程。
3. 为什么"把规范写细"也不是答案
每个设计团队都试过把规范写厚。结果是阅读率随厚度反比下降,而AI一个字都读不到。PDF、语雀文档、Figma注释,这些传统形态有一个共同特征:人可读,机器不可消费。 它们能告诉工程师"要小心",但不能告诉 AI"必须怎么做"。
约束显化(把口头规矩变成机器规则)的方向不是"更多表达",而是"换一种可执行的表达"。这也是它值得单独成为一个环节、而不是"写文档时多写两句"的原因。
📎 关键设计详情:《约束显化:把隐含的语义假设变成显式规则》,完整论证了"为什么隐性知识在AI生成链路中必然失效",以及代码资产化的四项能力:规则必须带违约动作、规则只能有一个唯一事实来源、规则要放在生成之前、只显化有证据的。
二、把1句"绝对不能"写成约束意图:三个要素
回想你最近一次在评审会上说"这个绝对不能这样"。以"删除按钮绝对不能做成普通蓝色"为例,逐个要素补齐。
要素1:什么绝对不能做?
- 现有说法: "删除按钮绝对不能做成普通蓝色。"
- 需要追问到: 具体禁止的对象是什么,是样式(主按钮样式)、行为(无二次确认),还是文案(只写"确认")?一句话里禁止的对象越具体,下游编码越不会走样。
- 你的动作: 写清禁止的对象和范围,如"删除按钮不得使用 action.primary 的主按钮样式"。
这一条对应约束显化(把口头规矩变成机器规则)的核心纪律:规则必须带"违约动作",从"建议"变成"阻断"。 规范文档里写"建议不要用红色",工程师忙起来可以忽略,AI读不到更是直接无视;机器规则里写的则是"如果违反,就阻断","建议"靠自觉,"阻断"靠机制,这是约束显化(把口头规矩变成机器规则)的第一条分水岭。
要素2:后果是什么?
- 现有说法: 通常没说,"用户会误触的"往往停留在语气里。
- 需要追问到: 违反了会发生什么?后果是约束分级的依据,也就是下游编码时选择违约动作的依据:不可逆的数据删除 → 不可变边界(Immutable Boundaries,即"绝对不能突破"的边界),违约动作为block(违反即阻断);体验下降 → 推荐约束(LLM Constraints,即"最好不要"的劝告),违约动作为warn(违反即警告)。你在意图里把后果写清楚,设计系统负责人在评审时才有据可依,后果写错一档,将来被block卡住的可能是本不该拦截的文案问题。
- 你的动作: 把后果写成一句可验证的描述,如"用户误触后发生不可逆的数据删除"。
要素3:怎么判定算违反?
- 需要追问到: 机器能否检查这个禁止?写不出可执行判断方式的禁止条款,编码后也无法执行。
- 你的动作: 写下建议的判定方式,如"样式绑定检查:检查 action.destructive 场景的按钮样式绑定"。拿不准就写"需人工走查确认",诚实标注比假装可执行更有价值。
三个要素齐了,口头强调就变成了约束意图。
📎 关键设计详情:《约束显化:把隐含的语义假设变成显式规则》,讲清"规则"与传统规范的本质区别:规则是资产不是文档,有版本、有引用方、有审计轨迹,能被机器前置注入、自动校验、一处修改四处同步。
三、把约束意图写成"下游能读"的格式
写之前(口头强调):
"删除按钮绝对不能做成普通蓝色,用户会误触的。"
写之后(约束意图描述):
【约束意图】action.destructive 场景
- 什么绝对不能做:删除按钮不得使用 action.primary 的主按钮样式
- 后果是什么:用户误触后发生不可逆的数据删除
- 建议的判定方式:样式绑定检查
【补充说明】同类场景包括清空回收站、批量删除——
凡是不可逆的数据销毁操作均适用本条意图
你的动作: 通过"约束意图"表单提交这段描述。不需要手写YAML,不需要懂 violation_action 怎么填,语义翻译会把它编码成机器规则,并把你标注的 "判定方式"转写成可执行检查。
提交之后,这条意图会经历什么
设计师不需要会写规则,但值得知道规则是怎么被"接走"的。一条约束意图离开表单之后的旅程:
- 编码:语义翻译环节把意图写成YAML契约草稿(一份固定7个字段的结构化文件);
- 安检:契约入库前必须通过5项机器安检,结构合法性(文件格式对不对)、字段完整性(7个字段缺没缺)、覆盖层存在性、绑定存在性、场景一致性(引用的语义是不是字典里注册过的);任一不过即退回,不存在"先入库后修复"的灰色状态;
- 编译:通过安检的契约被自动翻译成四种格式,Prompt前缀(注入AI生成工具的上下文)、JSON Schema(给前端做类型校验)、Checklist(给设计师走查用)、CI规则(代码提交时自动拦截);
- 生效:规则被放在错误出现之前,AI生成前注入、提交时拦截,而不是上线后靠走查撞见。
这就是"编译"(把一份规则自动翻译成四种格式)的完整含义。设计师在第三步拿到的是Checklist,其他三种格式流向工程师,但四种格式全部来自同一份源头,改一处、四处同步,不会出现"语雀改了、注释没改"的版本分裂。
📎 关键设计详情:《编译前置校验:显式规则的5项机器安检》,5项安检确保进入规则库的都是合法规则;你提交的意图被编码后,规则信用由机器担保。
四、(真的发生过吗)一个你可以在自己组织里验证的案例
你们组织里一定有这样的情况:评审会上反复强调的一句话,到了实现里走了样。
你可以做的验证动作:
- 回想你最近三次说"绝对不能"的场景,把原话写出来
- 逐句问自己三个问题:禁止的对象说清楚了吗?后果说清楚了吗?对方会怎么理解关键词?
- 以"删除必须有二次确认"为例,写下你心里的"二次确认"和机器可能执行的"二次确认"
大概率你会发现:
- 你的意图是"用户必须输入账户名确认"
- 机器执行的版本是"弹出一个带确认按钮的对话框"
- 中间这段颗粒度差,就是假二次确认的源头,有弹窗,但没有输入验证,用户误触风险一点没消除
为什么是"走了样",而不是"没做"
这类失真不是执行失误,而是语义在传递中逐层衰减。你的设计稿通常是对的,四套样式、完整梯度;梯度死在"error/fatal 只是一个样式名"的那一刻:它对你是语义,对机器只是字符串。 设计意图→设计稿几乎不丢信息;丢失集中在"设计稿→工程实现"的交接处,样式名没有对应的机器可读字段,接口里只剩 isError: true 一个布尔值,AI拿到"是错误"却拿不到"哪一级、该怎么办",只能按概率默认补齐。
这就是约束显化(把口头规矩变成机器规则)要修复的断裂点:口头意图与显式规则之间的颗粒度差,是语义断层的主要来源。而堵住它的最便宜的位置,就是你提交约束意图的那一刻。
你的动作: 把最近那句"绝对不能"按三要素重写一遍,和原话并排贴在评审记录里,对比本身就是训练。
📎 关键设计详情:《语义断层地图的三栏断裂:意图、设计稿与工程实现的系统性衰减》,用 ERR-001 错误状态的真实字段演化证明:衰减不是任何人的失误,是"下游装不下的语义在交接处被静默丢弃"的必然结果。
五、(一直在工作吗)怎么让约束意图不被遗忘
写完1条约束意图后,最怕的是:提交了就没有下文,下次同类问题继续口头重复。
最小可行的保鲜机制:
| 检查项 | 频率 | 谁做 | 怎么做 |
|---|---|---|---|
| 已提交的约束意图是否被编码、被引用 | 每月 | 设计师 | 查约束追踪面板,看意图状态 |
| 同类"口头补充"是否重复出现三次以上 | 每月 | 设计师 | 出现三次就提交正式约束意图,不再停留口头 |
| 走查是否发现未显化的新假设 | 每次走查 | 设计师 | 记录并提交约束补充,走查记录是第一信号源 |
约束显化(把口头规矩变成机器规则)入库之后,规则由机器在养:AI生成前自动注入Prompt前缀,代码提交时CI自动拦截,每次契约变更后对抗测试用例全量重跑。 设计师不需要盯这些机制,只在"机器发信号时"在场,拦截事件上报、对抗测试失败、团队扩展申请,三种信号出现时做判断即可。其余时间,机器在跑。
你的动作: 给自己定一条纪律,同一个"口头补充"在评审会上出现第三次,就必须写成约束意图表单。这条纪律让口头传统开始沉淀为组织规则。
六、生长路径:从1句口头话到约束源头
把1句"绝对不能"写成约束意图只是起点。设计师的约束显化(把口头规矩变成机器规则)能力,会沿着这条路径自然生长:
| 阶段 | 时间 | 动作 | 产出 |
|---|---|---|---|
| 阶段0:写1条约束意图 | 现在 | 把最近那句"绝对不能"按三要素写成约束意图表单 | 1条约束意图 |
| 阶段1:写3条约束意图 | 1-2周后 | 覆盖样式类、行为类、文案类各1条 | 1份约束意图清单 |
| 阶段2:建立团队模板 | 1个月后 | 把三要素格式写成团队共享的《约束意图模板》 | 1份模板 |
| 阶段3:参与约束评审 | 2-3个月 | 语义翻译设计师编码时,用你的意图核对保真 | 意图被引用的记录 |
| 阶段4:成为约束源头 | 6个月后 | 走查发现的未显化假设持续驱动规则补充 | 约束补充提案记录 |
关键原则:不是"等规则体系建好了再提意图",而是"从1句'绝对不能'开始,在写清三要素中建立颗粒度意识,在颗粒度意识中完善约束体系"。
最后划一条边界,避免误解:约束显化(把口头规矩变成机器规则)传递判断,不生产判断,危险按钮用红色还是橙色,仍然是设计师的决策;它拦截的是语义漂移(表达了错误的语义),不评判设计优劣(表达得好不好看)。规则库也只收录"测到的漂移",不收录"我觉得",这是规则库信用的来源。
结语
《从画对界面到标对语义》讲了设计师与产品经理在语义令牌、语义域、约束显化(把口头规矩变成机器规则)中的标注职责。那些是"地图",让你知道这片领域长什么样。
这里讲的是"第三步":不需要学写机器规则,只需要找到你最近说过的那句"绝对不能",把它写清楚,什么不能做、后果是什么、怎么判定。
写清本身就是显化。当你把1句"绝对不能"写成三要素齐备的约束意图,口头传统就变成了组织规则。
给设计师与产品经理的一句话总结:口头的经验,入典一次即组织生效,无需重复传达。你说过三遍以上的每一句"这个要危险一点",都值得显化一次——说一次,永久生效,你的判断从口头资产变成组织资产。
希望能帮到你。如果你在写约束意图时发现了自己的"颗粒度差"时刻(比如发现你说的一直是"输入账户名",团队执行的一直是"点个确认"),欢迎在评论区分享,这些真实的偏差,正是约束显化(把口头规矩变成机器规则)最好的教材。
至此,《从画对界面到标对语义》的三个最小可行动作全部讲完:《给1个界面元素选定1个语义令牌》、《在1个组件的2个场景上练习标注》、本文写下1条约束意图。这些标注和意图接下来会变成什么?规则如何回到设计师手里、反向服务于设计工作?见下一篇《消费路径》。
本文由作者@魏雯,授权发布于平台,未经许可禁止转载。
