用途
code-review 是一款 AI 驱动的代码审查技能,用于对 PR 或本地改动进行较为全面的审查,定位为企业级 CodeRabbit 替代方案。它面向需要在提交前或合并前检查代码质量、安全性和潜在 Bug 的开发场景。
主要能力
该技能覆盖四类审查模式:
- 本地审查(local review):审查尚未提交的改动,基于 git diff。
- 分支审查(branch review):审查当前分支相对于 main/master 的全部变更。
- PR 审查(PR review):从 GitHub 拉取 PR 的 diff,并可回写评论。
- 聚焦审查(focused review):用户可要求只关注特定方面,如安全、性能、Bug、风格等。
审查覆盖的检查清单包括安全(OWASP Top 10 及扩展项,如各类注入、认证缺陷、敏感数据暴露、XXE、访问控制、安全配置、XSS、不安全反序列化、已知漏洞组件、日志与监控不足,以及 SSRF、开放重定向、CSRF、JWT、ReDoS、批量赋值、文件上传、竞态等)、Bug 与逻辑错误(空值/未定义、类型、异步与并发、循环、边界与极端情况、状态管理、错误处理、资源管理、业务逻辑)、性能(数据库、API/网络、前端、算法、缓存)、代码质量(可读性、可维护性、SOLID、错误信息、API 设计、配置)、测试(覆盖率、质量、模式)以及可访问性(a11y)等维度。
使用方式
触发词包括:"code review"、"review my PR"、"review PR #123"、"check my changes"、"what's wrong with my code"、"security review"、"full review"、"/review"、"/review-pr"。
依赖外部工具:gh CLI(GitHub)与 git。
执行流程:
- Step 0:判断是否需要审查。以下情况跳过:PR 为草稿(gh pr view --json isDraft)、PR 已关闭或已合并、仅文档改动(.md、.txt、LICENSE)、仅配置改动且无代码影响(.json、.yaml、.toml)、琐碎改动(少于 5 行、仅空白、版本号变更)。此时会告知用户并询问是否仍需审查。
- Step 1:确定模式。提供 PR 编号则走 PR 审查;存在未提交改动则走本地审查;处于特性分支则走分支审查;指定了重点则应用聚焦过滤。
- Step 2:获取 diff。本地:
git diff HEAD;分支:DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || echo "main")与git diff $DEFAULT_BRANCH...HEAD;PR:gh pr diff <PR_NUMBER>。 - Step 3:获取上下文。用
git diff --name-only HEAD列出改动文件,逐个完整读取以获取上下文,并检查 package.json 依赖、tsconfig/eslint 配置等项目规范。 - Step 3b:过滤既有问题。报告问题前,用
git blame -L <start>,<end> <file> --porcelain | head -1判断该行最后修改时间,跳过本 PR 之前就存在、位于未改动行、或很久以前由他人引入的问题,只报告本次变更引入或修改的问题。 - Step 4:按清单做全面分析,应用所有相关检查项。
- Step 5:置信度评分 0–100。90–100 确定、70–89 高、50–69 中、25–49 低、0–24 跳过;仅报告置信度 ≥70 的问题。以下情况标记为误报并跳过:已存在问题、linter 可捕获的问题、无实际影响的吹毛求疵、看似有误但注释中有正当理由的代码、带有显式忽略注释(如 // eslint-disable、# noqa)的代码。
- Step 6:输出结果。格式为:Code Review Summary,包含 Reviewed(文件数与变更行数)、Risk Level(Critical/High/Medium/Low),以及 Critical Issues、High Priority、Medium Priority、Low Priority / Suggestions、Good Practices 各分级列表,条目形式为 [file:line] 描述及原因。
对 GitHub PR 可回写评论:
- 总体评论:
gh pr comment <PR_NUMBER> --body "## AI Code Review\n[Review content]" - 行级评论(API):
gh api repos/{owner}/{repo}/pulls/{pr}/comments \
--method POST \
-f body="Issue description and fix suggestion" \
-f path="src/file.ts" \
-f line=42 \
-f side="RIGHT"
适用场景
适合在合并前审查 PR、在提交前检查本地未提交改动,或对特定方面(如安全、性能)做聚焦审查的开发者与团队。对草稿、已合并、仅文档/配置或极琐碎的改动会自动跳过,以减少无效审查。
限制
资料未提供该技能的收费、价格、平台限制或实际效果数据,这些信息暂未提供。使用前需具备 git 与 gh CLI 环境;PR 相关功能依赖 GitHub。