Code Review:把代碼評審從「掃一眼」變成分維度清單

前言

PR 一打開,滿屏 diff,很多人的做法是從上往下掃一遍,憑感覺留兩條「看起來沒問題」的評論。結果是安全漏洞漏掉、性能問題沒人管,評審意見也零散,作者看完不知道優先級在哪。

下面介紹的 Code Review 是一個通用 SKILL.md 格式的代碼評審 Skill,由 wpank 發佈在 ClawHub 上。它不替代人做判斷,而是把評審這件事拆成固定維度、固定流程和固定輸出格式,讓你照着清單逐項過,避免隨機掃描。

這是什麼

一句話定位:一套系統化的代碼評審模式,覆蓋安全性、性能、正確性、可維護性和測試,附帶嚴重等級、結構化反饋指南、評審流程和需要避免的反模式。

  • 出品方:wpank,座標 @clawhub_wpank/code-review
  • 來源:ClawHub,版本 1.0.0
  • 分類:dev-programming
  • 上游倉庫:https://clawhub.ai/wpank/code-review
  • SkillHub 頁面:https://www.skillhub.cn/skills/clawhub_wpank/code-review
  • 標籤:requires_api_key=false,即使用前不需要配置 API Key

它解決三類問題:評審標準不統一(每個人關注點不一樣)、評審順序隨意(容易漏邊界條件)、反饋不可執行(只說「這裏不對」,不說怎麼改、多嚴重)。

核心功能

評審維度

Skill 把變更拆成七個維度,每個維度標了優先級。優先級是固定的,不是按文件大小平均分配精力。

維度 關注點 優先級
安全性 漏洞、鑑權、數據暴露 Critical
性能 速度、內存、擴展性瓶頸 High
正確性 邏輯錯誤、邊界情況、數據完整性 High
可維護性 可讀性、結構、後續改造空間 Medium
測試 覆蓋率、測試質量、可靠性 Medium
可訪問性 WCAG 合規、鍵盤導航、屏幕閱讀器 Medium
文檔 註釋、API 文檔、變更記錄 Low

分維度清單

每個維度都有一份可逐條打勾的清單。安全清單 13 條,覆蓋 SQL 注入、XSS、CSRF、認證與授權(含 IDOR)、服務端輸入校驗、密鑰管理、依賴安全、敏感數據不入日誌、限流、文件上傳、HTTP 安全頭。性能清單 10 條,覆蓋 N+1 查詢、無謂重渲染、內存泄漏(監聽器與定時器需在卸載時清理)、包體積與 tree-shaking、懶加載、緩存策略、數據庫索引與 EXPLAIN、分頁、異步任務外移、圖片資源優化。

正確性清單 10 條,覆蓋邊界值、null/undefined 檢查、off-by-one、競態條件、時區(UTC 存儲、展示層轉換)、Unicode 與編碼、整數溢出與金額精度(BigInt / Decimal)、錯誤傳播(Promise 不被靜默吞掉)、多步操作的事務一致性、邊界值測試。

可維護性清單 10 條,覆蓋命名錶意、單一職責、DRY、圈複雜度、錯誤處理邊界、死代碼清理、魔法數字提取、沿用倉庫既有約定、函數長度、依賴方向(依賴指向內層,核心邏輯不反向依賴 UI 或框架層)。

測試清單 8 條,覆蓋新邏輯路徑的測試、邊界與失敗用例、測試確定性(不依賴時序和外部服務)、測試獨立性、斷言應針對行爲而非實現細節、Arrange-Act-Assert 結構、只對外部邊界做 mock、修復 bug 時補回歸測試。

三遍評審流程

Skill 明確要求分三遍過,不要試圖在一次閱讀裏抓完所有問題。

  1. 第一遍,2-5 分鐘看高層結構:讀 PR 描述和關聯 issue,掃文件列表判斷改動範圍是否合理,確認整體方案是否是該問題的合適解法,檢查是否引入架構漂移。
  2. 第二遍,逐行細看,佔用主要評審時間:逐個文件 diff 從上到下讀,對照上面各維度清單檢查每個函數改動,驗證每個 I/O 邊界的錯誤處理,標記任何讓人需要停下來想一下的地方。
  3. 第三遍,5 分鐘做邊界與加固:檢查失敗模式、併發情況、邊界值、缺失的測試。

嚴重等級與反模式

清單用嚴重等級給意見分級,並給出結構化反饋指南,即每條意見需要說清問題、位置、影響和建議改法。同時列出評審中要避免的反模式,例如把風格偏好當成缺陷、只提問題不給方案、把個人偏好的實現方式當成唯一正確解。

安裝與啓用

這是通用 SKILL.md 格式的 Skill,通過命令行安裝後由支持該格式的編碼工具加載。ClawHub 頁面給出兩種命令。

在 OpenClaw / Moltbot / Clawbot 環境安裝:

npx clawhub@latest install code-review

通用安裝命令:

$ openclaw skills install @wpank/code-review

安裝完成後,把 Skill 作爲評審環節的一部分觸發,例如在 PR 評審時明確要求按安全、性能、正確性、可維護性、測試五個維度逐項過,並輸出分級意見。Skill 本身不含可執行程序,它是評審模式與清單,實際判斷仍由模型結合你的代碼上下文完成,所以觸發時最好把 PR 描述、涉及文件列表和關鍵 diff 一起提供。

至於 Cursor、Codex CLI、Claude Code 的具體加載方式,官方資料沒有分別說明,這裏不猜測,按各自工具對 SKILL.md 的通用支持方式操作即可。

典型用法

下面是可復現的用法,直接照做即可。

  1. 安裝後,把 Skill 接入 PR 評審流程:
npx clawhub@latest install code-review
  1. 評審時按三遍流程要求模型執行:
按 Code Review Skill 評審當前 PR 的 diff。
第一遍看整體方案和改動範圍,第二遍逐行對照安全、性能、正確性、
可維護性、測試清單檢查,第三遍看邊界情況和缺失的測試。
輸出按嚴重等級分級,每條給出位置、問題、影響和修改建議。
  1. 如果是建立團隊審查標準,可以把安全清單和測試清單單獨抽出來作爲 PR 模板裏的 checklist,讓提交者先自查一遍,評審時再按同樣維度複覈。

適用場景與注意

適合這些人:想在團隊裏統一評審標準的負責人、PR 評審質量不穩定的開發者、想把安全與性能檢查常態化但又不想引入重型靜態掃描工具的項目。

使用上的限制:

  • 它是評審模式,不是自動掃描器,不會跑測試也不會跑靜態分析,結論質量取決於餵給它的上下文是否完整。
  • 清單是通用維度,需要結合具體技術棧調整。比如後端項目重點看安全和正確性,前端項目重點看可訪問性和重渲染,純腳本項目可訪問性基本用不上。
  • 嚴重等級是相對優先級,不等於漏洞確認。看到 Critical 只是說這個維度必須處理,不等於該行代碼有確定漏洞。
  • 依賴安全這一條要求「新依賴來自可信來源、有維護、無已知 CVE」,實際覈對仍需外部漏洞庫支持。
  • 版本 1.0.0,清單內容後續可能變化,以 ClawHub 頁面當前內容爲準。

結尾

Code Review 的價值不在於給出一份完美清單,而在於把評審順序和維度固定下來,減少隨機掃描帶來的漏項,並讓反饋帶上嚴重等級和修改建議。如果你現在的評審流程還靠經驗和感覺,可以從安全清單和三遍流程開始用,成本最低。

官方地址:https://clawhub.ai/wpank/code-review
SkillHub 頁面:https://www.skillhub.cn/skills/clawhub_wpank/code-review

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜