code-review-expert

code-review-expert

熱門

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

3760星標
332分支
更新於 2026/5/11
SKILL.md
readonlyread-only
name
code-review-expert
description

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

Code Review Expert

概述

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

嚴重性等級

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

工作流程

1) 前置檢查

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

邊界情況:

  • 無變更:如果 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 刪除候選項目與後續計劃的範本