用 Claude Code 設計 AI 程式碼審查機制:以 Payload CMS 為例
用 Claude Code 設計 AI 程式碼審查機制:以 Payload CMS 為例 — 編譯摘要
濃縮
核心結論:
- AI 寫程式碼的盲區在於「框架特有的注意事項」——AI 能讓功能跑起來,但不一定遵守框架的安全性、效能和資料庫變更最佳實踐。
- Claude Code 的 Command / Agent / Skill 三層架構應按「知識和流程的更新頻率」分開——Skill 存知識(會隨框架版本更新),Agent 定義流程(基本不變),Command 是入口。
- 噪音過濾是審查報告可用性的關鍵——只報告信心度 > 80% 的問題,同類問題合併,否則開發者會忽略所有警告。
關鍵證據:
- Payload CMS 三個風險維度:安全性(內部 API 預設不檢查權限)、效能(depth 關聯查詢)、資料庫變更(欄位改名 = 先刪後建,資料會消失)。
- 五個指令拆分:日常 4 個(check/review/perf/migrate)+ 定期 1 個(audit)。
- Skill 中每個檢查項目配「錯誤 → 正確」程式碼對照,光文字描述 AI 無法精準辨識。
質疑
結論 1:AI 不了解框架特有注意事項
- 前提假設:框架的最佳實踐已寫在官方文件中。但新框架可能文件不完整,或最佳實踐還在社群摸索中。
- 換技術棧:成熟框架(如 WordPress、Rails)的常見陷阱已被模型訓練資料覆蓋,AI 可能已經知道。
- 反例:如果團隊的 Skill checklist 過時或有錯,反而會產生錯誤的信心。
結論 2:三層架構分離知識與流程
- 前提假設:審查流程是通用且穩定的。但不同團隊可能需要不同的報告格式或審查步驟。
- 邊界條件:如果 Skill 文件太大(> 1000 行),AI 可能無法完整載入或遺漏部分檢查項目。
結論 3:80% 信心度門檻
- 前提假設:AI 能自我評估信心度。實際上 AI 的 calibration 可能不準確——可能對某些真正危險的問題信心度反而低。
- 反例:「我不確定」的問題有時候恰恰是最危險的。
對標
- 航空業的 checklist 文化:飛行員的起飛前 checklist 按嚴重程度分級(critical / non-critical),與 Skill 的 CRITICAL / HIGH / MEDIUM / LOW 分級邏輯相同。
- 靜態分析工具(ESLint、SonarQube):AI 審查可視為「框架特定的動態靜態分析」——靜態分析查語法規則,AI 審查查框架慣例。
- 醫療的臨床指引(Clinical Guidelines):醫療指引也是知識(最佳實踐)與流程(診斷步驟)分離,知識隨研究更新,流程相對穩定。
關聯概念
- [[Claude Code 三層架構]]
- [[Claude Code Skill 系統]]
- [[AI 程式碼審查]]
- [[品質評分機制]]