code-reviewer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited code-reviewer (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
對程式碼進行全面審查,檢查品質、安全性、效能和最佳實踐。
詢問或推斷審查目標:
read_file("path/to/file.py")grep_search 取得概覽semantic_search("功能名稱")get_changed_files()# Ruff - 快速 linter (取代 flake8 + isort + pyupgrade)
uv run ruff check src/ --output-format=concise
# Mypy - 型別檢查
uv run mypy src/ --ignore-missing-imports
# Bandit - 安全性檢查
uv run bandit -r src/ -ll
# Vulture - 死碼偵測
uv run vulture src/ --min-confidence 80| 檢查項目 | 標準 | 工具輔助 |
|---|---|---|
| 命名清晰度 | 名稱應描述用途 | 人工審查 |
| 函數長度 | < 50 行 | grep_search |
| 類別大小 | < 300 行 | grep_search |
| 複雜度 | McCabe < 10 | ruff --select=C901 |
| DRY 原則 | 無重複程式碼 | semantic_search |
| SOLID 原則 | 單一職責等 | 人工審查 |
| 風險類型 | 檢查方式 | 嚴重程度 | ||
|---|---|---|---|---|
| SQL 注入 | 搜尋 raw SQL | 🔴 Critical | ||
| XSS | 搜尋未轉義輸出 | 🔴 Critical | ||
| 硬編碼密碼 | grep "password\ | secret\ | key" | 🔴 Critical |
| 路徑遍歷 | 搜尋未驗證路徑 | 🟠 High | ||
| 日誌洩漏 | 搜尋敏感資料輸出 | 🟡 Medium |
| 問題類型 | 偵測方式 |
|---|---|
| N+1 查詢 | 搜尋迴圈內的 DB 呼叫 |
| 無謂迴圈 | 審查巢狀迴圈 |
| 記憶體洩漏 | 檢查資源釋放 |
| 阻塞操作 | 審查 I/O 操作 |
參考 ddd-architect 規則:
# 程式碼審查報告
📁 審查範圍:`src/domain/`, `src/application/`
📅 日期:2026-01-15
👤 審查者:AI Assistant
---
## 📈 總覽
| 指標 | 分數 | 說明 |
| ---- | ---- | ---- |
| 品質 | 8/10 | 命名清晰,部分函數過長 |
| 安全 | 9/10 | 無明顯漏洞 |
| 效能 | 7/10 | 存在 N+1 查詢風險 |
| 架構 | 8/10 | 符合 DDD,但有小違規 |
---
## ✅ 優點
1. **清晰的領域模型**:User entity 封裝良好
2. **完整的錯誤處理**:使用自定義例外
3. **良好的測試覆蓋**:核心邏輯有單元測試
---
## ⚠️ 問題發現
### 🔴 Critical (必須修復)
#### 1. SQL 注入風險
- **位置**:[user_repository.py](src/infrastructure/repositories/user_repository.py#L45)
- **問題**:使用字串拼接建立 SQL
- **建議**:使用參數化查詢
query = f"SELECT * FROM users WHERE name = '{name}'"
query = "SELECT * FROM users WHERE name = ?" cursor.execute(query, (name,))
### 🟠 High (應該修復)
#### 2. 函數過長
- **位置**:[auth_service.py](src/application/services/auth_service.py#L20-L85)
- **問題**:`authenticate()` 函數 65 行
- **建議**:拆分為多個私有方法
### 🟡 Medium (建議改進)
#### 3. 缺少型別標註
- **位置**:多處
- **建議**:為公開 API 新增型別標註
---
## 📋 改進清單
- [ ] 修復 SQL 注入問題 (Critical)
- [ ] 重構 authenticate() 函數 (High)
- [ ] 新增型別標註 (Medium)
- [ ] 補充單元測試 (Low)| Skill | 整合方式 |
|---|---|
code-refactor | 發現問題後調用進行重構 |
security-reviewer | 深入安全審查時調用 |
test-generator | 發現測試不足時調用 |
ddd-architect | 架構違規時參考 |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.