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 -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 |
刪除候選項目與後續計劃的範本 |






