程式碼審查基礎
審查使用者指出的變更。若使用者未指定,則審查目前分支相對於其基礎分支的變更:
- 找出基礎分支:依序嘗試
git merge-base HEAD origin/main、origin/master、origin/develop。若都不存在,則審查未提交的變更 (git diff HEAD)。 - 讀取完整的 diff,然後對任何無法僅從 diff 判斷的變更,開啟周圍的程式碼。
檢查清單
逐項檢查。僅回報有實際發現的項目。
正確性
- 程式碼是否達成變更預期的目的?請檢查差一錯誤、錯誤的條件、未處理的
None/null,以及被吞沒的例外。 - 是否處理了邊界情況:空輸入、極大輸入、並發呼叫、重試?
測試
- 每個行為變更是否都有測試覆蓋,且測試在缺少該變更時會失敗?
- 測試是否檢查行為,而非實作細節?
可讀性
- 名稱是否準確?新加入的同事能否一次讀懂?
- 是否遺留了死碼、除錯輸出或註解掉的程式碼?
安全性(基本)
- 程式碼、設定檔或記錄中無機密資訊、權杖或憑證。
- 使用者輸入已驗證,查詢已參數化,絕不透過字串串接來建構。
一致性
- 是否遵循
CLAUDE.md及周圍程式碼中的慣例?
輸出
依嚴重程度分組發現:
- 必須修正:錯誤、安全問題、危險邏輯的遺漏測試。
- 建議修正:未來會耗時的可維護性問題。
- 微調:選擇性的潤飾。請保持在少數。
對每個發現,提供 file:line、問題說明以及具體的修改建議。最後以一行結論結尾:可合併、必須修正後可合併 或 需要再次審查。若某一類別無任何發現,則省略該類別。請勿憑空捏造問題。
Pro 版本額外增加了完整的安全、效能、無障礙及 API 設計檢查清單,以及
/review命令,能為 diff 自動挑選適當的檢查項目。