code-reviewer について
code-reviewer は、プルリクエストとコード品質を確認し、構造化されたレビュー報告を作成するスキルです。共通ルール、言語別チェック、スクリプトを組み合わせ、リスクや複雑度を評価して判定を示します。
主な機能
- 01ブランチ差分とレビューリスクの分析
- 02セキュリティとコード品質の問題検出
- 03言語別レビュー規則の読み込み
- 04構造化レビュー報告の生成
- 05JSON と 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/
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— 下の拡張子一覧に基づき、1 ファイルを読み込みます
スコープにかかわらず、追加で読み込むファイルは常に正確に 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 アナライザー
ブランチ間の 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)
- リスク分類(重大、高、中、低)
- レビュー順のファイル優先順位
- コミットメッセージの検証
コード品質チェッカー
ソースコードを分析し、構造上の問題、コードの臭い、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 ファイルで定義されています。
レビューレポート生成ツール
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 以上で重大な問題なし | 承認 |
| 75 以上で重大な問題が 2 件以下 | 提案付きで承認 |
| 50〜74 | 変更を要求 |
| 50 未満、または重大な問題あり | ブロック |
新しい言語の追加
レビュアー向けのガイダンス(必須):
- 既存の言語ファイルをテンプレートとして使い、
languages/<name>.mdを作成します。次のセクションが必要です:PR Analyzer Signals、Code Quality Checks、Security、Async、Resource Management、Exception Handling、Performance、Idioms。 - 上の振り分け一覧に拡張子の行を追加します。
エージェントによるレビューに必要な作業は以上です。
決定論的アナライザーのサポート(任意、推奨): 同梱のスクリプトは、明示的に対応している言語のみを検出します。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