「待否决的决定」:agent 先做,人来拍板
哪些决定必须单列,清单怎么写,回退方案怎么写才能真的执行。
我的规则文件里有这么一条:
对外文案、计费与定价、拦截或限制用户、删除数据:可以先按推荐方案实现,但必须在 PR 描述和收尾汇报里单列「待否决的决定」,逐条写清选了什么、备选是什么、怎么回退。禁止把这类决定埋在改动说明里一笔带过。
没这条之前,agent 碰到要人拍板的事,基本就两种反应。要么停下来问你,你不在,任务就卡在那儿,第二天回来发现还停在第三步;要么它自己定了,在改动说明里顺手提一句「调整了提示文案」,夹在十几条改动中间,等用户看到了你才看到。
两种都挺难受。这条规则走的是第三条路:先做,但把决定摆到台面上,人来否决。
这两天搭 pdd.bot,正好完整跑了一遍。
一份真实的清单
睡前我交代了一句「明天要看到网站上线哈」。Claude Code 第二天交上来的汇报里,单独有一节「待你否决的决定」,一共 5 条,摘要如下:
- 首屏还在承诺模板能直接拿,但模板目前都标着「整理中」。没改定稿文案,只把指标条改成了「6 个模板(整理中)」。备选:首屏改成「模板陆续发布」,先隐藏「拿模板」按钮。
- 仓库是私有的,页面上所有 GitHub 按钮都隐藏了。备选:把仓库公开,改一个开关重新部署。
- 代码行号的颜色比设计稿亮了一档,让对比度够标准。备选:改回设计稿原色,对比度会不达标。
- 中文用系统字体,不加载网络字体,标题字重比设计稿略轻。备选:自托管思源黑体,会多几百 KB。
- 只绑了 pdd.bot,
www.pdd.bot没有配置。备选:加上 www,301 跳转到 pdd.bot。
这 5 条我一条都没回。
按规则,没回就是按原方案生效。网站照常上线,没有一件事卡在等我拍板上。
真正被我否决的那条,出在更早的文案定稿那一轮。它在页脚写了一句「PDD 指 Prompt-Driven Development(提示词驱动开发)。本站为独立项目,与任何同名品牌、公司或个人无关联。」,同样列进了待否决清单。上线后我看到这句,回了一句「不要说这些吧」。它删掉、提 PR、合并、重新部署,清单里那条的记录也改成了「用户已定」。
活不停,人保留说「不」的权力,而且说「不」只要一句话。这套做法想要的就是这个效果。
哪些决定要单列
不是什么都往清单里塞。变量叫什么、函数怎么拆,agent 自己定就好,列多了,真正要看的反而被淹了。我那条规则只点了四类:对外文案、计费与定价、拦截或限制用户、删除数据。
它们有个共同点:直接碰到用户,技术上没有标准答案,属于产品判断。agent 能给一个说得过去的选择,但拍板的应该是人。
上面那 5 条,其实也是按这个口径挑出来的。首屏承诺、字体粗细、要不要显示 GitHub,都是用户看得见的东西。
删除数据要多说一句。删除的代码可以先写、先列出来,真正在生产环境执行,必须等明确授权。删了就回不来,到时候也没什么可否决的了。
每条写三件事
选了什么、备选是什么、怎么回退。
最常见的偷懒写法是「优化了提示文案」。读的人不知道改成了啥,自然也没法判断要不要改回去。上面那 5 条,「选了」写的都是具体做法,「备选」都是一个真能执行的方案,没有「也可以不改」这种凑数项。好的备选能让人一眼看出取舍在哪:第 3 条摆在眼前的就是「好看」和「看得清」二选一。
回退最容易写虚。「可以随时改回来」不算。要写到文件、开关或命令这一级。拿第 3 条来说,回退就是把 app/globals.css 里的 --code-gutter 改回 #6E7782,再部署一次;页脚那条,回退就是 revert 那次合并提交、重新部署。
写不出具体回退步骤的决定,说明它不该先做。已经发给用户的通知、已经扣掉的钱,都撤不回来,这类事得动手前就问,不能放进待否决清单。
能不能先做,取决于能不能回退。
放在哪里
PR 描述和收尾汇报,两处都单独成一节,别混进「变更」列表。每条编号,人回复的时候说一句「2 用备选」就够了,agent 照第 2 条的回退步骤改,来回一次结束。
没人回复,就按原方案执行。这是否决和审批最大的区别:审批是先问再做,任务等人;否决是先做再看,默认生效。
可以直接抄的版本
贴进项目的 CLAUDE.md(Codex 读 AGENTS.md),agent 每次开工都会读到:
## 待否决的决定
- 对外文案、计费与定价、拦截或限制用户:可以先按推荐方案实现,
但必须在 PR 描述和收尾汇报里单列「待否决的决定」
- 删除数据:代码可以先写并单列,在生产环境执行前必须得到明确授权
- 每条写清:选了什么、备选是什么、怎么回退(具体到文件、开关或命令)
- 撤不回来的(已发出的通知、已扣的费用)不能先做,先问
- 不要把这类决定写进改动说明里一笔带过
刚开始用,清单可能偏长或偏短,按实际调就行。哪类你每次都直接放行,就从规则里拿掉;哪类你老是事后才发现,就加进去。
那 5 条里,后来只有第 1 条跟着一次文案精简动过,首屏那句承诺删掉了;其余 4 条到现在都是原方案,网站也一直在线。