claude-howto 中的 PR Review 插件:一条命令跑完安全、测试与性能审查的完整 PR 审查工作流
【免费下载链接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto
本文基于 claude-howto 仓库的日文教程 ja/07-plugins/pr-review/README.md 展开。你将了解如何安装和配置 Claude Code 的pr-review插件,掌握/review-pr、/check-security、/check-tests三个斜杠命令的用法,并深入三个子代理(security-reviewer、test-checker、performance-analyzer)的职责边界、GitHub MCP 服务器配置与 pre-review 前置校验钩子的源码实现,最终获得一套可复制、可落地的自动化 PR 审查方案。
一、插件定位与核心能力
pr-review是 claude-howto 仓库中给出的一个 Claude Code 插件模板,目标是把“完整 PR 审查工作流”沉淀为一条命令:覆盖安全、测试与文档检查。原文明确列出它包含的五项能力:
- 安全分析(セキュリティ解析)
- 测试覆盖率检查(テストカバレッジのチェック)
- 文档验证(ドキュメントの検証)
- 代码质量评估(コード品質の評価)
- 性能影响分析(パフォーマンス影響の解析)
这套设计的核心思路是“一条主命令 + 多个专职子代理”:主命令负责编排与汇总,各子代理在受限工具集内完成单一维度的审查,最后由主对话合成综合报告。这种分工既让每一步的提示词更聚焦,也便于单独调用某一维度做复查。
二、安装与前置条件
2.1 安装命令
在 Claude Code 中执行插件安装命令即可:
/plugin install pr-review2.2 必要前提
原文“必要要件”一节列出三项前置条件,这也是理解该插件边界的关键:
| 前提 | 说明 |
|---|---|
| Claude Code 2.1+ | 插件机制(插件市场、子代理、MCP 联动)依赖较新的 Claude Code 版本,日文版 README 中写作“1.0 以上”,英文源文档为 2.1+,以英文源文档为准 |
| GitHub 访问 | 插件通过 GitHub MCP 拉取 PR 数据,需要有效的仓库访问权限 |
| Git 仓库 | pre-review 钩子会先校验当前目录是否为 Git 仓库 |
2.3 GitHub Token 配置
插件从环境变量读取 GitHub 凭证:
export GITHUB_TOKEN="your_github_token"该变量随后被注入到 MCP 服务器的启动环境中(见下文 MCP 配置一节),是整个 PR 数据链路中唯一需要手工配置的部分。
三、插件构成:命令、子代理、MCP 与钩子
3.1 三个斜杠命令
插件提供三个入口命令,各自对应一个审查粒度:
| 命令 | 用途 | 对应文件 |
|---|---|---|
/review-pr | 全面 PR 审查(安全 + 测试 + 文档 + 质量 + 性能) | ja/07-plugins/pr-review/commands/review-pr.md |
/check-security | 仅做安全维度审查 | ja/07-plugins/pr-review/commands/check-security.md |
/check-tests | 仅做测试覆盖率分析 | ja/07-plugins/pr-review/commands/check-tests.md |
每个命令文件使用 YAML frontmatter 声明name与description,正文则给出审查清单。以/review-pr为例,它会启动包含以下五个环节的完整审查:
- 安全分析
- 测试覆盖率验证
- 文档更新检查
- 代码质量检查
- 性能影响评估
/check-security的安全审查清单具体化为五个检查点:认证/授权检查、数据泄露风险、注入类漏洞、加密处理弱点、日志中的敏感信息;/check-tests的测试审查清单则是:覆盖率比例、未被测试覆盖的代码路径、测试质量评审、缺失用例建议、边界场景覆盖验证。
3.2 三个子代理及其工具白名单
插件的审查能力由三个子代理承担,每个代理都通过 frontmatter 的tools字段声明了最小化的工具白名单——三者均只开放Read、Grep、Bash这类只读/检索型工具,从结构上看这保证了子代理“只分析、不改代码”:
| 子代理 | 职责 | 工具 | 文件 |
|---|---|---|---|
security-reviewer | 安全漏洞检测:认证/授权问题、数据泄露、注入攻击、配置安全性 | Read, Grep, Bash | ja/07-plugins/pr-review/agents/security-reviewer.md |
test-checker | 测试覆盖率与质量分析:覆盖率比例、缺失用例、测试质量评估、边界场景识别 | Read, Bash, Grep | ja/07-plugins/pr-review/agents/test-checker.md |
performance-analyzer | 变更的性能影响评估:算法复杂度、数据库查询效率、内存占用、缓存利用空间 | Read, Grep, Bash | ja/07-plugins/pr-review/agents/performance-analyzer.md |
值得注意的是performance-analyzer的评估维度:它关注的是“变更引入的性能影响”而非绝对性能基准,包括算法计算量、数据库查询效率、内存使用和缓存利用余地——这正对应 PR 场景(diff 审查)而不是全量压测。
3.3 GitHub MCP 服务器
插件通过 MCP 获取 PR 数据。日文版插件目录未直接包含 MCP 配置文件,英文源目录中给出了完整配置 07-plugins/pr-review/mcp/github-config.json:
{ "mcpServers": { "github": { "command": "npx", "args": ["@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } } } }从这份配置可以看出三个要点:
- 使用官方
@modelcontextprotocol/server-github服务器,通过npx按需启动; GITHUB_TOKEN以${GITHUB_TOKEN}占位符注入,因此必须先在 shell 环境中导出该变量(见 2.3 节),否则 MCP 服务器启动后无法认证;- 只配置了
github一个服务器,职责单一:为审查流程提供 PR 元数据与 diff 数据。
3.4 pre-review 前置校验钩子
插件还附带一个pre-review.js钩子,在审查开始前执行前置校验。该文件位于英文源目录 07-plugins/pr-review/hooks/pre-review.js,其逻辑非常精简,值得逐段理解:
- 校验 Git 仓库:执行
git rev-parse --git-dir,若失败(非 Git 仓库)则打印❌ Not a git repository并以退出码 1 终止; - 检测未提交变更:执行
git status --porcelain,若输出非空则发出⚠️ Warning: Uncommitted changes detected警告——注意这只是警告而非阻断,审查仍会继续; - 通过校验:全部通过后打印
✅ Pre-review checks passed。
从源码结构看,这个钩子体现了一个实用原则:把“环境是否满足审查前提”这类机械检查交给确定性脚本,而不是依赖模型判断。失败路径(非 Git 仓库、无法读取 git 状态)都会以非零退出码终止,避免在无效环境中启动一次昂贵的多代理审查。
四、日常用法
三个命令的使用方式极为直接,在 Claude Code 会话中直接输入即可:
/review-pr # 全面 PR 审查(默认入口) /check-security # 只做安全审查 /check-tests # 只做测试覆盖率检查选择策略可以很简单:日常例行审查用/review-pr一次覆盖全部维度;当 CI 安全扫描报警而只想复核安全项时用/check-security;当测试覆盖率门槛不达标、需要定位缺口时用/check-tests。
五、完整工作流拆解
原文“ワークフロー例”一节给出了/review-pr端到端执行的七个步骤,这里结合插件结构逐条对应到具体组件:
User: /review-pr Claude: 1. Runs pre-review hook (validates git repo) 2. Fetches PR data via GitHub MCP 3. Delegates security review to security-reviewer subagent 4. Delegates testing to test-checker subagent 5. Delegates performance to performance-analyzer subagent 6. Synthesizes all findings 7. Provides comprehensive review report Result: ✅ Security: No critical issues found ⚠️ Testing: Coverage is 65%, recommend 80%+ ✅ Performance: No significant impact 📝 Recommendations: Add tests for edge cases各步骤与组件的对应关系:
- 步骤 1对应 pre-review.js:校验 Git 仓库并检查未提交变更;
- 步骤 2对应 github-config.json 声明的 GitHub MCP 服务器:拉取 PR 数据;
- 步骤 3~5分别委派给
security-reviewer、test-checker、performance-analyzer三个子代理并行/顺序执行各自维度; - 步骤 6~7由主对话汇总各代理发现,输出按“安全 / 测试 / 性能 / 建议”分区的综合报告。
示例结果展示了报告的典型形态:每个维度给出结论图标(通过/警告),并在“建议”区给出可执行项(如“补充边界场景测试”)。这也解释了为什么 README 中把“Recommendations”作为报告的一等公民——审查的产出不是“通过/不通过”的单一判定,而是一份按优先级组织的行动清单。
六、小结
pr-review插件模板展示了 Claude Code 插件的完整形态:斜杠命令定义入口,子代理以最小工具白名单承担单维度审查,MCP 服务器负责外部数据(GitHub PR 信息),钩子脚本负责确定性的前置校验。整个链路中唯一的手工配置是GITHUB_TOKEN环境变量。对于希望把代码审查标准化、并希望模型“只读分析、汇总建议而不直接改代码”的团队,这套“主命令编排 + 专职子代理 + 确定性钩子”的结构是一个可以直接参考的起点;各组件的完整模板见 ja/07-plugins/pr-review/ 与 07-plugins/pr-review/ 目录。
【免费下载链接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考