code-review-expert

code-review-expert

熱門

以資深工程師視角對當前 Git 變更進行專業程式碼審查,偵測 SOLID 違規、安全風險,並提出可行的改善建議。

3760星標
332分支
更新於 2026/5/11
SKILL.md
唯讀
名稱
code-review-expert
描述

以資深工程師視角對當前 Git 變更進行專業程式碼審查,偵測 SOLID 違規、安全風險,並提出可行的改善建議。

Code Review Expert

概述

對當前 Git 變更進行結構化審查,重點關注 SOLID、架構、可移除程式碼及安全風險。預設僅輸出審查結果,除非使用者要求實作變更。

嚴重性等級

等級 名稱 說明 行動
P0 嚴重 安全漏洞、資料遺失風險、正確性錯誤 必須阻止合併
P1 高 邏輯錯誤、重大 SOLID 違規、效能回歸 應在合併前修正
P2 中 程式碼異味、可維護性問題、輕微 SOLID 違規 在此 PR 中修正或建立後續任務
P3 低 風格、命名、微小建議 可選的改進

工作流程

1) 前置檢查

  • 使用 git status -sb、git diff --stat 和 git diff 來界定變更範圍。
  • 如有需要,使用 rg 或 grep 尋找相關模組、使用情況和合約。
  • 識別進入點、所有權邊界和關鍵路徑(認證、付款、資料寫入、網路)。

邊界情況:

  • 無變更:如果 git diff 為空,通知使用者並詢問是否要審查暫存變更或特定提交範圍。
  • 大量差異(>500 行):先按檔案摘要,再按模組/功能區域分批審查。
  • 混合關注點:按邏輯功能分組,而非僅按檔案順序。

2) SOLID + 架構異味

  • 載入 references/solid-checklist.md 以取得具體提示。
  • 檢查:
    • SRP:過載的模組包含不相關的職責。
    • OCP:頻繁編輯以新增行為,而非使用擴充點。
    • LSP:子類別破壞預期行為或需要型別檢查。
    • ISP:寬介面包含未使用的方法。
    • DIP:高階邏輯與低階實作緊密耦合。
  • 當你提出重構時,解釋為何它能改善內聚/耦合,並概述最小且安全的分割方式。
  • 如果重構非簡單,提出增量計劃而非大規模改寫。

3) 可移除程式碼 + 迭代計劃

  • 載入 references/removal-plan.md 以取得範本。
  • 識別未使用、冗餘或功能開關關閉的程式碼。
  • 區分現在安全刪除與延後並計劃。
  • 提供後續計劃,包含具體步驟和檢查點(測試/指標)。

4) 安全與可靠性掃描

  • 載入 references/security-checklist.md 以取得涵蓋範圍。
  • 檢查:
    • XSS、注入(SQL/NoSQL/命令)、SSRF、路徑遍歷
    • 授權/認證缺口、缺少租戶檢查
    • 機密洩漏或 API 金鑰出現在日誌/環境變數/檔案中
    • 速率限制、無界迴圈、CPU/記憶體熱點
    • 不安全的反序列化、弱加密、不安全預設值
    • 競爭條件:並發存取、檢查後再動作、TOCTOU、缺少鎖
  • 同時指出可利用性和影響。

5) 程式碼品質掃描

  • 載入 references/code-quality-checklist.md 以取得涵蓋範圍。
  • 檢查:
    • 錯誤處理:吞沒例外、過於寬泛的 catch、缺少錯誤處理、非同步錯誤
    • 效能:N+1 查詢、熱點路徑中的 CPU 密集型操作、缺少快取、無界記憶體
    • 邊界條件:null/undefined 處理、空集合、數值邊界、差一錯誤
  • 標記可能導致靜默失敗或生產事故的問題。

6) 輸出格式

按以下結構組織你的審查:

## Code Review 摘要

**審查檔案數**:X 個檔案,Y 行變更
**整體評估**:[APPROVE / REQUEST_CHANGES / COMMENT]

---

## 發現

### P0 - 嚴重
(無或列表)

### P1 - 高
1. **[檔案:行號]** 簡短標題
  - 問題描述
  - 建議修正

### P2 - 中
2. (跨區塊連續編號)
  - ...

### P3 - 低
...

---

## 移除/迭代計劃
(如適用)

## 其他建議
(非阻擋性的可選改進)

行內註解:對特定檔案的問題使用此格式:

::code-comment{file="path/to/file.ts" line="42" severity="P1"}
問題描述與建議修正。
::

乾淨審查:如果未發現問題,明確說明:

  • 檢查了哪些項目
  • 未涵蓋的範圍(例如「未驗證資料庫遷移」)
  • 殘餘風險或建議的後續測試

7) 下一步確認

在呈現發現後,詢問使用者如何進行:

---

## 下一步

我發現了 X 個問題(P0: _, P1: _, P2: _, P3: _)。

**您希望如何進行?**

1. **全部修正** - 我將實作所有建議的修正
2. **僅修正 P0/P1** - 處理嚴重和高優先級問題
3. **修正特定項目** - 告訴我要修正哪些問題
4. **不修改** - 審查完成,無需實作

請選擇一個選項或提供具體指示。

重要:在使用者明確確認之前,請勿實作任何變更。這是一個審查優先的工作流程。

資源

references/

檔案 用途
solid-checklist.md SOLID 異味提示與重構啟發式
security-checklist.md Web/應用安全與執行時期風險檢查清單
code-quality-checklist.md 錯誤處理、效能、邊界條件
removal-plan.md 刪除候選項目與後續計劃的範本