code-review-expert

code-review-expert

熱門

資深工程師視角的 Git 變更程式碼審查。偵測 SOLID 違反、安全風險,並提出可行的改善建議。

3769星標
333分支
更新於 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 -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) 輸出格式

按以下結構組織審查:

## 程式碼審查摘要

**審查檔案數**: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 刪除候選與後續計畫範本