用途
Code Review Router 是一个用于自动化代码审查的 Agent Skill。它的核心作用是根据代码变更的特征,在 Gemini CLI 和 Codex CLI 之间智能选择更合适的审查工具,从而在审查质量与速度之间取得平衡。
主要能力
- 环境检查:确认当前目录是否为 Git 仓库,若不是则停止并提示用户初始化或切换目录。
- 前置条件检查:检测 Gemini CLI 和 Codex CLI 是否可用。若两者都不可用则停止并提示安装;若仅一个可用则直接使用该 CLI;若两者都可用则进入路由分析。
- 变更分析:通过 git diff 收集变更统计信息,包括变更文件数、修改行数、涉及目录数、是否包含测试文件、配置文件、数据库/模式变更、API 路由变更、服务层变更等。
- 复杂度评分:根据上述条件累加复杂度分数,用于后续路由决策。
- 语言与框架检测:根据文件扩展名和内容模式识别主要语言(TypeScript、JavaScript、Python、Go、Rust、Java、Ruby、PHP、C#、Swift、Kotlin 等)以及框架(React/Next.js、Vue、Angular、Django、FastAPI、Express、NestJS、Rails、Spring 等)。
- 安全敏感模式检测:通过文件路径或代码内容识别认证、授权、密钥、令牌等安全相关变更。
- 路由决策:按优先级顺序应用规则,决定使用 Gemini 还是 Codex。
- 执行审查:调用选定的 CLI 执行代码审查,并输出路由决策说明和审查结果。
- 失败回退:若主选 CLI 失败,尝试使用另一个 CLI;若两者都失败则报告错误。
使用方式
该技能以 Agent Skill 形式提供,使用时通常由 Agent 按步骤执行。关键步骤包括:
- 检查 Git 仓库:
git rev-parse --git-dir 2>/dev/null || echo "NOT_A_GIT_REPO"
- 检查 CLI 可用性:
which gemini || echo "GEMINI_NOT_FOUND"
which codex || echo "CODEX_NOT_FOUND"
- 收集 diff 统计:
git --no-pager diff --stat HEAD 2>/dev/null || git --no-pager diff --stat
git --no-pager diff HEAD 2>/dev/null || git --no-pager diff
git --no-pager diff --name-only HEAD 2>/dev/null | wc -l
git --no-pager diff --numstat HEAD 2>/dev/null | awk '{added+=$1; removed+=$2} END {print added+removed}'
- 执行审查:
Gemini:
git --no-pager diff HEAD | gemini -p "Review this code diff for: 1) Code quality issues, 2) Best practices violations, 3) Potential bugs, 4) Security concerns, 5) Performance issues. Provide specific, actionable feedback."
Codex:
codex review --uncommitted
注意:Gemini 通过 stdin 接收 diff,Codex 使用专门的 review 子命令直接读取 git 上下文。--uncommitted 与 [PROMPT] 互斥。
路由规则
路由按优先级从高到低执行,首个匹配的规则生效。
优先级 1:基于模式的硬规则
- 安全敏感文件/代码 → Codex(需要仔细的安全分析)
- 文件数 > 20 或行数 > 500 → Codex(大变更集需要彻底审查)
- 数据库迁移或模式变更 → Codex(架构风险)
- API/服务层修改 → Codex(后端架构变更)
- 变更跨越 3 个以上顶层目录 → Codex(多服务影响)
- 复杂 TypeScript(泛型、类型工具)→ Codex(类型系统复杂度)
- 纯前端(jsx/tsx/vue/css/html)→ Gemini(更简单、偏视觉的审查)
- Python 生态(py、Django、FastAPI)→ Gemini(Python 支持强)
- 仅文档(md/txt/rst)→ Gemini(简单文本审查)
优先级 2:复杂度分数(若无模式匹配)
- 分数 ≥ 6 → Codex(高复杂度需要更深分析)
- 分数 < 6 → Gemini(中等复杂度,优先速度)
优先级 3:默认
- → Gemini(不明确情况下更快的反馈循环)
适用场景
- 日常开发中需要自动选择审查工具的代码审查。
- 变更类型差异较大,希望根据技术栈和复杂度动态路由。
- 同时安装了 Gemini CLI 和 Codex CLI,希望统一入口。
- 需要快速反馈的简单前端或 Python 变更。
- 需要深度分析的安全敏感、架构级或大型变更。
限制
- 不适用于非代码审查(文档校对、散文编辑)。
- 不适用于审查你无法控制的外部/第三方代码。
- 不适用于生成提交信息(应使用专门的提交技能)。
- 当你需要指定审查者时,应直接使用对应 CLI。
- 需要至少安装一个受支持的 CLI;两者都不可用时无法工作。
- 需要当前目录为 Git 仓库。
- 若两个 CLI 都执行失败,则无法完成审查。
输出格式
执行前会输出路由决策说明,包括变更文件数、修改行数、主要语言、框架、复杂度分数、路由决定及原因。审查完成后输出结果,标明审查者、路由原因以及分析的文件数和行数。