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 -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) 輸出格式

按以下結構組織審查:

## 程式碼審查摘要

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