mcpField
C
code-reviewer

code-reviewer

github.com/alirezarezvaniテスト・品質29.0k1.2k 回インストール今日更新
リポジトリ

code-reviewer について

code-reviewer は、プルリクエストとコード品質を確認し、構造化されたレビュー報告を作成するスキルです。共通ルール、言語別チェック、スクリプトを組み合わせ、リスクや複雑度を評価して判定を示します。

主な機能

  1. 01ブランチ差分とレビューリスクの分析
  2. 02セキュリティとコード品質の問題検出
  3. 03言語別レビュー規則の読み込み
  4. 04構造化レビュー報告の生成
  5. 05JSON と 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/
  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 — 下の拡張子一覧に基づき、1 ファイルを読み込みます

スコープにかかわらず、追加で読み込むファイルは常に正確に 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 アナライザー

ブランチ間の 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 未満、または重大な問題ありブロック

新しい言語の追加

レビュアー向けのガイダンス(必須):

  1. 既存の言語ファイルをテンプレートとして使い、languages/<name>.md を作成します。次のセクションが必要です:PR Analyzer Signals、Code Quality Checks、Security、Async、Resource Management、Exception Handling、Performance、Idioms。
  2. 上の振り分け一覧に拡張子の行を追加します。

エージェントによるレビューに必要な作業は以上です。

決定論的アナライザーのサポート(任意、推奨): 同梱のスクリプトは、明示的に対応している言語のみを検出します。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

コメント