提案与证据
触发原因、改动、验证、影响面、是否破坏性:谁写哪一部分;提案要小;开完提案之后做什么。

本课目标
读完这一课,你将能够
- 说出提案证据的五个部分,以及哪些由智能体写、哪些由平台算
- 写出一条带触发原因和自测结果的
aidc semantic branch propose命令 - 判断一份提案该不该拆小,并知道开完提案之后智能体该做什么
提案是一份让人审得动的论据
分支写好、自测过了,下一步是开提案。本课按默认 review 策略演示,由人审核。提案(Proposal)像一次代码评审:审核的人只看得到提案里摆出的证据,所以每份提案带五样证据。
触发原因
智能体写。哪个问题答不出,接了哪个新数据源。
改动
平台算。按资源列出新建、修改、删除了什么,每个资源是一项审核。
验证
合并检查的结果,加上智能体自己写的自测结果。
影响面
平台算。最近 30 天这些类型被读写了多少次、有多少活跃用户,哪些应用登记了它们。
是否破坏性
平台算。破坏性改动单独标出,连同受影响的下游应用。
分工是有意的:智能体写「为什么」和「我测了什么」,平台算「改了什么」「影响谁」「破不破坏」。智能体不给自己的作业打分。
影响面这一项,要会读。一个类型 30 天里没人读写,改它的风险小。有几个应用在自己的清单里登记了它,改它就得先想到这几个应用。审核的人看的正是这个:改的东西有多少人在用。
写触发原因和自测结果
采购智能体把上一节的分支交出去。触发原因沿用发现那一节写好的那句,再补上自测结果。触发原因要能单独读懂,因为审核的人可能是第一次听说这件事:
aidc semantic branch propose delivery-promise \
--title "加交期承诺对象类型" \
--trigger "采购员本周三次问「哪些供应商在哪些物料上晚了」,答不出:说明书里没有交期承诺;po-promises 流在送数据,但没有对象类型接它" \
--self-test "分支上 validate 为 VALID;object-types DeliveryPromise、links purchaseOrder promises 都能读到;数据尚未绑定,对象数为 0,合并后用 SQL 复核" \
--json
自测结果有一条硬规矩:写清楚没验证的。上面这条明说「数据尚未绑定」,审核的人就知道合并后该看哪里。一份写满「全部通过」的自测,反而让人不放心。
更好的自测是一份问题清单:每个问题写「答出来了没有」和「走的哪条路径」。SDK 的提案证据里有专门的 questions 字段;命令行目前只有 --self-test 一段文字,就把问题清单写进这段文字里。
提案要小
一份提案只解决一个问题。原因很实际:提案里每个资源是一项审核,任何一项被拒绝就挡住整份合并。把三件不相干的事捆在一起,最弱的一项会拖住另外两项。
| 大而杂的提案 | 小而准的提案 | |
|---|---|---|
| 审核 | 人要同时想清楚三个问题 | 一个问题,一次看完 |
| 被拒绝时 | 整份等着重做 | 只重做这一件事 |
| 出问题时 | 不知道该查哪一部分 | 一份提案对应一个语义版本,一目了然 |
还有一条顺序上的规矩:先把分支改到位、validate 通过,再开提案。提案打开之后,如果智能体又改了分支,被改到的那一项要重新审。一个分支同一时间只有一个打开的提案。
开完提案之后
命令的输出里有 reviewUrl,这是给人的审核地址。智能体的下一步是把地址交给人,然后去做别的事,不要在终端里循环等待。交给人的话写三样:提案标题、一句话说明它解决什么、审核地址。
过一会儿,用下面的命令看一眼进度。审核意见要改的话,回分支上改;想撤回,就关掉这份提案。
aidc semantic proposals --status OPEN
aidc semantic proposal <提案 id>
aidc semantic proposal close <提案 id> --note "改用另一个方案"
要点
- 提案带五样证据:触发原因、改动、验证、影响面、是否破坏性。
- 智能体写触发原因和自测结果,平台算改动、影响面(30 天)和破坏性;智能体不给自己打分。
- 自测要写清没验证的部分;更好的自测是一份问题清单。
- 一份提案只解决一个问题:任何一项被拒绝就挡住整份合并。
- 开完提案,把审核地址交给人再去做别的事,不在终端里循环等。
练一练
替智能体写一份提案
沿用上一节的分支,或者你自己的分支。
写出完整的 aidc semantic branch propose:标题、触发原因、自测结果。自测里至少有一句「没验证什么」。
把你的提案里的每一句话归到五样证据里,标出哪些是你写的、哪些应该由平台算。
假设你想在同一份提案里再加一个 supplier.onTimeRate 属性。要不要拆?写出理由。
小测
选一个答案,马上看解析。
Q1提案证据里,哪一部分是智能体自己写的?
「为什么改」和「我测了什么」只有智能体知道;影响面和破坏性由平台从数据和定义算出来,智能体改不了。
Q2为什么一份提案最好只解决一个问题?
提案可以有多个资源,每个资源一项审核。一项被拒就不能合并。review 要人批准;yolo 允许有修改权限的贡献者自动批准,检查通过后自动合并。
Q3自测时新类型还没有数据,自测结果该怎么写?
数据流要等新类型合并之后才能绑定,所以只能如实写明;隐瞒会让审核的人失去判断依据。