关于 pr-review-expert
pr-review-expert 是面向 GitHub PR 和 GitLab MR 的结构化代码审查技能,帮助审查者评估影响范围、安全性、兼容性、测试与性能,并按优先级整理发现。
主要功能
- 01分析变更影响范围
- 02检查差异中的安全问题
- 03检测不兼容变更
- 04分析测试覆盖情况
- 05评估性能风险
- 06生成分级审查报告
适用场景
- 01审查共享库或 API 变更
- 02评估安全敏感代码变更
- 03系统检查大型拉取请求
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ borghei/ claude-skills --skill pr-review-expert安装后在 Claude Code 中输入/pr-review-expert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/best-practices-and-troubleshooting.mdreview-workflow-commands.mdwriteup-format-and-checklist.mdscripts/blast_radius_calculator.pydiff_analyzer.pyreview_checklist_generator.py详细介绍
PR 审查专家
为 GitHub PR 和 GitLab MR 提供结构化、系统化的代码审查。审查范围不止于风格细节,还包括影响范围分析、安全漏洞扫描、破坏性变更检测、测试覆盖率差异计算和性能影响评估。生成可供审查者直接使用的报告,并按必须修复、应该修复和建议分类,列出优先级明确的问题。
关键词: PR 审查、代码审查、拉取请求、合并请求、影响范围、安全扫描、破坏性变更、测试覆盖率、审查清单、代码质量
核心能力
- 影响范围分析 — 追踪差异可能导致哪些文件、服务和下游使用者出问题;按 CRITICAL/HIGH/MEDIUM/LOW 量化严重程度。
- 安全扫描 — 检测差异中的 SQL 注入、XSS 攻击向量、硬编码密钥、身份验证绕过、不安全的加密、路径遍历和原型污染。
- 破坏性变更检测 — 标记 API 删除或重命名、响应架构和必填字段变更、数据库列删除、环境变量变更以及 TS 接口编辑。
- 测试覆盖率分析 — 新代码与新测试的比例、新增公共函数的缺失测试、没有对应代码删除的测试删除,以及覆盖率差异。
- 性能评估 — N+1 查询模式、包体积回归、无界查询和缺失索引。
- 可供审查者直接使用的输出 — 按优先级列出必须修复 / 应该修复 / 建议项的报告、35 项检查清单,以及统一的评论标签。
适用场景
- 合并任何涉及共享库、API 或数据库架构的 PR 之前。
- PR 较大(变更超过 200 行),需要结构化审查时。
- 审查涉及安全敏感代码路径的 PR(身份验证、支付、个人身份信息处理)。
- 发生事故后,主动审查类似代码变更。
- 为新贡献者提供支持,全面审查其 PR 并反馈。
首先澄清
审查前,先确认以下输入。如果有输入缺失或含糊不清,且会影响审查结果,请先询问;如果不会影响,则采用合理的默认值,并说明所用默认值。
- PR 和基分支: 影响范围和覆盖率差异均以基分支为准;如果基分支已过时,报告中会包含不属于该 PR 的变更。
- 变更目的:(关联的工单或一句话说明意图)——缺少此信息时,预期的行为变更可能会被误报为缺陷。
- 审查深度: 进行全面的影响范围和安全审查,还是快速检查小规模变更——这决定执行哪些工作流步骤。
针对本次请求,询问最重要的两到三项输入。如果用户说“直接审查”,就继续审查,并在报告开头说明你的假设。
工具
| 工具 | 用途 | 命令 |
|---|---|---|
blast_radius_calculator.py | 根据已更改文件的导入链 / 依赖树,计算 PR 的影响范围 | git diff --name-only main...HEAD | python scripts/blast_radius_calculator.py --root src |
diff_analyzer.py | 分析差异中的风险指标(大文件、敏感路径、配置 / 破坏性变更 / 安全模式) | gh pr diff $PR | python scripts/diff_analyzer.py --json |
review_checklist_generator.py | 根据已更改文件的类型 / 模式生成定制审查清单 | git diff --name-only main...HEAD | python scripts/review_checklist_generator.py |
反模式
审查风格,而不是实质内容
错误做法: 大多数评论都在讨论命名和格式。
原因: 首次阅读时,风格问题一目了然;逻辑和安全问题则需要结合上下文判断。
建议做法: 将格式问题交给代码检查工具处理。审查时关注影响范围、安全性、正确性和错误处理路径,并为每条评论标注 must:、nit: 或 question:。
根据差异大小判断风险
错误做法: 一个对共享工具的五行修改,因为只有五行就获得批准。
原因: 屏幕上唯一可见的风险指标就是差异大小。
建议做法: 对已更改的文件运行 blast_radius_calculator.py。共享模块中的微小修改也可能导致所有导入它的服务出问题。
批准未经测试的成功路径
错误: PR 只测试了成功情况。 原因: 测试通过了,覆盖率数字看起来也不错。 改进做法: 确认错误路径和边界情况都有测试,并指出任何没有测试的新公共函数。
更多常见问题和故障排查表:references/best-practices-and-troubleshooting.md。
参考资料
根据任务加载相应的参考资料——保持此文件精简,按需获取详细信息:
- references/review-workflow-commands.md — 包含确切
gh/grep命令目录的 6 步审查工作流,用于收集上下文、分析影响范围、安全扫描、检测破坏性变更、评估覆盖率变化和性能影响(另含影响范围严重性表和覆盖率规则)。实际执行审查时阅读。 - references/writeup-format-and-checklist.md — 审查报告模板及示例、完整的 35 项审查清单,以及评论标签分类。撰写审查结果时阅读。
- references/best-practices-and-troubleshooting.md — 常见审查误区、最佳实践习惯、故障排查表和成功标准。审查前后阅读,以进行质量控制。
范围与限制
此技能涵盖:
- 使用包含 35 项以上内容的清单,对 GitHub PR 和 GitLab MR 进行结构化审查
- 分析单体仓库和多服务架构的影响范围
- 对差异进行静态安全扫描,查找常见漏洞模式(SQLi、XSS、机密信息、身份验证绕过)
- 检测 API、数据库架构、TypeScript 接口和环境变量的破坏性变更
此技能不涵盖:
- 自动修复代码或重构——代码生成请使用
engineering/saas-scaffolder或engineering/migration-architect - 运行时安全分析、SAST/DAST 工具编排或 CVE 数据库查询——依赖项级漏洞扫描请使用
engineering/dependency-auditor - CI/CD 流水线配置或构建失败排查——流水线设计请使用
engineering/ci-cd-pipeline-builder - 性能基准测试或负载测试——性能分析和优化指导请使用
engineering/performance-profiler
集成点
| Skill | 集成方式 | 数据流 |
|---|---|---|
engineering/dependency-auditor | 在审查添加或升级软件包的 PR 前运行依赖项审计 | 审计报告会纳入审查报告的安全部分 |
engineering/ci-cd-pipeline-builder | 将审查清单门槛嵌入 CI 流水线,作为自动化 PR 检查 | 清单条目会成为流水线中的通过/失败信号 |
engineering/performance-profiler | 将 N+1 和无界查询问题升级,以进行详细的性能分析 | 审查中标记的代码路径会成为性能分析目标 |
engineering/migration-architect | 验证包含架构变更的 PR 中数据库迁移的安全性 | 迁移风险评估会补充破坏性变更部分 |
engineering/release-manager | 将破坏性变更检测结果纳入发行说明和变更日志 | 检测到的破坏性变更会自动填入发行文档 |
engineering/api-design-reviewer | 对照 API 设计规范交叉检查 API 端点变更 | API 审查结果会并入影响范围和破坏性变更部分 |