关于 review-code
review-code 引导 AI Agent 检查分支变更,执行安全与无障碍审查,并汇总评审意见及获准的修复。流程设有用户确认点,并在创建或提交拉取请求前停止。
主要功能
- 01分析分支变更
- 02格式与 lint 检查
- 03安全和无障碍审计
- 04多角色评审委员会
- 05用户确认与修复流程
适用场景
- 01拉取请求前审查代码
- 02检查前端或后端变更
- 03提交前应用获准的评审修复
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ andrewvaughan/ agent-council --skill review-code安装后在 Claude Code 中输入/review-code确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/backend-specialist.mddevx-engineer.mdfrontend-specialist.mdqa-lead.mdsecurity-engineer.mdcouncils/review-council.md详细介绍
代码审查工作流
对当前分支的变更进行全面的多视角代码审查。此技能会启动 Review Council,并整合自动化安全扫描,在问题进入拉取请求前将其找出。
注意
范围边界:此技能会审查代码并提交修复。它不会创建拉取请求、推送到远程仓库或合并任何内容。审查完成后,请停止并建议用户接下来运行
/submit-pr。不要继续创建拉取请求——那是/submit-pr的工作。
警告
检查点协议。 当此工作流到达
### CHECKPOINT时,必须主动询问用户如何决策——不要只是展示信息后继续。使用 Agent 的交互式提示机制(例如 Claude Code 中的AskUserQuestion),要求用户明确回复后再继续。这样可以避免将排队中或处理中尚未送达的消息误认为是批准。如果 Agent 不支持交互式提示,请输出检查点内容并停止所有工作,直到用户明确回复。
第 1 步:分析当前变更
找出当前分支上的所有变更:
- 运行
git diff origin/main...HEAD,查看相对于 main 的所有变更 - 运行
git diff和git diff --cached,检查所有未提交的工作 - 运行
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 步:应用修复
对于用户批准修复的每一项:
- 应用修复
- 重新运行相关检查(lint、测试、类型检查或安全扫描)以验证修复
- 暂存更改
如果用户要求跳过某些发现,请将其记录为第 9 步的延期事项。
检查点:向用户展示已应用的修复。确认所有更改看起来都正确后再提交。
第 8 步:提交
如果用户批准:
- 暂存所有更改
- 使用合适的 Conventional Commit 提交消息提交(例如:
fix(security): address SAST findings或refactor: address code review feedback)
第 9 步:跟踪延期工作
如果有任何审核发现被延期(本轮未修复),请记录下来,以免遗漏。
检查延期事项
查看以下来源中的延期工作:
- 跳过的发现:用户选择不处理的审核报告事项
- 低优先级建议:未修复且归类为低优先级/信息的事项
- 评审团建议:评审团成员提出但不在此 PR 范围内的改进建议
记录延期工作
针对每项延期事项,在项目的问题跟踪系统中创建一个跟踪问题,说明发现描述、延期原因的背景信息,以及后续需要采取的行动。
提示
并非每次审核都会产生延期工作。如果所有发现都已处理或接受,则完全跳过此步骤。不要为了创建后续问题而凭空制造问题。
第 10 步:交接 — 到此为止
注意
**此技能的工作已完成。**不要继续创建拉取请求、推送到远程或合并任何内容。这些属于独立技能,有各自的工作流和检查点。
建议下一步,然后停止:
- 如果已准备好创建 PR:“运行
/submit-pr创建拉取请求” - 如果还需要更多工作:“继续实现,然后在准备就绪时再次运行
/review-code”
不要推送分支、创建 PR,也不要在此技能中调用 /submit-pr。