|
1 | | -审查指定的 Pull Request。 |
| 1 | +--- |
| 2 | +name: "review" |
| 3 | +description: "审查任务实现并输出代码审查报告" |
| 4 | +usage: "/review <task-id> [--pr-number]" |
| 5 | +--- |
2 | 6 |
|
3 | | -**此命令已迁移到官方插件,提供更专业的多维度审查。** |
| 7 | +# Review Command |
4 | 8 |
|
5 | | -**用法:** |
6 | | -- `/review` - 基础审查(调用插件) |
7 | | -- `/code-review:code-review <pr-number>` - 深度代码审查(5个并行代理) |
8 | | -- `/pr-review-toolkit:review-pr` - 专业PR审查(6个专业代理) |
| 9 | +## 功能说明 |
9 | 10 |
|
10 | | -**推荐使用插件命令:** |
| 11 | +审查任务的代码实现,检查代码质量、规范合规性、测试覆盖等,输出审查报告到 `.ai-workspace/context/` 目录。 |
11 | 12 |
|
12 | | -### 方案1:深度代码审查(推荐) |
13 | | -``` |
| 13 | +## 执行流程 |
| 14 | + |
| 15 | +### 1. 验证前置条件 |
| 16 | + |
| 17 | +检查必需文件: |
| 18 | +- `.ai-workspace/tasks/active/{task-id}.md` - 任务文件 |
| 19 | +- `.ai-workspace/context/{task-id}/implementation.md` - 实现报告 |
| 20 | + |
| 21 | +如果任一文件不存在,提示用户先完成前置步骤。 |
| 22 | + |
| 23 | +### 2. 读取实现报告 |
| 24 | + |
| 25 | +仔细阅读 `implementation.md`,了解: |
| 26 | +- 已修改的文件列表 |
| 27 | +- 实现的关键功能 |
| 28 | +- 测试情况 |
| 29 | +- 实现者标注的需要关注的点 |
| 30 | + |
| 31 | +### 3. 执行代码审查 |
| 32 | + |
| 33 | +按照 `.ai-agents/workflows/feature-development.yaml` 中的 `code-review` 步骤: |
| 34 | + |
| 35 | +**必须审查的内容**: |
| 36 | +- [ ] 代码质量和编码规范(遵循 CLAUDE.md) |
| 37 | +- [ ] Bug 和潜在问题检测 |
| 38 | +- [ ] 测试覆盖率和测试质量 |
| 39 | +- [ ] 错误处理和边界情况 |
| 40 | +- [ ] 性能和安全问题 |
| 41 | +- [ ] 代码注释和文档 |
| 42 | +- [ ] 与技术方案的一致性 |
| 43 | + |
| 44 | +**审查原则**: |
| 45 | +1. **严格但公正**:指出问题,但也认可优点 |
| 46 | +2. **具体明确**:给出具体的文件和行号 |
| 47 | +3. **提供建议**:不仅指出问题,还要提供改进建议 |
| 48 | +4. **分级处理**:区分必须修复和建议优化 |
| 49 | + |
| 50 | +### 4. 调用专业审查工具(可选) |
| 51 | + |
| 52 | +如果需要更深度的审查,可以调用: |
| 53 | + |
| 54 | +**方案1:快速审查**(推荐用于日常 PR) |
| 55 | +```bash |
14 | 56 | /code-review:code-review <pr-number> |
15 | 57 | ``` |
16 | | -**功能:** |
17 | | -- 5个并行 Sonnet 代理审查 |
18 | | -- CLAUDE.md 规范合规性检查 |
| 58 | +- 5个并行 Sonnet 代理 |
| 59 | +- CLAUDE.md 规范合规性 |
19 | 60 | - Bug 检测与历史上下文分析 |
20 | | -- 信心分数过滤误判 |
21 | | -- 适合:需要全面深度审查时 |
22 | 61 |
|
23 | | -### 方案2:专业PR审查工具包 |
24 | | -``` |
| 62 | +**方案2:深度审查**(推荐用于重要功能) |
| 63 | +```bash |
25 | 64 | /pr-review-toolkit:review-pr |
26 | 65 | ``` |
27 | | -**功能:** |
28 | | -- 6个专业审查代理,包括: |
29 | | - - 代码注释准确性分析 |
30 | | - - 测试覆盖质量审查 |
31 | | - - 错误处理检查(静默失败检测) |
32 | | - - 类型设计质量分析 |
33 | | - - 通用代码质量审查 |
34 | | - - 代码简化优化建议 |
35 | | -- 适合:需要多角度专业建议时 |
36 | | - |
37 | | -**审查维度对比:** |
38 | | - |
39 | | -| 审查内容 | code-review | pr-review-toolkit | |
40 | | -|---------|-------------|-------------------| |
41 | | -| CLAUDE.md 合规 | ✅ | ✅ | |
42 | | -| Bug 检测 | ✅ | ✅ | |
43 | | -| 测试覆盖 | ⚠️ | ✅ 专业代理 | |
44 | | -| 错误处理 | ⚠️ | ✅ 静默失败检测 | |
45 | | -| 注释质量 | ⚠️ | ✅ 专业代理 | |
46 | | -| 类型设计 | ⚠️ | ✅ 专业代理 | |
47 | | -| 代码简化 | ⚠️ | ✅ 专业代理 | |
48 | | - |
49 | | -**使用建议:** |
50 | | -- 日常PR审查:使用 `/code-review:code-review` |
51 | | -- 重要功能/复杂PR:使用 `/pr-review-toolkit:review-pr` |
52 | | -- 快速检查:直接询问 Claude 具体问题 |
| 66 | +- 6个专业审查代理 |
| 67 | +- 代码注释准确性、测试覆盖、错误处理、类型设计等多维度审查 |
| 68 | + |
| 69 | +### 5. 输出审查报告 |
| 70 | + |
| 71 | +创建 `.ai-workspace/context/{task-id}/review.md`,必须包含以下章节: |
| 72 | + |
| 73 | +```markdown |
| 74 | +# 代码审查报告 |
| 75 | + |
| 76 | +## 审查概要 |
| 77 | + |
| 78 | +- **审查者**: {审查者} |
| 79 | +- **审查时间**: {时间} |
| 80 | +- **审查范围**: {文件数量和主要模块} |
| 81 | +- **总体评价**: {通过/需要修改/不通过} |
| 82 | + |
| 83 | +## 审查发现 |
| 84 | + |
| 85 | +### 🔴 必须修复(Blocker) |
| 86 | + |
| 87 | +#### 1. {问题标题} |
| 88 | +**文件**: `{file-path}:{line-number}` |
| 89 | +**问题描述**: {详细描述} |
| 90 | +**修复建议**: {具体建议} |
| 91 | +**严重程度**: 高 |
| 92 | + |
| 93 | +### 🟡 建议修改(Major) |
| 94 | + |
| 95 | +#### 1. {问题标题} |
| 96 | +**文件**: `{file-path}:{line-number}` |
| 97 | +**问题描述**: {详细描述} |
| 98 | +**修复建议**: {具体建议} |
| 99 | +**严重程度**: 中 |
| 100 | + |
| 101 | +### 🟢 优化建议(Minor) |
| 102 | + |
| 103 | +#### 1. {优化点} |
| 104 | +**文件**: `{file-path}:{line-number}` |
| 105 | +**建议**: {优化建议} |
| 106 | + |
| 107 | +## 优点与亮点 |
| 108 | + |
| 109 | +- {做得好的地方1} |
| 110 | +- {做得好的地方2} |
| 111 | + |
| 112 | +## 规范检查 |
| 113 | + |
| 114 | +### CLAUDE.md 合规性 |
| 115 | +- [ ] 编码规范 |
| 116 | +- [ ] 命名规范 |
| 117 | +- [ ] 注释规范 |
| 118 | +- [ ] 测试规范 |
| 119 | + |
| 120 | +### 代码质量指标 |
| 121 | +- 圈复杂度: {评估} |
| 122 | +- 代码重复: {评估} |
| 123 | +- 测试覆盖率: {百分比} |
| 124 | + |
| 125 | +## 测试审查 |
| 126 | + |
| 127 | +### 测试覆盖 |
| 128 | +- 单元测试: {评价} |
| 129 | +- 边界情况: {是否覆盖} |
| 130 | +- 异常情况: {是否覆盖} |
| 131 | + |
| 132 | +### 测试质量 |
| 133 | +- 测试命名: {评价} |
| 134 | +- 断言充分性: {评价} |
| 135 | +- 测试独立性: {评价} |
| 136 | + |
| 137 | +## 安全审查 |
| 138 | + |
| 139 | +- SQL 注入风险: {检查结果} |
| 140 | +- XSS 风险: {检查结果} |
| 141 | +- 权限控制: {检查结果} |
| 142 | +- 敏感信息泄露: {检查结果} |
| 143 | + |
| 144 | +## 性能审查 |
| 145 | + |
| 146 | +- 算法复杂度: {评估} |
| 147 | +- 数据库查询: {优化建议} |
| 148 | +- 资源释放: {检查结果} |
| 149 | + |
| 150 | +## 与方案的一致性 |
| 151 | + |
| 152 | +- [ ] 实现符合技术方案 |
| 153 | +- [ ] 未偏离设计意图 |
| 154 | +- [ ] 无计划外功能 |
| 155 | + |
| 156 | +## 总结与建议 |
| 157 | + |
| 158 | +### 是否批准 |
| 159 | +- [ ] ✅ 批准合并(无阻塞问题) |
| 160 | +- [ ] ⚠️ 修改后批准(有建议修改项) |
| 161 | +- [ ] ❌ 需要重大修改(有阻塞问题) |
| 162 | + |
| 163 | +### 下一步行动 |
| 164 | +{根据审查结果给出下一步建议} |
| 165 | +``` |
| 166 | + |
| 167 | +### 6. 更新任务状态 |
| 168 | + |
| 169 | +更新 `.ai-workspace/tasks/active/{task-id}.md`: |
| 170 | +- `current_step`: code-review |
| 171 | +- `assigned_to`: {审查者} |
| 172 | +- `updated_at`: {当前时间} |
| 173 | +- 标记 review.md 为已完成 |
| 174 | +- 在工作流进度中标记代码审查为完成 |
| 175 | + |
| 176 | +### 7. 告知用户 |
| 177 | + |
| 178 | +输出格式: |
| 179 | +``` |
| 180 | +✅ 任务 {task-id} 代码审查完成 |
| 181 | + |
| 182 | +**审查结果**: |
| 183 | +- 必须修复: {数量} 项 |
| 184 | +- 建议修改: {数量} 项 |
| 185 | +- 优化建议: {数量} 项 |
| 186 | +- 总体评价: {评价} |
| 187 | + |
| 188 | +**输出文件**: |
| 189 | +- 审查报告: .ai-workspace/context/{task-id}/review.md |
| 190 | + |
| 191 | +**下一步**: |
| 192 | +{根据审查结果给出建议} |
| 193 | + |
| 194 | +例如: |
| 195 | +- 如果无阻塞问题:使用 /commit 提交代码 |
| 196 | +- 如果有需要修改项:修复问题后重新审查 |
| 197 | +- 如果需要重大修改:回到 /implement 重新实施 |
| 198 | +``` |
| 199 | + |
| 200 | +## 参数说明 |
| 201 | + |
| 202 | +- `<task-id>`: 任务ID,格式为 TASK-{yyyyMMdd-HHmmss}(必需) |
| 203 | +- `--pr-number`: 可选,如果已创建 PR,提供 PR 编号可以调用插件进行更深度审查 |
| 204 | + |
| 205 | +## 使用示例 |
| 206 | + |
| 207 | +### 示例1:基础代码审查 |
| 208 | + |
| 209 | +```bash |
| 210 | +# 在完成代码实施后,对任务进行审查 |
| 211 | +/review TASK-20251227-104654 |
| 212 | +``` |
| 213 | + |
| 214 | +**预期输出**: |
| 215 | +``` |
| 216 | +✅ 任务 TASK-20251227-104654 代码审查完成 |
| 217 | + |
| 218 | +**审查结果**: |
| 219 | +- 必须修复: 2 项 |
| 220 | +- 建议修改: 3 项 |
| 221 | +- 优化建议: 5 项 |
| 222 | +- 总体评价: 需要修改 |
| 223 | + |
| 224 | +**输出文件**: |
| 225 | +- 审查报告: .ai-workspace/context/TASK-20251227-104654/review.md |
| 226 | + |
| 227 | +**下一步**: |
| 228 | +发现 2 个必须修复的问题,请修复后重新审查 |
| 229 | +``` |
| 230 | + |
| 231 | +### 示例2:结合 PR 进行深度审查 |
| 232 | + |
| 233 | +```bash |
| 234 | +# 如果已创建 PR,可以调用专业审查工具 |
| 235 | +/review TASK-20251227-104654 --pr-number 123 |
| 236 | +``` |
| 237 | + |
| 238 | +这会在基础审查后,额外调用 `/pr-review-toolkit:review-pr` 进行多维度深度审查。 |
| 239 | + |
| 240 | +### 示例3:完整工作流 |
| 241 | + |
| 242 | +```bash |
| 243 | +# 1. 分析 Issue |
| 244 | +/analyze-issue 207 |
| 245 | + |
| 246 | +# 2. 设计技术方案 |
| 247 | +/plan TASK-20251227-104654 |
| 248 | + |
| 249 | +# 3. 实施功能 |
| 250 | +/implement TASK-20251227-104654 |
| 251 | + |
| 252 | +# 4. 代码审查 ← 当前步骤 |
| 253 | +/review TASK-20251227-104654 |
| 254 | + |
| 255 | +# 5. 如果审查通过,提交代码 |
| 256 | +/commit |
| 257 | + |
| 258 | +# 6. 创建 Pull Request |
| 259 | +/pr |
| 260 | +``` |
| 261 | + |
| 262 | +## 注意事项 |
| 263 | + |
| 264 | +1. **前置条件**: |
| 265 | + - 必须先完成代码实现(implementation.md 存在) |
| 266 | + - 建议运行测试确保功能正常 |
| 267 | + |
| 268 | +2. **审查标准**: |
| 269 | + - 严格遵循 CLAUDE.md 中的编码规范 |
| 270 | + - 重点关注安全性和性能问题 |
| 271 | + - 确保测试覆盖充分 |
| 272 | + |
| 273 | +3. **审查深度**: |
| 274 | + - 日常功能:基础审查即可 |
| 275 | + - 重要功能:建议使用 `--pr-number` 调用专业审查工具 |
| 276 | + |
| 277 | +4. **客观公正**: |
| 278 | + - 既要指出问题,也要认可优点 |
| 279 | + - 提供具体的改进建议 |
| 280 | + - 区分严重程度 |
| 281 | + |
| 282 | +## 相关命令 |
| 283 | + |
| 284 | +- `/implement <task-id>` - 实施任务(前置步骤) |
| 285 | +- `/commit` - 提交代码(后续步骤) |
| 286 | +- `/code-review:code-review <pr-number>` - 深度 PR 审查 |
| 287 | +- `/pr-review-toolkit:review-pr` - 专业多维度审查 |
| 288 | + |
| 289 | +## 错误处理 |
| 290 | + |
| 291 | +- 任务不存在:提示 "任务 {task-id} 不存在" |
| 292 | +- 缺少实现报告:提示 "实现报告不存在,请先执行 /implement" |
| 293 | +- PR 不存在:提示 "PR #{number} 不存在,请检查 PR 编号" |
0 commit comments