mcpField
R
review-code

review-code

github.com/andrewvaughan测试与质量15103 次安装35 周前更新
代码仓库

关于 review-code

review-code 引导 AI Agent 检查分支变更,执行安全与无障碍审查,并汇总评审意见及获准的修复。流程设有用户确认点,并在创建或提交拉取请求前停止。

主要功能

  1. 01分析分支变更
  2. 02格式与 lint 检查
  3. 03安全和无障碍审计
  4. 04多角色评审委员会
  5. 05用户确认与修复流程

适用场景

  1. 01拉取请求前审查代码
  2. 02检查前端或后端变更
  3. 03提交前应用获准的评审修复

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/andrewvaughan/agent-council --skill review-code

安装后在 Claude Code 中输入/review-code确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
backend-specialist.md
devx-engineer.md
frontend-specialist.md
qa-lead.md
security-engineer.md
councils/
review-council.md

详细介绍

代码审查工作流

对当前分支的变更进行全面的多视角代码审查。此技能会启动 Review Council,并整合自动化安全扫描,在问题进入拉取请求前将其找出。

注意

范围边界:此技能会审查代码并提交修复。它不会创建拉取请求、推送到远程仓库或合并任何内容。审查完成后,请停止并建议用户接下来运行 /submit-pr。不要继续创建拉取请求——那是 /submit-pr 的工作。

警告

检查点协议。 当此工作流到达 ### CHECKPOINT 时,必须主动询问用户如何决策——不要只是展示信息后继续。使用 Agent 的交互式提示机制(例如 Claude Code 中的 AskUserQuestion),要求用户明确回复后再继续。这样可以避免将排队中或处理中尚未送达的消息误认为是批准。如果 Agent 不支持交互式提示,请输出检查点内容并停止所有工作,直到用户明确回复。

第 1 步:分析当前变更

找出当前分支上的所有变更:

  1. 运行 git diff origin/main...HEAD,查看相对于 main 的所有变更
  2. 运行 git diff 和 git diff --cached,检查所有未提交的工作
  3. 运行 git status,查看已修改、新增和已删除的文件

根据项目的目录结构,按层对变更文件分类:

  • 前端:UI 组件、页面、样式、客户端逻辑
  • 后端:API 路由、服务、业务逻辑、服务端代码
  • 数据库:架构文件、迁移文件、种子数据
  • 配置:配置文件、CI/CD、容器定义、环境文件
  • 文档:Markdown 文件、文档目录
  • 测试:测试文件(.test.*、.spec.*)

向用户按类别汇总变更文件。

第 2 步:运行格式检查和 lint 检查

在 Review Council 审查前,运行项目的格式检查和 lint 命令,尽早发现机械性问题。常见示例:

# Adapt to your project's toolchain
format:check    # Prettier, Black, gofmt, etc.
lint            # ESLint, Ruff, golangci-lint, etc.

如果格式检查失败,请立即对报告中的文件运行自动格式化工具并暂存变更。不要将格式问题纳入 Review Council 审查——直接修复即可。

第 3 步:运行自动化安全扫描

对所有变更文件执行静态应用安全测试(SAST)。检查以下内容:

SAST 扫描清单
  • 所有数据库查询是否都使用了参数化查询?(SQL/NoSQL 注入)
  • 渲染前是否对用户输入进行了清理?(XSS——反射型、存储型、基于 DOM)
  • 状态变更端点是否受到 CSRF 防护?
  • 是否存在硬编码的密钥、API 密钥、密码或连接字符串?
  • 身份验证流程是否遵循安全模式?(不存在绕过身份验证的路径)
  • 错误消息是否泄露内部细节?(堆栈跟踪、数据库结构)
  • 依赖项是否不存在已知 CVE?
  • 文件上传是否经过验证并受到限制?
  • 所有受保护端点是否都进行了授权检查?

如果变更了后端文件,还要执行加固审查:

  • 是否对所有面向用户的输入进行了全面验证?
  • 是否存在正确的身份验证和授权检查?
  • 错误响应是否安全?(未泄露内部细节)
  • 密钥是否安全地进行管理?(使用环境变量、密钥库,而非硬编码)
  • 是否配置了安全标头?(CSP、HSTS、X-Frame-Options)
  • 公共端点是否配置了速率限制?

收集所有发现,并标注严重性级别(严重、高、中、低、信息)。

Claude Code 优化:如果有 /security-scanning:security-sast 和 /security-scanning:security-hardening 技能,请使用它们增强自动化扫描。否则,请遵循上述手动检查清单。

Step 4:运行无障碍审计(如果修改了前端)

如果变更集中包含任何前端文件(UI 组件、CSS、HTML 模板),请检查修改后组件是否符合 WCAG:

无障碍检查清单
  • 文本和交互元素是否达到色彩对比度要求?(普通文本为 4.5:1,大号文本为 3:1)
  • 是否可以仅使用键盘访问和操作所有交互元素?
  • 是否正确使用了 ARIA 属性?(角色、标签、实时区域)
  • 动态内容变更时是否妥善管理焦点?(模态框、路由切换)
  • 是否使用了语义化 HTML?(<button> 而不是 <div onClick>、<nav>、<main>、<article>)
  • 图片和图标是否设置了无障碍名称?(alt 文本、aria-label)
  • 表单输入是否关联了标签?
  • 屏幕阅读器线性朗读页面时,内容是否易于理解?

Claude Code 优化:如果可使用 /ui-design:accessibility-audit 技能,请使用它增强自动化 WCAG 合规性检查。否则,请遵循上述手动检查清单。

Step 5:启动评审委员会

从技能的 councils/review-council.md 中读取评审委员会模板,并进行完整的委员会评审。对于每位委员会成员,请从技能的 agents/ 目录读取其 Agent 定义,并根据指定的复杂度级别调整评审深度。

安全工程师(负责人)
  • 检查 Step 3 中的所有 SAST 结果
  • 检查变更代码中是否存在 OWASP Top 10 漏洞
  • 验证任何新增端点或表单的输入清理
  • 检查机密管理(不得硬编码凭据、API 密钥、令牌)
  • 验证身份验证和授权逻辑
  • 投票:批准 / 有疑虑 / 阻止
  • 发现项:列出每个问题及其严重程度和文件位置
  • 建议:针对每项发现提出具体修复方案
QA 负责人
  • 评估变更文件的测试覆盖率
  • 检查新功能是否有相应测试
  • 找出尚未测试的边界情况和极端条件
  • 验证是否测试了错误场景
  • 检查测试覆盖率是否达到 >80% 的目标
  • 投票:批准 / 有疑虑 / 阻止
  • 发现项:缺失的测试、覆盖率缺口、未经测试的场景
  • 建议:需要添加的具体测试
DevX 工程师
  • 检查面向用户的变更是否已更新文档
  • 评审代码可读性和复杂逻辑的清晰度
  • 验证 README/文档是否反映了任何新增功能或变更
  • 检查公共 API 是否有恰当的文档注释
  • 投票:批准 / 有疑虑 / 阻止
  • 发现项:文档缺口、不清晰的代码部分
  • 建议:改进文档和清晰度的建议
领域专家

根据变更文件选择合适的专家:

  • 如果修改了前端文件,则选择前端专家
  • 如果修改了后端文件,则选择后端专家
  • 如果变更涉及前端和后端,则选择两者

评审领域特定的最佳实践:

  • 组件模式、状态管理、渲染性能(前端)
  • 框架模式、服务架构、API 设计(后端)
  • 模式设计、查询优化、迁移安全性(数据库)
  • 投票:批准 / 有疑虑 / 阻止
  • 发现项:模式违规、反模式、性能问题
  • 建议:具体改进措施

Step 6:提交汇总评审报告

按严重程度组织并提交完整的评审报告:

严重 / 阻止合并的问题

合并前必须修复的问题(任何“阻止”投票或严重 SAST 发现)。

高优先级问题

强烈建议修复的问题(高严重性 SAST 发现、涉及安全问题的“有疑虑”投票)。

中优先级问题

值得修复但不会阻止合并的问题(中等严重性 SAST 发现、代码质量问题)。

低优先级问题 / 建议

有则更好的改进(低严重性发现、风格建议、小型文档缺口)。

审核决定摘要
  • 总体状态:已批准 / 需要修改 / 已阻止
  • 评审团投票:各成员投票的摘要
  • 行动项:按优先级排列的待修复事项
检查点:向用户展示所有发现。询问他们现在想处理哪些事项。等待指示后再继续。

第 7 步:应用修复

对于用户批准修复的每一项:

  1. 应用修复
  2. 重新运行相关检查(lint、测试、类型检查或安全扫描)以验证修复
  3. 暂存更改

如果用户要求跳过某些发现,请将其记录为第 9 步的延期事项。

检查点:向用户展示已应用的修复。确认所有更改看起来都正确后再提交。

第 8 步:提交

如果用户批准:

  1. 暂存所有更改
  2. 使用合适的 Conventional Commit 提交消息提交(例如:fix(security): address SAST findings 或 refactor: address code review feedback)

第 9 步:跟踪延期工作

如果有任何审核发现被延期(本轮未修复),请记录下来,以免遗漏。

检查延期事项

查看以下来源中的延期工作:

  1. 跳过的发现:用户选择不处理的审核报告事项
  2. 低优先级建议:未修复且归类为低优先级/信息的事项
  3. 评审团建议:评审团成员提出但不在此 PR 范围内的改进建议
记录延期工作

针对每项延期事项,在项目的问题跟踪系统中创建一个跟踪问题,说明发现描述、延期原因的背景信息,以及后续需要采取的行动。

提示

并非每次审核都会产生延期工作。如果所有发现都已处理或接受,则完全跳过此步骤。不要为了创建后续问题而凭空制造问题。

第 10 步:交接 — 到此为止

注意

**此技能的工作已完成。**不要继续创建拉取请求、推送到远程或合并任何内容。这些属于独立技能,有各自的工作流和检查点。

建议下一步,然后停止:

  • 如果已准备好创建 PR:“运行 /submit-pr 创建拉取请求”
  • 如果还需要更多工作:“继续实现,然后在准备就绪时再次运行 /review-code”

不要推送分支、创建 PR,也不要在此技能中调用 /submit-pr。

评论

支持 Markdown