mcpField
C
code-review-router

code-review-router

github.com/win4r测试与质量12444 次安装41 周前更新
代码仓库

关于 code-review-router

code-review-router 是用于审查 Git 变更的技能,会根据改动规模、代码模式、语言和复杂度选择 Gemini 或 Codex,并在所选命令行工具失败时尝试备用工具。

主要功能

  1. 01检查 Git 仓库和命令行工具
  2. 02分析差异与复杂度
  3. 03检测语言和框架
  4. 04按规则路由至 Gemini 或 Codex
  5. 05所选工具失败时切换备用工具

适用场景

  1. 01为 Git 差异选择审查工具
  2. 02将安全敏感改动路由至 Codex
  3. 03将 Python 或前端改动交给 Gemini
  4. 04首选命令行工具不可用时进行审查

安装

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

$npx skills add https://github.com/win4r/agent-skills-code-review-router --skill code-review-router

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

附带文件README.md

详细介绍

代码审查路由器

根据更改特征,将代码审查路由到最合适的 CLI(Gemini 或 Codex)。

不要使用此技能的情况

  • 用于非代码审查(文档校对、文案编辑)
  • 审查你无法控制的外部代码或第三方代码时
  • 生成提交消息时(请使用专用的提交技能)
  • 需要指定审查者时(请直接使用该 CLI)

步骤 0:环境检查

验证当前目录是否位于 Git 仓库中:

git rev-parse --git-dir 2>/dev/null || echo "NOT_A_GIT_REPO"

如果不是 Git 仓库: 停止并告知用户:“当前目录不是 Git 仓库。请使用 git init 初始化,或切换到某个仓库目录。”

步骤 1:先决条件检查

验证两个 CLI 是否可用:

# Check for Gemini CLI
which gemini || echo "GEMINI_NOT_FOUND"

# Check for Codex CLI
which codex || echo "CODEX_NOT_FOUND"

如果两个 CLI 都未找到: 停止并告知用户至少需要安装其中一个:

  • Gemini:查看 Google 的 Gemini CLI 安装文档
  • Codex:查看 OpenAI 的 Codex CLI 安装文档

如果只有一个 CLI 可用: 使用该 CLI(无需路由)。

如果两个 CLI 都可用: 继续进行路由分析。

步骤 2:分析 Git 差异

运行以下命令以收集差异统计数据:

# Get diff stats (staged + unstaged)
git --no-pager diff --stat HEAD 2>/dev/null || git --no-pager diff --stat

# Get full diff for pattern analysis
git --no-pager diff HEAD 2>/dev/null || git --no-pager diff

# Count changed files
git --no-pager diff --name-only HEAD 2>/dev/null | wc -l

# Count total changed lines
git --no-pager diff --numstat HEAD 2>/dev/null | awk '{added+=$1; removed+=$2} END {print added+removed}'

如果未检测到任何更改: 报告“无需审查——没有找到未提交的更改。”并停止。

步骤 3:计算复杂度分数

将 complexity_score = 0 初始化,然后累加分数:

条件分数检测方法
更改文件数 > 10+2git diff --name-only | wc -l
更改文件数 > 20+3(额外加分,总计 +5)
更改行数 > 300+2对 git diff --numstat 求和
更改行数 > 500+3(额外加分,总计 +5)
涉及多个目录+1统计更改文件中的唯一目录数
包含测试文件+1文件名匹配 *test*、*spec*
更改了配置文件+1文件:*.config.*、*.json、*.yaml、*.yml、*.toml
数据库/架构更改+2文件:*migration*、*schema*、*.sql、prisma/*
API 路由更改+2位于 api/、routes/ 中,或包含 endpoint、handler 的文件
服务层更改+2位于 services/ 中,或包含 *service*、*provider* 的文件

步骤 4:检测语言和框架

分析文件扩展名和内容模式:

主要语言检测
.ts, .tsx     → TypeScript
.js, .jsx     → JavaScript
.py           → Python
.go           → Go
.rs           → Rust
.java         → Java
.rb           → Ruby
.php          → PHP
.cs           → C#
.swift        → Swift
.kt           → Kotlin
框架检测(检查导入和文件模式)
React/Next.js    → "import React", "from 'react'", "next.config", pages/, app/
Vue              → ".vue" files, "import Vue", "from 'vue'"
Angular          → "angular.json", "@angular/core"
Django           → "django", "models.py", "views.py", "urls.py"
FastAPI          → "from fastapi", "FastAPI("
Express          → "express()", "from 'express'"
NestJS           → "@nestjs/", "*.module.ts", "*.controller.ts"
Rails            → "Gemfile" with rails, app/controllers/
Spring           → "springframework", "@RestController"
安全敏感模式

根据文件路径或代码内容检测:

文件路径:

**/auth/**
**/security/**
**/*authentication*
**/*authorization*
**/middleware/auth*

代码模式(差异内容中):

password\s*=
api_key\s*=
secret\s*=
Bearer\s+
JWT
\.env
credentials
private_key
access_token

配置文件:

.env*
*credentials*
*secrets*
*.pem
*.key

步骤 5:应用路由决策树

路由优先级顺序(从上到下评估,匹配第一个规则后停止):

优先级 1:基于模式的规则(硬性规则)
模式路由目标原因
检测到安全敏感文件/代码Codex需要仔细进行安全分析
文件数 > 20 或行数 > 500Codex大规模更改集需要全面审查
数据库迁移或架构更改Codex存在架构风险
API/服务层修改Codex后端架构更改
更改涉及 3 个或更多顶层目录Codex影响多个服务
复杂 TypeScript(泛型、类型工具)Codex类型系统复杂
仅包含纯前端内容(jsx/tsx/vue/css/html)Gemini审查更简单,侧重视觉
Python 生态系统(py、Django、FastAPI)Gemini对 Python 的支持强大
仅包含文档(md/txt/rst)Gemini文本审查简单
优先级 2:复杂度分数(未匹配任何模式时)
分数路由目标原因
≥ 6Codex高复杂度需要深入分析
< 6Gemini复杂度适中,优先考虑速度
优先级 3:默认值

→ Gemini(对于不明确的情况,可更快获得反馈)

步骤 6:执行审查

说明路由决策

执行前,输出:

## Code Review Routing

**Changes detected:**
- Files: [X] files changed
- Lines: [Y] lines modified
- Primary language: [language]
- Framework: [framework or "none detected"]

**Complexity score:** [N]/10
- [List contributing factors]

**Routing decision:** [Gemini/Codex]
- Reason: [primary reason for choice]

**Executing review...**
CLI 命令

注意: Gemini 通过 stdin(管道传入)接收 diff,而 Codex 有专门的 review 子命令,可直接读取 git 上下文。如果需要调试,请在运行 Gemini 前检查 git diff HEAD 是否有输出。

对于 Gemini:

# Pipe diff to Gemini with review prompt
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:

# Use dedicated 'review' subcommand for non-interactive code review
# Note: --uncommitted and [PROMPT] are mutually exclusive
codex review --uncommitted

步骤 7:通过回退方案处理失败

如果所选 CLI 失败(退出码非零或输出错误):

  1. 报告失败:

    [Primary CLI] failed: [error message]
    Attempting fallback to [other CLI]...
    
  2. 尝试使用另一个 CLI

  3. 如果回退方案也失败:

    Both review CLIs failed.
    - Gemini error: [error]
    - Codex error: [error]
    
    Please check CLI installations and try manually.
    

步骤 8:格式化输出

清晰地呈现审查结果:

## Code Review Results

**Reviewed by:** [Gemini/Codex]
**Routing:** [brief reason]

---

[CLI output here]

---

**Review complete.** [X files, Y lines analyzed]

快速参考

更改类型路由原因
React 组件样式Gemini纯前端
Django 视图更新GeminiPython 生态系统
少于 50 行的单个错误修复Gemini简单更改
新 API 端点 + 测试Codex架构性更改
身份验证系统更改Codex安全敏感
数据库迁移Codex架构更改
多服务重构Codex复杂度高
TypeScript 类型全面调整Codex类型复杂

评论

支持 Markdown