🎯 什麼情境該想到我

當你已經在用 AI 審查 PR,但遇到兩種狀況:一是不知道它到底準不準、改了 prompt 有沒有變好;二是 agent 寫、agent 審,兩邊來回好幾輪都停不下來。

⚙️ 怎麼用(步驟 / 公式)

1. 用自己的事故當評估集

  • 收集過去造成事故的 PR,包含後來的修補與回滾,請熟悉那段程式的工程師確認每個 bug 與它所在的位置。
  • 審查器每天對這組案例跑一次。
  • 每次改審查器的 prompt、工具或模型,都對全部案例重新評分:分數上升才保留,否則丟掉。
  • 每多一次事故,就多一個案例。評估集的通用做法見 工具-AI系統評估;「改動要有對照組」見 工具-AI改動的AB對照評測。

2. 量雜訊:看人怎麼回應留言

只追求抓到更多 bug 很容易,只要不在乎誤報就好,所以一定要有反向的量測:

  • 把審查器的每則留言,依 PR 上的人怎麼回應分類:修了、說它錯了、說這是故意的行為、或判斷不重要。
  • 拿已知乾淨的 PR 跑審查器,數它多常報出「會讓人做出有害修改」的東西。
  • 把優先順序寫下來。原文的順序是:先抓到真的 bug,其次才是減少審查輪數。
  • 只關於風格、診斷資訊、程式整理的發現直接丟掉;這些過濾規則他們先在自己的 PR 上做過 A/B 測試才保留。
  • 作者是 agent 時,雜訊更貴:人可以幾秒鐘略過一個小意見;agent 會去修它,於是多一個 commit、多一輪審查。

3. 讓審查收斂

agent 作者加上 agent 審查者,可以互相忙到天荒地老:原文有一個 PR 在一夜之間跑了五十多輪審查與修正,直到作者喊停。對反覆被挑出的問題跑 git blame,約 59% 是審查器第一輪時就已經存在的舊程式碼,它很少找到新 bug,只是每輪多找出幾個舊的。

他們加了四條規則:

  • 輪數上限:三輪之後,審查器請作者退一步,重新考慮做法。
  • 前幾輪之後只審 diff,不再重審整份。
  • 指出「這一類」bug,讓作者一次修掉所有實例,而不是一次一行。
  • 不重複張貼已經貼過的發現。

結果(Claude Code 內部 PR,原文 2026-10-15):

指標調整前調整後
一輪審查加修正就通過65%78%
需要 5 輪以上8.9%1.5%
平均審查次數2.081.32

4. 依風險決定審多深

例行變更快速看過,漏掉一個 bug 代價很高的地方才深審。原文的 Code Review 產品讓管理者把每個 repo 設成 Quick、Standard 或 Deep 三種深度。舊程式碼裡的 bug 交給每晚跑的審查 agent 掃,不要塞進每個 PR 的審查裡。

🧪 我實際套用的紀錄

  • 2026-10-31:(待填)

⚠️ 注意 / 什麼時候不適用

  • 事故評估集需要人力確認:每個案例都要熟悉那段程式的人確認 bug 與位置。事故太少的團隊,可以先用回滾過的 PR 湊案例。這一點是我的推論,原文沒有提到。
  • 多跑幾輪不是免費的:原文說他們一度習慣預設多跑幾輪,因為每輪都會多抓到一點東西;這對高風險變更值得,但不是每個 PR 都值得。所以他們把「通過所需的輪數」和抓到率一起追蹤。
  • AI 審查的發現要分清是不是這個 PR 造成的:原文把每個發現標成 Important、Nit 或 Pre-existing,避免「PR 沒引入的 bug 看起來像作者的錯」。
  • 原文的數字都是 Claude Code 團隊自己的內部數據,不同 repo、不同模型的結果會不一樣。

🔗 相關工具