编程与开发 · 第 16 期

AI Code Review 接 CI/CD,门禁怎么设

设太严挡所有 PR,设太松等于没接

AI review 接进 CI 后,门禁怎么设才不挡路又不放水?硬门禁(必须过)vs 软门禁(建议看),按严重度分级。设太严挡所有 PR,设太松等于没接。门禁的精髓是分级拦截:高危硬挡、中危警告、低危放行。
⏱ 约 10 分钟 🎯 接 AI review 到 CI 的团队 📦 源:open-code-review §5

01一个反共识:门禁不是"全过或全挡",是分级

很多人接 AI review 到 CI,第一反应是"AI 说有问题就挡 PR"。结果第一周所有 PR 都被挡——因为 AI 总能挑出点问题。全挡等于没接,团队会直接关掉这个门禁。

高危(安全/数据损坏)→ 硬门禁,必须过
中危(性能/可维护性)→ 软门禁,警告不挡
低危(风格/命名)→ 只记录,不提示

门禁的精髓是分级:高危硬挡(如 SQL 注入、密钥泄露),中危警告(如 N+1 查询、缺失测试),低危放行只记录(如命名风格)。这样 AI 挑出的 80% 低危问题不挡路,20% 高危问题真挡住——团队既不被烦扰,又拦住了真危险。门禁不是过滤器,是分级路由。

全挡等于没接,
分级才是真门禁。
灏天文库 · 编程与开发 P.48

02CI 门禁演示:勾选门禁看哪些 PR 被拦截

下面是 5 个 PR 和一组可勾选的门禁。勾选哪些门禁开启,看每个 PR 是被挡、被警告还是放行。注意分级的效果。

🚦 CI 门禁演示
勾选门禁开启,看 5 个 PR 的命运。硬门禁挡,软门禁警告。

门禁配置(勾选=开启)

03硬门禁 vs 软门禁:挡的是行为不是意见

硬门禁和软门禁的区别不是"严不严",而是挡的是什么:

所以硬门禁可以挡,软门禁只能警告。把软门禁设成硬挡,等于让 AI 当代码警察,团队会反抗。正确做法:软门禁只发评论、标"建议看",最终拍板权在人。门禁的合法性来自"挡的是事实不是意见"——这是 AI review 接 CI 不被团队抵制的关键。

硬门禁挡事实,
软门禁只建议。
灏天文库 · 编程与开发 P.49

04门禁的演进:从全开到收敛

接 AI 门禁不是一次配好,是逐步收敛的过程:

  1. 第 1 周:全软门禁。所有级别都只警告不挡,观察 AI 报的问题准不准、团队认不认。
  2. 第 2-4 周:调阈值。看误报率,把误报高的门禁降级或关掉,把准的升硬门禁。
  3. 第 2 月:开硬门禁。只对高危且误报率<5% 的开硬挡,其余保持软门禁。
  4. 持续:定期复盘。每月看哪些门禁从没挡过(可关)、哪些挡太频繁(误报高,降级)。

关键认知:门禁配置是活的不死的。团队代码风格在变、AI 模型在升级、业务在迭代,门禁阈值要跟着调。设好就不管的门禁,半年后要么形同虚设要么怨声载道。把门禁配置纳入"每月 review"清单,是 AI review 长期有效的保障。

05带走这套清单

✅ CI 门禁 6 条可执行规则

  1. 门禁分级:高危硬挡、中危警告、低危放行只记录。
  2. 全挡等于没接:80% 低危不挡路,20% 高危真挡住。
  3. 硬门禁挡客观事实(测试/扫描),软门禁挡主观意见。
  4. 软门禁不能硬挡:挡意见会让团队反抗 AI。
  5. 门禁是活配置:第1周全软观察→调阈值→第2月开硬→每月复盘。
  6. 门禁合法性来自"挡事实不挡意见",这是不被抵制的核心。
门禁挡事实不挡意见,
团队才不反抗。
灏天文库 · 编程与开发 P.50