mcpField
C
code-reviewer

code-reviewer

github.com/alirezarezvani测试与质量29.0k1.2k 次安装今天更新
代码仓库

关于 code-reviewer

code-reviewer 是用于分析 Pull Request 和代码质量的审查技能,可生成结构化审查报告。它结合通用规则、语言专属检查和脚本分析,评估风险、复杂度并给出处理结论。

主要功能

  1. 01分析分支差异和审查风险
  2. 02检测安全与代码质量问题
  3. 03按语言加载审查规则
  4. 04生成结构化审查报告
  5. 05支持 JSON 和 Markdown 输出

适用场景

  1. 01审查合并前的代码变更
  2. 02识别硬编码密钥和注入风险
  3. 03检查代码复杂度与结构问题
  4. 04生成并分享审查报告

安装

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

$npx skills add https://github.com/alirezarezvani/claude-skills --skill code-reviewer

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

包含的文件

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

README.md
assets/
sample_c_clean.c
sample_c_smells.c
sample_csharp_clean.cs
sample_csharp_smells.cs
sample_java_clean.java
sample_java_smells.java
expected_outputs/
sample_c_clean_quality.json
sample_c_smells_quality.json
sample_csharp_clean_quality.json
sample_csharp_smells_quality.json
sample_java_clean_quality.json
sample_java_smells_quality.json
languages/
c.md
cpp.md
csharp.md
dart.md
go.md
java.md
kotlin.md
php.md
python.md
ruby.md
rust.md
swift.md
typescript.md
rules/
universal.md
scripts/
code_quality_checker.py
pr_analyzer.py
review_report_generator.py

详细介绍

Code Reviewer

用于分析 Pull Request、检测代码质量问题并生成审查报告的自动化代码审查工具。


本 Skill 的组织方式

code-reviewer/
  SKILL.md                        ← you are here (tools + dispatch table)
  rules/
    universal.md                  ← security, async, resources, exceptions, performance — all languages
  languages/
    python.md                     ← Python-specific rules + idioms
    typescript.md                 ← TypeScript / JavaScript-specific rules + idioms
    go.md                         ← Go-specific rules + idioms
    swift.md                      ← Swift-specific rules + idioms
    kotlin.md                     ← Kotlin-specific rules + idioms
    csharp.md                     ← C# / .NET-specific rules + idioms
    java.md                       ← Java-specific rules + idioms
    c.md                          ← C -specific rules + idioms
    cpp.md                        ← C++ -specific rules + idioms
    rust.md                       ← Rust -specific rules + idioms
    ruby.md                       ← Ruby -specific rules + idioms
    php.md                        ← PHP-specific rules + idioms
    dart.md                       ← Dart / Flutter-specific rules + idioms
每次审查的加载顺序
  1. 本文件(SKILL.md):工具与阈值
  2. rules/universal.md:始终加载,适用于所有语言
  3. 对应的 languages/*.md:根据下方扩展名表选择一个文件

无论范围如何,始终正好加载 2 个额外文件。

扩展名加载文件
.pylanguages/python.md
.ts, .tsx, .js, .jsx, .mjslanguages/typescript.md
.golanguages/go.md
.swiftlanguages/swift.md
.kt, .ktslanguages/kotlin.md
.cs, .csx, .razor, .cshtmllanguages/csharp.md
.javalanguages/java.md
.c, .hlanguages/c.md
.cpp, .cc, .cxx, .hpp, .hh, .hxxlanguages/cpp.md
.rslanguages/rust.md
.rb, .rake, .gemspec, .rulanguages/ruby.md
.php, .phtmllanguages/php.md
.dartlanguages/dart.md

工具

PR Analyzer

分析分支之间的 git diff,评估审查复杂度并识别风险。

# Analyze current branch against main
python scripts/pr_analyzer.py /path/to/repo

# Compare specific branches
python scripts/pr_analyzer.py . --base main --head feature-branch

# JSON output for integration
python scripts/pr_analyzer.py /path/to/repo --json

检测内容(通用,另见语言文件中的语言特定信号):

  • 硬编码机密信息(密码、API 密钥、令牌、连接字符串)
  • SQL / 查询注入模式
  • 遗留在生产代码中的调试语句
  • Lint / 分析器抑制注释
  • TODO/FIXME 注释

语言特定检测定义在各个 languages/*.md 文件中。

输出包括:

  • 复杂度评分(1-10)
  • 风险分类(critical、high、medium、low)
  • 用于确定审查顺序的文件优先级
  • 提交信息校验

Code Quality Checker

分析源代码中的结构性问题、代码异味和 SOLID 违规。

# Analyze a directory
python scripts/code_quality_checker.py /path/to/code

# Analyze specific language
# Valid values: python, typescript, javascript, go, swift, kotlin, csharp, java, c, cpp, rust, ruby, php, dart
python scripts/code_quality_checker.py . --language java

# JSON output
python scripts/code_quality_checker.py /path/to/code --json

通用阈值:

问题阈值
函数过长>50 行
文件过大>500 行
上帝类>20 个方法
参数过多>5 个
嵌套过深>4 层
复杂度过高>10 个分支

语言特定检查定义在各个 languages/*.md 文件中。


Review Report Generator

将 PR 分析和代码质量发现汇总为结构化的审查报告。

# Generate report for current repo
python scripts/review_report_generator.py /path/to/repo

# Markdown output
python scripts/review_report_generator.py . --format markdown --output review.md

# Use pre-computed analyses
python scripts/review_report_generator.py . \
  --pr-analysis pr_results.json \
  --quality-analysis quality_results.json

结论:

评分结论
90+ 且无高风险问题Approve
75+ 且高风险问题 ≤2 个Approve with suggestions
50-74Request changes
<50 或存在严重问题Block

添加新语言

审查指引(必需):

  1. 以任一现有语言文件为模板创建 languages/<name>.md,必须包含以下章节:PR Analyzer Signals、Code Quality Checks、Security、Async、Resource Management、Exception Handling、Performance、Idioms。
  2. 在上方的分发表中添加扩展名行。

这些即为 Agent 驱动审查所需的全部内容。

**确定性分析器支持(可选,推荐):**内置脚本仅会标记其明确支持的语言。要让 code_quality_checker.py 支持新语言的评分:

  1. 在 scripts/code_quality_checker.py 的 LANGUAGE_EXTENSIONS 中添加扩展名(这同时会添加 --language 的可选值)。
  2. 在同一文件中为该语言添加 function / class / method 正则条目;否则会回退到 Python 模式。
  3. 可选地添加 check_<name>_specific_smells(...) 检测器(参见 C#、Java 和 C 的实现),并在 analyze_file 中调用它。
  4. 添加 assets/sample_<name>_smells.<ext> 与 _clean 测试样例,并将预期的 --json 输出提交到 expected_outputs/ 下,作为回归保护。

回归测试样例

带标签的测试样例位于 assets/ 中,其提交的 --json 输出位于 expected_outputs/ 中(C#、Java 和 C)。与已提交 JSON 的偏差说明分析器的行为发生了变化:

python scripts/code_quality_checker.py assets/sample_java_smells.java --json \
  | diff - expected_outputs/sample_java_smells_quality.json

评论

支持 Markdown