AgentSkillsCN

pr-review

Pull Request评审。当用户提出创建PR、准备合并,或说“PR review”时,系统会自动执行。分析所有提交,标记风险区域,检查测试覆盖率,并生成PR摘要。

SKILL.md
--- frontmatter
name: pr-review
description: Pull Request 審查。當用戶要求建立 PR、準備 merge、或說「PR review」時自動執行。分析所有 commits、標記風險區域、檢查測試覆蓋、產生 PR 摘要。
allowed-tools:
  - Bash(gh *)
  - Bash(git *)
  - Bash(bun run test *)
  - Bash(bun x ultracite check)
  - Read
  - Grep
  - Glob

PR Review - Pull Request 審查

自動觸發時機

Claude 會在以下情況自動執行此 skill:

觸發情境說明
建立 PR用戶說「建立 PR」、「create PR」
準備 mergePR 準備合併前的最終檢查
用戶要求「review PR」、「檢查 PR」
分支完成功能分支開發完成,準備合併

審查流程

步驟 1: 收集 PR 資訊

bash
# 查看當前分支
git branch --show-current

# 查看與 main 的差異
git log main..HEAD --oneline

# 查看變更的檔案
git diff main --name-only

# 查看變更統計
git diff main --stat

步驟 2: 分析變更內容

對每個變更的檔案分類:

分類檔案模式風險等級
API 路由packages/api/src/routers/*🔴 高
資料庫 Schemapackages/db/src/schema/*🔴 高
認證邏輯packages/auth/*🔴 高
業務邏輯packages/services/*🟠 中
UI 元件apps/web/src/components/*🟡 低
測試**/*.test.ts🟢 安全
文件*.md, .doc/*🟢 安全

步驟 3: 執行檢查

bash
# 型別檢查
bun run typecheck

# Lint 檢查
bun x ultracite check

# 執行測試
bun run test

步驟 4: 安全掃描

自動調用 /secret-scanner/security-audit

步驟 5: 產生報告

輸出格式

markdown
## 📋 PR Review 報告

### 基本資訊
- **分支**: feature/xxx → main
- **Commits**: X 個
- **變更檔案**: X 個
- **新增行數**: +XXX
- **刪除行數**: -XXX

### 📊 變更摘要

#### 🔴 高風險變更
| 檔案 | 變更類型 | 說明 |
|------|---------|------|
| `packages/api/src/routers/opportunity.ts` | 修改 | 新增 API 端點 |
| `packages/db/src/schema/opportunity.ts` | 修改 | 新增欄位 |

#### 🟠 中風險變更
| 檔案 | 變更類型 | 說明 |
|------|---------|------|
| `packages/services/src/llm.ts` | 修改 | 更新 prompt |

#### 🟢 低風險變更
- `apps/web/src/components/Button.tsx` - UI 調整
- `README.md` - 文件更新

### ✅ 檢查結果

| 檢查項目 | 狀態 | 說明 |
|---------|------|------|
| 型別檢查 | ✅ | 無錯誤 |
| Lint | ✅ | 無問題 |
| 測試 | ✅ | 45/45 通過 |
| 安全掃描 | ✅ | 無敏感資訊 |
| 安全審計 | ⚠️ | 1 個建議 |

### 🔍 詳細審查

#### Commit 分析
1. `abc1234` - feat: 新增機會批量更新功能
2. `def5678` - fix: 修復分頁問題
3. `ghi9012` - test: 新增單元測試

#### 需要注意的變更

##### packages/api/src/routers/opportunity.ts
- 新增 `batchUpdate` 端點
- ✅ 有輸入驗證(Zod schema)
- ✅ 有權限檢查
- ⚠️ 建議:新增 rate limiting

### 📝 PR 描述建議

\`\`\`markdown
## Summary
- 新增機會批量更新功能
- 修復分頁查詢效能問題

## Changes
- [x] 新增 batchUpdate API 端點
- [x] 優化分頁查詢邏輯
- [x] 新增單元測試

## Test Plan
- [x] 單元測試通過
- [ ] 手動測試批量更新功能
- [ ] 驗證分頁效能改善

## Screenshots
(如適用)
\`\`\`

### ✅ 準備合併
- [x] 所有檢查通過
- [x] 無安全問題
- [x] 測試覆蓋充足
- [ ] 需要人工確認高風險變更

建立 PR 命令

當所有檢查通過後:

bash
gh pr create \
  --title "feat: 機會批量更新功能" \
  --body "$(cat <<'EOF'
## Summary
[自動產生的摘要]

## Test Plan
[自動產生的測試計劃]

https://claude.ai/code/[session-id]
EOF
)"

專案特定規則

PR 命名規範

code
<type>: <description>

type:
- feat: 新功能
- fix: Bug 修復
- refactor: 重構
- docs: 文件
- test: 測試
- chore: 雜項

必須檢查項目

項目原因
資料庫遷移避免 production 資料問題
API 變更向後相容性
環境變數確保 production 有設定

整合的工具

工具用途
Bash(gh)GitHub CLI 操作
Bash(git)Git 操作
Bash(test)執行測試
Read讀取變更內容

相關 Skills

  • /code-review - 詳細程式碼審查
  • /secret-scanner - 敏感資訊掃描
  • /security-audit - 安全審計
  • /test - 執行測試