关于 code-reviewer
code-reviewer 是用于分析 Pull Request 和代码质量的审查技能,可生成结构化审查报告。它结合通用规则、语言专属检查和脚本分析,评估风险、复杂度并给出处理结论。
主要功能
- 01分析分支差异和审查风险
- 02检测安全与代码质量问题
- 03按语言加载审查规则
- 04生成结构化审查报告
- 05支持 JSON 和 Markdown 输出
适用场景
- 01审查合并前的代码变更
- 02识别硬编码密钥和注入风险
- 03检查代码复杂度与结构问题
- 04生成并分享审查报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill code-reviewer安装后在 Claude Code 中输入/code-reviewer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdassets/sample_c_clean.csample_c_smells.csample_csharp_clean.cssample_csharp_smells.cssample_java_clean.javasample_java_smells.javaexpected_outputs/sample_c_clean_quality.jsonsample_c_smells_quality.jsonsample_csharp_clean_quality.jsonsample_csharp_smells_quality.jsonsample_java_clean_quality.jsonsample_java_smells_quality.jsonlanguages/c.mdcpp.mdcsharp.mddart.mdgo.mdjava.mdkotlin.mdphp.mdpython.mdruby.mdrust.mdswift.mdtypescript.mdrules/universal.mdscripts/code_quality_checker.pypr_analyzer.pyreview_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
每次审查的加载顺序
- 本文件(
SKILL.md):工具与阈值 rules/universal.md:始终加载,适用于所有语言- 对应的
languages/*.md:根据下方扩展名表选择一个文件
无论范围如何,始终正好加载 2 个额外文件。
| 扩展名 | 加载文件 |
|---|---|
.py | languages/python.md |
.ts, .tsx, .js, .jsx, .mjs | languages/typescript.md |
.go | languages/go.md |
.swift | languages/swift.md |
.kt, .kts | languages/kotlin.md |
.cs, .csx, .razor, .cshtml | languages/csharp.md |
.java | languages/java.md |
.c, .h | languages/c.md |
.cpp, .cc, .cxx, .hpp, .hh, .hxx | languages/cpp.md |
.rs | languages/rust.md |
.rb, .rake, .gemspec, .ru | languages/ruby.md |
.php, .phtml | languages/php.md |
.dart | languages/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-74 | Request changes |
| <50 或存在严重问题 | Block |
添加新语言
审查指引(必需):
- 以任一现有语言文件为模板创建
languages/<name>.md,必须包含以下章节:PR Analyzer Signals、Code Quality Checks、Security、Async、Resource Management、Exception Handling、Performance、Idioms。 - 在上方的分发表中添加扩展名行。
这些即为 Agent 驱动审查所需的全部内容。
**确定性分析器支持(可选,推荐):**内置脚本仅会标记其明确支持的语言。要让 code_quality_checker.py 支持新语言的评分:
- 在
scripts/code_quality_checker.py的LANGUAGE_EXTENSIONS中添加扩展名(这同时会添加--language的可选值)。 - 在同一文件中为该语言添加
function/class/method正则条目;否则会回退到 Python 模式。 - 可选地添加
check_<name>_specific_smells(...)检测器(参见 C#、Java 和 C 的实现),并在analyze_file中调用它。 - 添加
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