---
name: pr-review
description: 自动审查 PR, 检查代码质量、风格和潜在问题, 支持增量审查。
---

# pr-review

审查 PR 的代码质量、风格、安全性和性能。

> 遵循 `github-comment` 规范。

## 前置检查

以下情况**跳过审查**：

- PR 已关闭或是 draft
- 明显不需要审查（自动化 PR、trivial 改动）

## 增量审查机制

PR 可能有多次提交，需要支持增量审查：

1. **检查历史评论**: `gh pr view --comments` 查找自己之前的评论
2. **提取上次审查的 commit SHA**: 从评论中的 `审查截止: {sha}` 获取
3. **计算增量 diff**: `git diff {last_sha}..HEAD`
4. **只审查增量**: 新增的改动，不重复审查已审查过的代码

**评论中必须记录审查截止点**，格式：

```
审查截止: abc1234def5678
```

## 高信号问题 (只标记这些)

- **编译/解析错误**: 语法错误、类型错误、缺少 import、未定义引用
- **明确逻辑错误**: 无论输入如何都会产生错误结果
- **明确规范违反**: 能引用被违反的具体规则
- 代码风格或质量问题

## 不标记清单 (误报来源)

- 预存问题（改动前就存在的）
- 依赖特定输入/状态的潜在问题
- 主观建议或改进
- Linter 能捕获的问题

**不确定就不标记。误报会消耗信任。**

## 特殊规则

- **Submodule**: 注意 submodule 变更，结合上下文审查
- **验证机制**: 标记问题前先验证其确实存在于代码中

## 模板

```markdown
## 🔍 PR 审查

| 项目 | 结果 |
|------|------|
| **结论** | ✅ APPROVE / ⚠️ REQUEST_CHANGES / 💬 COMMENT |
| **审查截止** | `{commit_sha}` |

{一句话总结}

<details>
<summary><h3>🔴 阻塞问题 (N)</h3></summary>

- **文件**: `{path}` [代码链接]({github_link})
- **问题**: {描述}
- **建议**: {修复方式}

</details>

<details>
<summary><h3>🟠 重要建议 (N)</h3></summary>

- **文件**: `{path}`
- **问题**: {描述}
- **建议**: {改进方式}

</details>

<details>
<summary><h3>🟢 小问题 (N)</h3></summary>

- **文件**: `{path}`
- **问题**: {风格或小建议}

</details>
```

无问题时输出：

```markdown
## 🔍 PR 审查

| 项目 | 结果 |
|------|------|
| **结论** | ✅ APPROVE |
| **审查截止** | `{commit_sha}` |

代码良好，无问题。已检查 bug 和代码规范。
```

增量审查时输出：

```markdown
## 🔍 PR 增量审查

| 项目 | 结果 |
|------|------|
| **结论** | ✅ APPROVE / ⚠️ REQUEST_CHANGES / 💬 COMMENT |
| **审查范围** | `{last_sha}..{current_sha}` |

{针对增量改动的总结}

{如有问题，使用上述折叠格式}
```
