mcpField
J
Judges Panel

Judges Panel

ローカル
kevinrabun.github.io開発ツール729 週間前に更新

Judges Panel について

Judges Panelは、AI生成コードをセキュリティ、コスト、コンプライアンスなどの観点で確認するチーム向けのコード評価サーバーです。オフラインのパターン照合とAST解析にLLMによるレビューを組み合わせ、CLI、API、CIにも対応します。

主な機能

  1. 0145種類の専門コード評価
  2. 02オフラインのパターン照合とAST解析
  3. 03LLMによる詳細レビュー
  4. 04200超の決定的な自動修正パッチ
  5. 05CLI、API、CIワークフロー

活用シーン

  1. 01リリース前のAI生成コードレビュー
  2. 02セキュリティやハードコードされた秘密情報の検出
  3. 03プルリクエストCIでのコード検査

MCP 対応

stdioで動作するMCPサーバーとして、VS CodeやClaude DesktopなどのMCPクライアントにコード評価機能と専門家ペルソナのプロンプトを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kevinrabun-judges": {
"command": "npx",
"args": [
"-y",
"@kevinrabun/judges"
]
}
}
}
起動コマンドnpx -y @kevinrabun/judges

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@kevinrabun/judges3.129.9

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Judges Panel

AI 生成コードを評価する45 の専門分野に特化した判定者によるパネルを提供する MCP(Model Context Protocol)サーバーです。レビュー対象のプロジェクトを問わず、独立した品質ゲートとして機能します。決定論的なパターンマッチングと AST 解析(即時実行、オフライン、LLM 呼び出しゼロ)と、AI アシスタントが 45 のすべての分野で専門家のペルソナに基づく分析を実行できる LLM を活用した詳細レビュー用プロンプトを組み合わせています。

主な特長:

  • リリース判断、平易な言葉でのリスク概要、優先順位付けされた修正を確認できる **App Builder Workflow(3 ステップ)**のデモを含みます。デモを試すをご覧ください。
  • ポリシープロファイル、エビデンスの調整、専門分野からのフィードバック、信頼度スコア、確実性に関するレポートを備えた V2 のコンテキスト対応評価を含みます。
  • リポジトリをクローンして完全な審査を実行し、統合された Markdown レポートを出力する パブリックリポジトリ URL レポート機能を含みます。
  • 200 件以上の決定論的な自動修正パッチ(src/patches/index.ts を参照)に加え、LLM を活用した詳細レビューを提供します。

🧪 printHelp 内の多くのコマンドは、試験段階またはロードマップ上のものです。デフォルトでは、GA コマンドのみを表示します。スタブを表示するには、JUDGES_SHOW_EXPERIMENTAL=1 を設定してください。まだ接続されていない場合があります。

CI npm npm downloads License: MIT Tests

🔰 パッケージ

  • CLI:@kevinrabun/judges-cli → バイナリ judges(npx @kevinrabun/judges-cli eval --file app.ts を使用)。
  • MCP/API:@kevinrabun/judges → プログラム用 API + MCP サーバー(npm install @kevinrabun/judges)。
  • VS Code 拡張機能:vscode-extension/ をご覧ください。
  • GitHub Action:uses: KevinRabun/judges@main(CI クイックスタートを参照)。

クイックスタート

CLI(単発実行)
# Using the CLI package (recommended)
npx @kevinrabun/judges-cli eval --file src/app.ts

# Show GA commands only (default)
npx @kevinrabun/judges-cli --help

# Show experimental/roadmap commands
echo "JUDGES_SHOW_EXPERIMENTAL=1" >> $GITHUB_ENV
npx @kevinrabun/judges-cli --help

# License scan (supply-chain & license compliance)
npx @kevinrabun/judges-cli license-scan --dir .

CLI と API の違い: Judges をアプリに組み込む(MCP/API)場合は、@kevinrabun/judges をインストールしてください。コマンドラインでは、@kevinrabun/judges-cli(バイナリ judges)を使用してください。

GitHub Action
name: Judges
on: [pull_request, push]
jobs:
  judges:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: KevinRabun/judges@main
        with:
          path: .
          diff-only: true           # evaluate only changed lines in PRs (default true)
          fail-on-findings: true    # fail on critical/high findings
          upload-sarif: true        # upload SARIF to GitHub Code Scanning
プログラム用 API(MCP サーバーを含む)
npm install @kevinrabun/judges
import { evaluateCode } from "@kevinrabun/judges/api";
const verdict = evaluateCode("const password = 'ProdSecret';", "typescript");
console.log(verdict.overallVerdict, verdict.overallScore);
MCP サーバー

MCP サーバーは stdio 上で動作し、MCP クライアント(VS Code、Claude Desktop など)によって起動されます。 MCP 設定(例:mcp.json)で設定してください。

{
  "servers": {
    "judges": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@kevinrabun/judges"]
    }
  }
}

または、サーバーを直接実行します。

npx @kevinrabun/judges
# Starts the MCP server on stdio

設定ファイル:.judgesrc.json(expandEnvPlaceholders による ${ENV_VAR} の置換をサポート)。設定を参照してください。


なぜ Judges なのか?

AI コードジェネレーター(Copilot、Cursor、Claude、ChatGPT など)はコードを素早く書きますが、安全でないデフォルト設定、認証の欠如、ハードコードされたシークレット、不十分なエラー処理を日常的に生成します。人間のレビュアーがこうした問題の一部を見つけることはできますが、45 の観点を一貫してレビューできる人はいません。

ESLint / BiomeSonarQubeSemgrep / CodeQLJudges
対象範囲スタイル+一部のバグバグ+コードの問題点セキュリティパターン45 の領域:セキュリティ、コスト、コンプライアンス、アクセシビリティ、API 設計、クラウド、UX、…
AI 生成コードへの特化なしなし一部対応AI の出力で起こる失敗パターンに特化して構築
セットアッププロジェクトごとに設定サーバー+スキャナークラウドまたはローカルコマンド 1 つ:npx @kevinrabun/judges-cli eval file.ts
自動修正パッチ一部ありなしなし200 件以上の決定論的パッチ — 即座に適用、オフラインで動作
非技術者向けの出力なしダッシュボードなしWhat/Why/Next を含む平易な言葉での検出結果
MCP ネイティブなしなしなしはい — Copilot、Claude、Cursor 内で動作
SARIF 出力なしありありはい — GitHub Code Scanning にアップロード
コスト無料$$$$無料/有料無料/MIT

Judges はリンターの代わりではありません — リンターが対応しない観点をカバーします。認証戦略、データ主権、コストパターン、アクセシビリティ、フレームワーク固有のアンチパターン、複数ファイルにまたがるアーキテクチャ上の問題などです。

Judges — ターミナル出力


クイックスタート

前提条件:Node.js >=18(>=20 推奨)、npx が利用可能であること。judges CLI バイナリは @kevinrabun/judges-cli に含まれています(推奨)。また、npx @kevinrabun/judges でも動作します。

パッケージ:

  • CLI: npm install -g @kevinrabun/judges-cli(または npx @kevinrabun/judges-cli ...)
  • MCP/API: npm install @kevinrabun/judges

MCP サーバーとプログラムから利用する API には @kevinrabun/judges を使用してください。ターミナルコマンド judges を使う場合は @kevinrabun/judges-cli を使用してください。

今すぐ試す(リポジトリのクローンは不要)
# Install the CLI globally
npm install -g @kevinrabun/judges-cli

# Evaluate any file
judges eval src/app.ts

# Pipe from stdin
cat api.py | judges eval --language python

# Single judge
judges eval --judge cybersecurity server.ts

# SARIF output for CI
judges eval --file app.ts --format sarif > results.sarif

# HTML report with severity filters and dark/light theme
judges eval --file app.ts --format html > report.html

# Fail CI on findings (exit code 1)
judges eval --fail-on-findings src/api.ts

# Suppress known findings via baseline
judges eval --baseline baseline.json src/api.ts

# Use a named preset
judges eval --preset security-only src/api.ts

# Use a config file
judges eval --config .judgesrc.json src/api.ts

# Set a minimum score threshold (exit 1 if below)
judges eval --min-score 80 src/api.ts

# One-line summary for scripts
judges eval --summary src/api.ts

# Agentic skills (orchestrated judge sets)
judges skill ai-code-review --file src/app.ts
judges skill security-review --file src/api.ts --format json
judges skill release-gate --file src/app.ts
judges skills   # list available skills

> Full catalog: [`docs/skills.md`](docs/skills.md)


# List all 45 judges
judges list
その他の CLI コマンド
# Interactive project setup wizard
judges init

# Preview auto-fix patches (dry run)
judges fix src/app.ts

# Apply patches directly
judges fix src/app.ts --apply

# License compliance scan (copyleft/unknown detection)
judges license-scan --format json --risk high

# Watch mode — re-evaluate on file save
judges watch src/

# Project-level report (local directory)
judges report . --format html --output report.html

# Evaluate a unified diff (pipe from git diff)
git diff HEAD~1 | judges diff

# Analyze dependencies for supply-chain risks
judges deps --path . --format json

# Run GitHub App server (zero-config PR reviews)
judges app serve --port 4567

# Run GitHub PR review (gh CLI required)
judges review --pr 123 --repo owner/name --diff-only

# Auto-tune presets and configs
judges tune --dir . --apply

# Create a baseline file to suppress known findings
judges baseline create --file src/api.ts -o baseline.json

# Generate CI template files
judges ci-templates --provider github
judges ci-templates --provider gitlab
judges ci-templates --provider azure
judges ci-templates --provider bitbucket

# Generate per-judge rule documentation
judges docs
judges docs --judge cybersecurity
judges docs --output docs/

# Install shell completions
judges completions bash   # eval "$(judges completions bash)"
judges completions zsh
judges completions fish
judges completions powershell

# Install pre-commit hook
judges hook install

# Uninstall pre-commit hook
judges hook uninstall

🔎 ヒント:CLI のヘルプには、デフォルトで GA コマンドのみが表示されるようになりました。実験的/ロードマップ上のコマンドを表示するには、次を実行してください。

JUDGES_SHOW_EXPERIMENTAL=1 judges --help
GitHub App(セルフホスト可能な Webhook)

設定不要の PR レビュアーを GitHub App として実行します。

# Run the webhook server locally
judges app serve --port 4567

必須の環境変数:

  • JUDGES_APP_ID – GitHub App ID
  • JUDGES_PRIVATE_KEY または JUDGES_PRIVATE_KEY_PATH – PEM 秘密鍵
  • JUDGES_WEBHOOK_SECRET – 署名検証シークレット

任意:

  • JUDGES_MIN_SEVERITY(デフォルト:medium)
  • JUDGES_MAX_COMMENTS(デフォルト:25)
  • JUDGES_TEST_DRY_RUN=1 を設定すると、テスト中のライブネットワーク呼び出しを回避できます

ローカルテストでは、ngrok http 4567 を使って http://localhost:4567/webhook を公開し、それに合わせて GitHub App の Webhook URL を設定できます。

GitHub Actions で使用する

設定不要で Judges を CI パイプラインに追加できます。

# .github/workflows/judges.yml
name: Judges Code Review
on: [pull_request]

jobs:
  judges:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      security-events: write  # only if using upload-sarif
    steps:
      - uses: actions/checkout@v4
      - uses: KevinRabun/judges@main
        with:
          path: src/api.ts        # file or directory
          format: text             # text | json | sarif | markdown
          upload-sarif: true       # upload to GitHub Code Scanning
          fail-on-findings: true   # fail CI on critical/high findings

後続のステップで利用できる出力:verdict、score、findings、critical、high、sarif-file。

Docker で使用する(Node.js 不要)
# Build the image
docker build -t judges .

# Evaluate a local file
docker run --rm -v $(pwd):/code judges eval --file /code/app.ts

# Pipe from stdin
cat api.py | docker run --rm -i judges eval --language python

# List judges
docker run --rm judges list
または MCP サーバーとして使用する
1. インストールしてビルドする
git clone https://github.com/KevinRabun/judges.git
cd judges
npm install
npm run build
2. デモを試す

付属のデモを実行して、意図的に問題を含ませた API サーバーを 45 の Judges すべてが評価する様子を確認します。

npm run demo

このコマンドは examples/sample-vulnerable-api.ts を評価します。このファイルには、セキュリティ上の欠陥、パフォーマンスのアンチパターン、コード品質の問題が意図的に詰め込まれており、各 Judge のスコアと検出結果を含む完全な評価結果が出力されます。

デモには**アプリビルダーのワークフロー(3 ステップ)**セクションも追加されました。1 回の実行で、審査結果とワークフローの出力を両方確認できます。

  • リリース判断(Ship now/Ship with caution/Do not ship)
  • 主なリスクの平易な言葉での要約
  • 優先順位付けされた修正タスクと、AI で修正可能な P0/P1 項目

ワークフロー出力のサンプル(一部省略):

╔══════════════════════════════════════════════════════════════╗
║             App Builder Workflow Demo (3-Step)             ║
╚══════════════════════════════════════════════════════════════╝

  Decision       : Do not ship
  Verdict        : FAIL (47/100)
  Risk Counts    : Critical 24 | High 27 | Medium 55

  Step 2 — Plain-Language Findings:
  - [CRITICAL] DATA-001: Hardcoded password detected
      What: ...
      Why : ...
      Next: ...

  Step 3 — Prioritized Tasks:
  - P0 | DEVELOPER | Effort L | DATA-001
      Task: ...
      Done: ...

  AI-Fixable Now (P0/P1):
  - P0 DATA-001: ...

審査結果出力のサンプル(一部省略):

╔══════════════════════════════════════════════════════════════╗
║           Judges Panel — Full Tribunal Demo                 ║
╚══════════════════════════════════════════════════════════════╝

  Overall Verdict : FAIL
  Overall Score   : 43/100
  Critical Issues : 15
  High Issues     : 17
  Total Findings  : 83
  Judges Run      : 33

  Per-Judge Breakdown:
  ────────────────────────────────────────────────────────────────
  ❌ Judge Data Security              0/100    7 finding(s)
  ❌ Judge Cybersecurity              0/100    7 finding(s)
  ❌ Judge Cost Effectiveness        52/100    5 finding(s)
  ⚠️  Judge Scalability              65/100    4 finding(s)
  ❌ Judge Cloud Readiness           61/100    4 finding(s)
  ❌ Judge Software Practices        45/100    6 finding(s)
  ❌ Judge Accessibility              0/100    8 finding(s)
  ❌ Judge API Design                 0/100    9 finding(s)
  ❌ Judge Reliability               54/100    3 finding(s)
  ❌ Judge Observability             45/100    5 finding(s)
  ❌ Judge Performance               27/100    5 finding(s)
  ❌ Judge Compliance                 0/100    4 finding(s)
  ⚠️  Judge Testing                  90/100    1 finding(s)
  ⚠️  Judge Documentation            70/100    4 finding(s)
  ⚠️  Judge Internationalization     65/100    4 finding(s)
  ⚠️  Judge Dependency Health        90/100    1 finding(s)
  ❌ Judge Concurrency               44/100    4 finding(s)
  ❌ Judge Ethics & Bias             65/100    2 finding(s)
  ❌ Judge Maintainability           52/100    4 finding(s)
  ❌ Judge Error Handling            27/100    3 finding(s)
  ❌ Judge Authentication             0/100    4 finding(s)
  ❌ Judge Database                   0/100    5 finding(s)
  ❌ Judge Caching                   62/100    3 finding(s)
  ❌ Judge Configuration Mgmt         0/100    3 finding(s)
  ⚠️  Judge Backwards Compat         80/100    2 finding(s)
  ⚠️  Judge Portability              72/100    2 finding(s)
  ❌ Judge UX                        52/100    4 finding(s)
  ❌ Judge Logging Privacy            0/100    4 finding(s)
  ❌ Judge Rate Limiting             27/100    4 finding(s)
  ⚠️  Judge CI/CD                    80/100    2 finding(s)
3. テストを実行する
npm test

すべてのジャッジ、AST パーサー、Markdown フォーマッター、エッジケースを対象に、自動テストを実行します。

4. エディターに接続する
VS Code(推奨 — 設定不要)

マーケットプレイスから Judges Panel 拡張機能をインストールします。以下の機能を利用できます。

  • ファイルを保存するたびに表示される インライン診断とクイック修正
  • @judges チャット参加者 — Copilot Chat で @judges と入力するか、「judges panel review」と依頼するだけで、Copilot が自動的にルーティングします
  • 自動設定された MCP サーバー — 45 個すべての専門家ペルソナのプロンプトを、設定不要で Copilot から利用できます
code --install-extension kevinrabun.judges-panel
VS Code — MCP を手動で設定する場合

ワークスペースの設定を明示的に行う場合(または拡張機能を使わないチームメンバーも利用できるようにする場合)は、.vscode/mcp.json を作成します。

{
  "servers": {
    "judges": {
      "command": "npx",
      "args": ["-y", "@kevinrabun/judges"]
    }
  }
}
Claude Desktop

claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "judges": {
      "command": "npx",
      "args": ["-y", "@kevinrabun/judges"]
    }
  }
}
Cursor/その他の MCP クライアント

MCP 対応クライアントであれば、同じ npx コマンドを使用できます。

{
  "command": "npx",
  "args": ["-y", "@kevinrabun/judges"]
}
5. GitHub Copilot の PR レビューで Judges を使う

はい。重要な注意点が 1 つありますが、GitHub ベースのレビューのワークフローに Judges を組み込むことができます。

  • GitHub でホストされている copilot-pull-request-reviewer では、現在、VS Code と同じ方法で任意のローカル MCP サーバーを直接追加できません。
  • 実用的な方法は、各 PR で CI 上の Judges を実行してレポート/チェックを公開し、レビュー中に Copilot と人間のレビュアーがその出力を利用することです。
オプション A(推奨):PR ワークフローのチェックとレポートアーティファクト

.github/workflows/judges-pr-review.yml を作成します。

name: Judges PR Review

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  judges:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm

      - name: Install
        run: npm ci

      - name: Generate Judges report
        run: |
          npx tsx -e "import { generateRepoReportFromLocalPath } from './src/reports/public-repo-report.ts';
          const result = generateRepoReportFromLocalPath({
            repoPath: process.cwd(),
            outputPath: 'judges-pr-report.md',
            maxFiles: 600,
            maxFindingsInReport: 150,
          });
          console.log('Overall:', result.overallVerdict, result.averageScore);"

      - name: Upload report artifact
        uses: actions/upload-artifact@v4
        with:
          name: judges-pr-report
          path: judges-pr-report.md

これにより、すべての PR で再現可能な Judges の出力が得られ、チーム(および Copilot)が参照できます。

オプション B:Copilot のカスタム指示をリポジトリに追加する

.github/instructions/judges.instructions.md を作成し、次のようなガイダンスを記述します。

When reviewing pull requests:
1. Read the latest Judges report artifact/check output first.
2. Prioritize CRITICAL and HIGH findings in remediation guidance.
3. If findings conflict, defer to security/compliance-related Judges.
4. Include rule IDs (e.g., DATA-001, CYBER-004) in suggested fixes.

これにより、Copilot のフィードバックを Judges の検出結果に沿ったものにできます。


CLI リファレンス

すべてのコマンドで、使用方法の詳細を --help から確認できます。

judges eval

45 個すべてのジャッジ、または単一のジャッジを使ってファイルを評価します。

フラグ説明
--file <path> /位置引数評価するファイル
--judge <id> / -j <id>単一ジャッジモード
--language <lang> / -l <lang>言語のヒント(拡張子から自動検出)
--format <fmt> / -f <fmt>出力形式:text、json、sarif、markdown、html、pdf、junit、codeclimate、github-actions
--output <path> / -o <path>出力をファイルに書き込む
--fail-on-findings判定が FAIL の場合、終了コード 1 で終了する
--baseline <path> / -b <path>JSON ベースラインファイル — 既知の検出結果を抑制する
--summaryサマリーを 1 行で出力する(スクリプトに最適)
--config <path>.judgesrc / .judgesrc.json 設定ファイルを読み込む
--preset <name>名前付きプリセットを使用する(22 個すべてのオプションについては名前付きプリセットを参照)
--min-score <n>総合スコアがこのしきい値を下回った場合、終了コード 1 で終了する
--verbose実行時間とデバッグ情報を出力する
--quiet必須でない出力を抑制する
--no-colorANSI カラーを無効にする
judges init

プロジェクト設定を生成する対話型ウィザードです。

  • .judgesrc.json — ルールのカスタマイズ、無効にするジャッジ、重大度のしきい値
  • .github/workflows/judges.yml — GitHub Actions CI ワークフロー
  • .gitlab-ci.judges.yml — GitLab CI パイプライン(任意)
  • azure-pipelines.judges.yml — Azure Pipelines(任意)
judges fix

決定論的な検出結果に基づく自動修正パッチをプレビューまたは適用します。

フラグ説明
位置引数修正するファイル
--applyパッチをディスクに書き込む(デフォルト:ドライラン)
--judge <id>単一のジャッジによる検出結果に限定する
judges watch

ファイルの保存時に、継続的に再評価します。

フラグ説明
位置引数監視するファイルまたはディレクトリ(デフォルト:.)
--judge <id>単一ジャッジモード
--fail-on-findings評価に失敗した場合、ゼロ以外の終了コードで終了する
judges report

ローカルディレクトリに対して、プロジェクト全体の審査を実行します。

フラグ説明
positionalディレクトリパス(デフォルト:.)
--format <fmt>出力形式:text、json、html、markdown
--output <path>レポートをファイルに書き込みます
--max-files <n>分析するファイルの最大数(デフォルト:600)
--max-file-bytes <n>指定サイズを超えるファイルをスキップします(デフォルト:300000)
judges hook

ステージングされたファイルに対して Judges を実行する Git の pre-commit フックを管理します。

judges hook install    # add pre-commit hook
judges hook uninstall  # remove pre-commit hook

Husky(.husky/pre-commit)を検出し、見つからない場合は .git/hooks/pre-commit を使用します。マーカーに基づいて挿入するため、既存のフックを上書きしません。

judges diff

統合 diff(例:git diff の出力)から変更された行のみを評価します。

フラグ説明
--file <path>stdin の代わりにファイルから diff を読み込みます
--format <fmt>出力形式:text、json、sarif、junit、codeclimate
--output <path>出力をファイルに書き込みます
git diff HEAD~1 | judges diff
judges diff --file changes.patch --format sarif
judges deps

プロジェクトの依存関係を分析し、サプライチェーンのリスクを調べます。

フラグ説明
--path <dir>スキャンするプロジェクトのルート(デフォルト:.)
--format <fmt>出力形式:text、json
judges deps --path .
judges deps --path ./backend --format json
judges baseline

今後の評価で既知の検出結果を抑制するためのベースラインファイルを作成します。

judges baseline create --file src/api.ts
judges baseline create --file src/api.ts -o .judges-baseline.json
judges ci-templates

一般的なプロバイダー向けの CI/CD 設定テンプレートを生成します。

judges ci-templates --provider github   # .github/workflows/judges.yml
judges ci-templates --provider gitlab   # .gitlab-ci.judges.yml
judges ci-templates --provider azure    # azure-pipelines.judges.yml
judges ci-templates --provider bitbucket # bitbucket-pipelines.yml (snippet)
judges docs

各 judge のルールに関するドキュメントを Markdown 形式で生成します。

フラグ説明
--judge <id>単一の judge のドキュメントを生成します
--output <dir>judge ごとの .md ファイルを書き込みます
judges docs                          # all judges to stdout
judges docs --judge cybersecurity    # single judge
judges docs --output docs/judges/    # write files to directory
judges completions

シェル補完スクリプトを生成します。

eval "$(judges completions bash)"        # Bash
eval "$(judges completions zsh)"         # Zsh
judges completions fish | source         # Fish
judges completions powershell            # PowerShell (Register-ArgumentCompleter)
名前付きプリセット

--preset を使用して、事前設定済みの評価設定を適用します。

プリセット説明
strictすべての重大度、すべての judge を対象にします — 最も徹底的な評価
lenient高および重大な検出結果のみを対象にします — 高速で重点的な評価
security-onlyセキュリティに重点を置きます — セキュリティ以外の judge(コスト、スケーラビリティ、ドキュメント、a11y、i18n、UX など)を無効にします
startupコンプライアンス、主権、i18n の judge をスキップします — スピードを優先します
complianceコンプライアンス、データ主権、認証のみを対象にします — 規制への対応に重点を置きます
performanceパフォーマンス、スケーラビリティ、キャッシュ、費用対効果のみを対象にします
reactReact/Next.js アプリ向けに調整済み — アクセシビリティ、XSS 保護を有効にします
expressExpress.js API 向けに調整済み — ミドルウェアのセキュリティ、認証、CORS、レート制限を対象にします
fastapiPython FastAPI 向けに調整済み — 入力検証、非同期パターン、API セキュリティを対象にします
djangoDjango アプリ向けに調整済み — テンプレートのセキュリティ、ORM の誤用、CSRF を対象にします
spring-bootJava Spring Boot 向けに調整済み — インジェクション、設定、アクチュエーターのセキュリティを対象にします
railsRuby on Rails 向けに調整済み — マスアサインメント、CSRF、SQL インジェクションを対象にします
nextjsNext.js 向けに調整済み — サーバー/クライアントのセキュリティ、API ルート、SSR/ISR を対象にします
terraformTerraform/OpenTofu IaC 向けに調整済み — インフラストラクチャのセキュリティ、コンプライアンスを対象にします
kubernetesK8s マニフェスト向けに調整済み — セキュリティコンテキスト、RBAC、リソース制限を対象にします
onboarding初めての導入に適したスマートなデフォルト設定 — ノイズの多いルールを抑制します
fintech金融サービス向け — PCI DSS、暗号化、認証、監査を対象にします
healthtech医療分野向け — HIPAA 準拠、データ主権、暗号化、監査証跡を対象にします
saasマルチテナント SaaS 向け — テナント分離、レート制限、スケーラビリティを対象にします
government政府/公共部門向け — コンプライアンス、主権、認証を対象にします
open-sourceオープンソースプロジェクト向け — ドキュメント、後方互換性、セキュリティ、依存関係の健全性を対象にします
ai-reviewAI 生成コードのレビュー向け — ハルシネーションの検出、セキュリティ、認証、正確性を対象にします
judges eval --preset security-only src/api.ts
judges eval --preset strict --format sarif src/app.ts > results.sarif
CI 出力形式
JUnit XML

Jenkins、Azure DevOps、GitHub Actions、GitLab のテスト結果ビューアー向けに JUnit XML を生成します。

judges eval --format junit src/api.ts > results.xml

各 Judge は <testsuite> に対応し、各検出結果は <testcase> になります。重大度が critical または high の場合は、<failure> が含まれます。

CodeClimate / GitLab Code Quality

GitLab Code Quality などのツール向けに CodeClimate JSON を生成します。

judges eval --format codeclimate src/api.ts > codequality.json
スコアバッジ

README 向けに SVG またはテキストのバッジを生成します。

import { generateBadgeSvg, generateBadgeText } from "@kevinrabun/judges/badge";

const svg = generateBadgeSvg(85);          // shields.io-style SVG
const text = generateBadgeText(85);        // "✓ judges 85/100"
const svg2 = generateBadgeSvg(75, "quality"); // custom label

Judge Panel

判定者ドメインルールの接頭辞評価内容
データセキュリティデータセキュリティとプライバシーDATA-暗号化、PII の取り扱い、シークレット管理、アクセス制御
サイバーセキュリティサイバーセキュリティと脅威防御CYBER-インジェクション攻撃、XSS、CSRF、認証の欠陥、OWASP Top 10
費用対効果コスト最適化とリソース効率COST-アルゴリズムの効率、N+1 クエリ、メモリの浪費、キャッシュ戦略
スケーラビリティスケーラビリティとパフォーマンスSCALE-ステートレス性、水平スケーリング、並行処理、ボトルネック
クラウド対応性クラウドネイティブアーキテクチャと DevOpsCLOUD-12-Factor 準拠、コンテナ化、グレースフルシャットダウン、IaC
ソフトウェア開発プラクティスソフトウェアエンジニアリングのベストプラクティスとセキュア SDLCSWDEV-SOLID 原則、型安全性、エラー処理、入力検証
アクセシビリティアクセシビリティ(a11y)A11Y-WCAG 準拠、スクリーンリーダー対応、キーボード操作、ARIA
API 設計API 設計とコントラクトAPI-REST の規約、バージョニング、ページネーション、エラーレスポンス
信頼性信頼性とレジリエンスREL-エラー処理、タイムアウト、リトライ、サーキットブレーカー
可観測性モニタリングと診断OBS-構造化ログ、ヘルスチェック、メトリクス、トレーシング
パフォーマンスランタイムパフォーマンスPERF-N+1 クエリ、同期 I/O、キャッシュ、メモリリーク
コンプライアンス規制とライセンスのコンプライアンスCOMP-GDPR/CCPA、PII の保護、同意、データ保持、監査証跡
データ主権データ、技術、運用の主権SOV-データレジデンシー、国境を越える転送、ベンダーによる鍵管理、AI モデルの移植性、ID フェデレーション、サーキットブレーカー、監査証跡、データエクスポート
テストテスト品質とカバレッジTEST-テストカバレッジ、アサーション、テストの分離、命名
ドキュメントドキュメントと開発者エクスペリエンスDOC-JSDoc/docstring、マジックナンバー、TODO、コードコメント
国際化i18n とローカライゼーションI18N-ハードコードされた文字列、ロケール処理、通貨のフォーマット
依存関係の健全性サプライチェーンと依存関係DEPS-バージョンの固定、非推奨パッケージ、サプライチェーン
並行処理並行処理とスレッドセーフ性CONC-競合状態、上限のない並列処理、await の欠落
倫理とバイアスAI/ML の公平性と倫理ETHICS-属性に基づくロジック、ダークパターン、インクルーシブな表現
保守性コードの保守性と技術的負債MAINT-any 型、マジックナンバー、深いネスト、デッドコード、ファイルの長さ
エラー処理エラー処理とフォールトトレランスERR-空の catch ブロック、エラーハンドラーの欠落、エラーの握りつぶし
認証認証と認可AUTH-ハードコードされた認証情報、認証ミドルウェアの欠落、クエリパラメーター内のトークン
データベースデータベース設計とクエリ効率DB-SQL インジェクション、N+1 クエリ、コネクションプーリング、トランザクション
キャッシュキャッシュ戦略とデータの鮮度CACHE-上限のないキャッシュ、TTL の欠落、HTTP キャッシュヘッダーの欠如
構成管理構成とシークレット管理CFG-ハードコードされたシークレット、環境変数の欠落、構成の検証
後方互換性後方互換性とバージョニングCOMPAT-API のバージョニング、破壊的変更、レスポンスの一貫性
移植性プラットフォームの移植性とベンダー非依存性PORTA-OS 固有のパス、ベンダーロックイン、ハードコードされたホスト
UXユーザーエクスペリエンスとインターフェース品質UX-読み込み状態、エラーメッセージ、ページネーション、破壊的な操作
ログのプライバシーログのプライバシーとデータの秘匿化LOGPRIV-ログ内の PII、トークンの記録、構造化ログ、秘匿化
レート制限レート制限とスロットリングRATE-レート制限の欠如、上限のないクエリ、バックオフ戦略
CI/CDCI/CD パイプラインとデプロイの安全性CICD-テストインフラストラクチャ、lint の構成、Docker タグ、ビルドスクリプト
コード構造構造分析STRUCT-循環的複雑度、ネストの深さ、関数の長さ、デッドコード、型安全性
エージェントへの指示エージェント向け指示 Markdown の品質と安全性AGENT-指示の階層、競合の検出、安全でない上書き、スコープ、検証、ポリシーのガイダンス
AI コードの安全性AI 生成コードの品質とセキュリティAICS-プロンプトインジェクション、安全でない LLM 出力の処理、デバッグ用のデフォルト設定、検証の欠落、AI レスポンスの安全でないデシリアライズ
フレームワークの安全性フレームワーク固有のセキュリティとベストプラクティスFW-React のフックの順序、Express のミドルウェアチェーン、Next.js の SSR/SSG の落とし穴、Angular/Vue のライフサイクルパターン、Django/Flask/FastAPI の安全性、Spring Boot のセキュリティ、ASP.NET Core の認証と CORS、Go Gin/Echo/Fiber のパターン
IaC セキュリティInfrastructure as CodeIAC-Terraform、Bicep、ARM テンプレートの設定ミス、ハードコードされたシークレット、暗号化の欠落、過度に許可的なネットワーク/IAM ルール
セキュリティ全般的なセキュリティ態勢SEC-包括的なセキュリティ評価 — 安全でないデータフロー、脆弱な暗号方式、安全でないデシリアライズ
ハルシネーション検出AI がハルシネーションした API とインポートの検証HALLU-AI コード生成ツールが生成した、ハルシネーションによる API、捏造されたインポート、存在しないモジュールを検出します
意図との整合性コードとコメントの整合性およびスタブの検出INTENT-明示された意図と実装の不一致、プレースホルダーのスタブ、TODO のみの関数を検出します
API コントラクト準拠API 設計と REST のベストプラクティスAPI-API エンドポイントの入力検証、REST 準拠、リクエストとレスポンスのコントラクトの一貫性
複数ターンの一貫性コードの整合性と一貫性COH-自己矛盾するパターン、重複した定義、デッドコード、一貫性のない命名
モデルフィンガープリント検出AI コードの来歴とモデルの特定MFPR-特定の AI コード生成ツールに特徴的なスタイル上のフィンガープリントを検出します
過剰なエンジニアリングシンプルさと実用性OVER-不要な抽象化、過剰なラッパー、早すぎる一般化、複雑すぎるパターン
ロジックレビュー意味上の正しさとロジックの整合性LOGIC-逆転した条件、デッドコード、名前と処理内容の不一致、オフバイワンエラー、不完全な制御フロー
誤検知レビュー誤検知の検出と検出結果の正確性FPR-パターンベースの検出結果をレビューして誤検知を特定するメタ判定者:文字列リテラルのコンテキスト、コメント/docstring との一致、テスト用の足場、IaC テンプレートのゲート条件

仕組み

審査システムは、次の3層で動作します。

  1. パターンベースの分析 — すべてのツール(evaluate_code、evaluate_code_single_judge、evaluate_project、evaluate_diff)は、正規表現によるパターンマッチングを使ったヒューリスティック分析で、一般的なアンチパターンを検出します。この層は即座に実行され、決定論的で、外部 API を一切呼び出さず、完全にオフラインで動作します。

  2. AST ベースの構造分析 — コード構造審査員(STRUCT-* ルール)は、実際の抽象構文木(AST)解析を使い、循環的複雑度、ネストの深さ、関数の長さ、パラメーター数、デッドコード、型安全性を、正規表現では実現できない精度で測定します。サポート対象のすべての言語 — TypeScript、JavaScript、Python、Rust、Go、Java、C#、C++ — は、tree-sitter WASM 文法(WebAssembly にコンパイルされた実際の構文木をプロセス内で解析し、ネイティブ依存関係は不要)を介して解析されます。WASM 文法を利用できない場合のフォールバックとして、スコープ追跡型の構造パーサーも用意されています。外部 AST サーバーは不要です。

  3. LLM による詳細分析(プロンプト) — サーバーは MCP プロンプト(例:judge-data-security、judge-cybersecurity)を公開し、各審査員の専門家としてのペルソナをシステムプロンプトとして提供します。LLM ベースのクライアント(Copilot、Claude、Cursor など)で使用すると、ホスト側の LLM が、静的パターンでは検出できない、より深く文脈を考慮した確率的分析を実行します。ここで、各審査員の systemPrompt が活用されます。Judges 自体は LLM を呼び出しませんが、AI アシスタントが45人の専門レビュー担当者として機能するための専門的な基準を提供します。


設計段階から組み合わせ可能

Judges Panel は二層型のレビューシステムです。パターンおよび AST 分析を行う、即座に実行できる決定論的なツール(オフラインで動作し、API キーは不要)に加え、AI クライアントに接続すると LLM による詳細分析を可能にする、45種類の専門家ペルソナを持つ MCP プロンプトを提供します。CVE スキャナーやリンターを目指しているわけではありません。そうした機能は、AI エージェントが Judges と併せてオーケストレーションできる、専用の MCP サーバーに任せるべきものです。

組み込みの AST 分析

別の AST MCP サーバーを推奨していた以前のバージョンとは異なり、Judges Panel には実際の AST ベースの構造分析が標準で含まれています。

  • TypeScript、JavaScript、Python、Rust、Go、Java、C#、C++ — 統合されたtree-sitter WASM エンジンで解析し、完全な構文木分析(関数、複雑度、ネスト、デッドコード、型安全性)を行います。WASM 文法を利用できない場合は、スコープ追跡型の構造パーサーにフォールバックします。

コード構造審査員(STRUCT-*)は、これらのパーサーを使って次の項目を正確に測定します。

ルール指標しきい値
STRUCT-001循環的複雑度関数あたり > 10(高)
STRUCT-002ネストの深さ> 4レベル(中)
STRUCT-003関数の長さ> 50行(中)
STRUCT-004パラメーター数> 5個(中)
STRUCT-005デッドコード到達不能な文(低)
STRUCT-006弱い型any、dynamic、Object、interface{}、unsafe(中)
STRUCT-007ファイルの複雑度循環的複雑度の合計 > 40(高)
STRUCT-008極端な複雑度関数あたり > 20(重大)
STRUCT-009極端なパラメーター数> 8個(高)
STRUCT-010極端に長い関数> 150行(高)
推奨 MCP スタック

AI コーディングアシスタントが複数の MCP サーバーに接続すると、それぞれが専門分野を担当します。

┌─────────────────────────────────────────────────────────┐
│                   AI Coding Assistant                   │
│              (Claude, Copilot, Cursor, etc.)            │
└──────┬──────────────────┬──────────┬───────────────────┘
       │                  │          │
       ▼                  ▼          ▼
  ┌──────────────┐  ┌────────┐  ┌────────┐
  │   Judges     │  │  CVE / │  │ Linter │
  │   Panel      │  │  SBOM  │  │ Server │
  │ ─────────────│  └────────┘  └────────┘
  │ 44 Heuristic │   Vuln DB     Style &
  │   judges     │   scanning    correctness
  │ + AST judge  │
  └──────────────┘
   Patterns +
   structural
   analysis
レイヤー機能MCP サーバーの例
審査パネル45 名の審査員による品質ゲート — セキュリティパターン、AST 分析、コスト、スケーラビリティ、アクセシビリティ、コンプライアンス、主権、倫理、依存関係の健全性、エージェントの指示ガバナンス、AI コードの安全性、フレームワークの安全性このサーバー
CVE / SBOMライブデータベースに対する脆弱性スキャン — 既知の CVE、ライセンスリスク、サプライチェーンOSV、Snyk、Trivy、Grype MCP サーバー
リンティング言語固有のスタイルおよび正確性のルールESLint、Ruff、Clippy MCP サーバー
ランタイムプロファイリング実行中のコードのメモリ、CPU、レイテンシの測定カスタムのプロファイリング MCP サーバー
実際の利用方法

AI アシスタントに 「このコードは本番環境で使える状態ですか?」 と尋ねると、エージェントは次のことができます。

  1. 審査パネル → ハードコードされたシークレット、エラーハンドリングの不足、N+1 クエリ、アクセシビリティの不足、コンプライアンス上の問題をスキャンし、さらに 循環的複雑度を分析し、デッドコードを検出し、AST を使って深くネストした関数を特定します
  2. CVE サーバー → package.json 内のすべての依存関係について、既知の脆弱性がないか確認します
  3. リンターサーバー → チームのスタイルルールを適用し、言語固有の注意点を検出します

各サーバーは構造化された検出結果を返します。AI はすべての結果を統合し、実行可能なレビューを 1 つにまとめます。1 つのサーバーですべてを担う必要はありません。


MCP ツール

evaluate_v2

リードエンジニア/アーキテクトレベルのレビューに近づけ、フィードバックの品質を高めるために設計された V2 コンテキスト対応の審査評価 を実行します。

  • ポリシープロファイルの調整(default、startup、regulated、healthcare、fintech、public-sector)
  • コンテキストの取り込み(アーキテクチャのメモ、制約、標準、既知のリスク、データ境界モデル)
  • ランタイムのエビデンスフック(テスト、カバレッジ、レイテンシ、エラー率、脆弱性の件数)
  • 審査員/ドメイン別の専門的なフィードバックの集約
  • 信頼度スコアリングと不確実性の明示的な報告

次のモードに対応しています。

  • コードモード:code + language
  • プロジェクトモード:files[]
パラメーター型必須説明
codestring条件付き単一ファイルモードのソースコード
languagestring条件付き単一ファイルモードのプログラミング言語
filesarray条件付きプロジェクトモード用の { path, content, language }[]
contextstringいいえ高レベルのレビューコンテキスト
includeAstFindingsbooleanいいえAST/コード構造の検出結果を含めます(デフォルト:true)
minConfidencenumberいいえ含める検出結果の最小信頼度(0~1、デフォルト:0)
policyProfileenumいいえdefault、startup、regulated、healthcare、fintech、public-sector
evaluationContextobjectいいえアーキテクチャ/制約に関する構造化コンテキスト
evidenceobjectいいえ信頼度調整に用いるランタイム/運用上のエビデンス
evaluate_app_builder_flow

技術系および非技術系の関係者向けに、3 ステップのアプリビルダーワークフローを実行します。

  1. 審査パネルによるレビュー(コード/プロジェクト/差分)
  2. 上位リスクを平易な言葉で説明
  3. AI で修正可能な P0/P1 の抽出を含む、優先順位付けされた修正タスク

対応モード:

  • コードモード:code + language
  • プロジェクトモード:files[]
  • 差分モード:code + language + changedLines[]
パラメーター型必須説明
codestring条件付きソース全体の内容(コード/差分モード)
languagestring条件付きプログラミング言語(コード/差分モード)
filesarray条件付きプロジェクトモード用の { path, content, language }[]
changedLinesnumber[]いいえ差分モード用の変更行(1 始まり)
contextstringいいえ任意のビジネス/技術コンテキスト
maxFindingsnumberいいえ翻訳する上位指摘事項の最大数(デフォルト:10)
maxTasksnumberいいえ生成するタスクの最大数(デフォルト:20)
includeAstFindingsbooleanいいえAST/コード構造に関する指摘事項を含める(デフォルト:true)
minConfidencenumberいいえ含める指摘事項の最低信頼度(0~1、デフォルト:0)
evaluate_public_repo_report

公開リポジトリの URL をクローンし、対象となるソースファイルすべてに対して審査パネル全体を実行して、統合された Markdown レポートを生成します。

パラメーター型必須説明
repoUrlstringはい公開リポジトリの URL(https://...)
branchstringいいえ任意のブランチ名
outputPathstringいいえレポートの Markdown を書き込む任意のパス
maxFilesnumberいいえ解析するファイルの最大数(デフォルト:600)
maxFileBytesnumberいいえファイルサイズの上限(バイト単位、デフォルト:300000)
maxFindingsInReportnumberいいえ出力に含める詳細な指摘事項の最大数(デフォルト:150)
credentialModestringいいえ認証情報の検出モード:standard(デフォルト)または strict
includeAstFindingsbooleanいいえAST/コード構造に関する指摘事項を含める(デフォルト:true)
minConfidencenumberいいえ含める指摘事項の最低信頼度(0~1、デフォルト:0)
enableMustFixGatebooleanいいえ信頼度の高い危険な指摘事項に対する必須修正ゲートの概要を有効にする(デフォルト:false)
mustFixMinConfidencenumberいいえ必須修正ゲートを作動させる信頼度のしきい値(0~1、デフォルト:0.85)
mustFixDangerousRulePrefixesstring[]いいえゲート照合に使用する任意の危険ルールの接頭辞(例:AUTH、CYBER、DATA)
keepClonebooleanいいえ確認用にクローンしたリポジトリをディスク上に保持する

簡単な例

CLI からレポートを生成します。

npm run report:public-repo -- --repoUrl https://github.com/microsoft/vscode --output reports/vscode-judges-report.md

# stricter credential-signal mode (optional)
npm run report:public-repo -- --repoUrl https://github.com/openclaw/openclaw --credentialMode strict --output reports/openclaw-judges-report-strict.md

# judge findings only (exclude AST/code-structure findings)
npm run report:public-repo -- --repoUrl https://github.com/openclaw/openclaw --includeAstFindings false --output reports/openclaw-judges-report-no-ast.md

# show only findings at 80%+ confidence
npm run report:public-repo -- --repoUrl https://github.com/openclaw/openclaw --minConfidence 0.8 --output reports/openclaw-judges-report-high-confidence.md

# include must-fix gate summary in the generated report
npm run report:public-repo -- --repoUrl https://github.com/openclaw/openclaw --enableMustFixGate true --mustFixMinConfidence 0.9 --mustFixDangerousPrefix AUTH --mustFixDangerousPrefix CYBER --output reports/openclaw-judges-report-mustfix.md

# opinionated quick-start mode (recommended first run)
npm run report:quickstart -- --repoUrl https://github.com/openclaw/openclaw --output reports/openclaw-quickstart.md

MCP クライアントから呼び出します。

{
  "tool": "evaluate_public_repo_report",
  "arguments": {
    "repoUrl": "https://github.com/microsoft/vscode",
    "branch": "main",
    "maxFiles": 400,
    "maxFindingsInReport": 120,
    "credentialMode": "strict",
    "includeAstFindings": false,
    "minConfidence": 0.8,
    "enableMustFixGate": true,
    "mustFixMinConfidence": 0.9,
    "mustFixDangerousRulePrefixes": ["AUTH", "CYBER", "DATA"],
    "outputPath": "reports/vscode-judges-report.md"
  }
}

一般的な応答の概要には、次の内容が含まれます。

  • 全体の判定と平均スコア
  • 解析したファイル数と指摘事項の合計数
  • 審査員ごとのスコア表
  • 最もリスクの高い指摘事項と最もスコアの低いファイル

レポートのサンプル:

# Public Repository Full Judges Report

Generated from https://github.com/microsoft/vscode on 2026-02-21T12:00:00.000Z.

## Executive Summary
- Overall verdict: WARNING
- Average file score: 78/100
- Total findings: 412 (critical 3, high 29, medium 114, low 185, info 81)
get_judges

利用可能なすべての審査員と、それぞれの専門分野および説明を一覧表示します。

evaluate_code

コードを審査パネル全体に送信します。45 人の審査員全員が独立して評価し、統合判定を返します。

パラメーター型必須説明
codestringはい評価するソースコード
languagestringはいプログラミング言語(例:typescript、python)
contextstringいいえコードに関する追加コンテキスト
includeAstFindingsbooleanいいえAST/コード構造に関する指摘事項を含める(デフォルト:true)
minConfidencenumberいいえ含める指摘事項の最低信頼度(0~1、デフォルト:0)
configobjectいいえインライン設定(設定を参照)
evaluate_code_single_judge

特定のジャッジにコードを送信し、対象を絞ってレビューします。

パラメーター型必須説明
codestringはい評価するソースコード
languagestringはいプログラミング言語
judgeIdstringはい下記のジャッジ IDを参照してください
contextstringいいえ追加のコンテキスト
minConfidencenumberいいえ含める指摘の最低信頼度(0~1、デフォルト:0)
configobjectいいえインライン設定(設定を参照してください)
evaluate_project

プロジェクトレベルの分析のために、複数のファイルを送信します。45 個すべてのジャッジが各ファイルを評価し、さらにファイル間のアーキテクチャ分析によって、コードの重複、一貫性のないエラー処理、依存関係の循環を検出します。

パラメーター型必須説明
filesarrayはい{ path, content, language } オブジェクトの配列
contextstringいいえ任意のプロジェクトコンテキスト
includeAstFindingsbooleanいいえAST/コード構造に関する指摘を含めます(デフォルト:true)
minConfidencenumberいいえ含める指摘の最低信頼度(0~1、デフォルト:0)
configobjectいいえインライン設定(設定を参照してください)
evaluate_diff

コード差分の変更行のみを評価します。ファイル全体に対して45 個すべてのジャッジを実行し、指定した行に該当する指摘だけを絞り込みます。PR レビューや段階的な分析に最適です。

パラメーター型必須説明
codestringはいファイル全体の内容(変更後)
languagestringはいプログラミング言語
changedLinesnumber[]はい変更された行番号(1 始まり)
contextstringいいえ変更に関する任意のコンテキスト
includeAstFindingsbooleanいいえAST/コード構造に関する指摘を含めます(デフォルト:true)
minConfidencenumberいいえ含める指摘の最低信頼度(0~1、デフォルト:0)
configobjectいいえインライン設定(設定を参照してください)
analyze_dependencies

依存関係マニフェストファイルを分析し、サプライチェーンのリスク、バージョン固定の問題、タイポスクワッティングの兆候、依存関係の適切な管理状況を調べます。package.json、requirements.txt、Cargo.toml、go.mod、pom.xml、.csproj ファイルに対応しています。

パラメーター型必須説明
manifeststringはい依存関係マニフェストファイルの内容
manifestTypestringはいファイルの種類:package.json、requirements.txt など
contextstringいいえ任意のコンテキスト
evaluate_git_diff

git diff の変更行のみを評価します。ライブの git diff には repoPath、事前計算済みの unified diff には diffText を指定してください。

パラメーター型必須説明
repoPathstring条件付きgit リポジトリの絶対パス
basestringいいえ差分の比較対象となる git ref(デフォルト:HEAD~1)
diffTextstring条件付き事前計算済みの unified diff テキスト
confidenceFilternumberいいえ指摘に適用する最低信頼度のしきい値(0~1)
autoTunebooleanいいえフィードバックに基づく自動チューニングを適用します(デフォルト:false)
maxPromptCharsnumberいいえLLM プロンプトの最大文字数(デフォルト:100000、0 = 無制限)
configobjectいいえインライン設定
re_evaluate_with_context

以前の検出結果をコンテキストとして審査会を再実行し、反復的に改善します。異議の解決、開発者コンテキストの注入、重点領域によるフィルタリングに対応しています。

パラメーター型必須説明
codestringはい再評価するソースコード
languagestringはいプログラミング言語
disputedRuleIdsstring[]いいえ開発者が誤検知として異議を唱えているルール ID
acceptedRuleIdsstring[]いいえ開発者が受け入れるルール ID
developerContextstringいいえ開発者の意図に関する自由形式の説明
focusAreasstring[]いいえ重点的に確認する領域(例:["security"])
confidenceFilternumberいいえ信頼度の最小しきい値(デフォルト:0.5)
filePathstringいいえコンテキストを考慮した評価に使用するファイルパス
deepReviewbooleanいいえLLM の詳細レビュー用プロンプトセクションを含めるかどうか
relatedFilesarrayいいえファイル間のコンテキスト { path, snippet, relationship? }[]
maxPromptCharsnumberいいえLLM プロンプトの最大文字数(デフォルト:100000、0 = 無制限)
追加の MCP ツール
ツール説明
evaluate_fileディスクからファイルを読み込み、すべての審査員に提出します。拡張子から言語を自動検出します。
evaluate_code_streamingストリーミング評価 — 各審査員の完了時に、実行中の集計結果とともに個別の結果を返します。
evaluate_focused指定した審査員のみを実行します。初回の全体評価後に、特定の領域を再確認する際に使用します。
evaluate_batch1 回の呼び出しで複数のコードファイルを評価します。ファイルごとの判定と集計統計を返します。
evaluate_then_fixコードを評価し、自動修正に対応するすべての検出結果について修正パッチを自動生成します。
evaluate_with_progress長時間の評価で進捗コールバックを使用して評価します。
evaluate_policy_aware名前付きプロファイル(startup、regulated、healthcare、fintech、public-sector)を使用したポリシー対応評価を行います。
fix_codeコードを評価し、利用可能なすべての自動修正パッチを適用します。修正後のコードと適用済み/未適用の概要を返します。
explain_findingOWASP/CWE の参照情報、リスクの背景、修正方法のガイダンスとともに、検出結果を平易な言葉で説明します。
triage_finding検出結果のトリアージステータス(accepted-risk、deferred、wont-fix、false-positive)を、実施者情報とともに設定します。
record_feedback信頼度スコアの調整に使用するユーザーフィードバック(true-positive、false-positive、wont-fix)を記録します。
get_finding_stats検出結果のライフサイクル統計:未解決、修正済み、再発、トリアージ済みの件数と傾向を返します。
get_suppression_analytics抑制パターンを分析します:ルールごとの誤検知率、抑制率、自動抑制の候補。
list_triaged_findingsトリアージ済みの検出結果を一覧表示します。トリアージステータスによる絞り込みも可能です。
benchmark_gate品質しきい値に対してベンチマークを実行します。F1、適合率、再現率の指標とともに合否を返します。
run_benchmarkベンチマーク一式を実行し、審査員別、カテゴリ別、難易度別の内訳を返します。
scaffold_judge新しい審査員を追加するためのひな形ファイルを生成します:定義、評価器のスケルトン、登録処理。
scaffold_pluginカスタムルール、審査員、ライフサイクルフックを備えたプラグインのスターターテンプレートを生成します。
session_status現在の評価セッションの状態:評価回数、フレームワーク、判定履歴、安定性。
list_filesプロジェクトの調査用に、ワークスペース内のファイルとディレクトリを一覧表示します。
read_fileワークスペースからファイルの内容を読み込みます。
Judge IDs

data-security · cybersecurity · security · cost-effectiveness · scalability · cloud-readiness · software-practices · accessibility · api-design · api-contract · reliability · observability · performance · compliance · data-sovereignty · testing · documentation · internationalization · dependency-health · concurrency · ethics-bias · maintainability · error-handling · authentication · database · caching · configuration-management · backwards-compatibility · portability · ux · logging-privacy · rate-limiting · ci-cd · code-structure · agent-instructions · ai-code-safety · framework-safety · iac-security · hallucination-detection · intent-alignment · multi-turn-coherence · model-fingerprint · over-engineering · logic-review · false-positive-review


MCP プロンプト

各判定器には、LLM を活用した詳細な分析用のプロンプトが用意されています。

プロンプト説明
judge-data-securityデータセキュリティの詳細なレビュー
judge-cybersecurityサイバーセキュリティの詳細なレビュー
judge-cost-effectivenessコスト最適化の詳細なレビュー
judge-scalabilityスケーラビリティの詳細なレビュー
judge-cloud-readinessクラウド対応状況の詳細なレビュー
judge-software-practicesソフトウェアプラクティスの詳細なレビュー
judge-accessibilityアクセシビリティ/WCAG の詳細なレビュー
judge-api-designAPI 設計の詳細なレビュー
judge-reliability信頼性とレジリエンスの詳細なレビュー
judge-observability可観測性とモニタリングの詳細なレビュー
judge-performanceパフォーマンス最適化の詳細なレビュー
judge-compliance規制コンプライアンスの詳細なレビュー
judge-data-sovereigntyデータ、技術、運用の主権に関する詳細なレビュー
judge-testingテスト品質の詳細なレビュー
judge-documentationドキュメント品質の詳細なレビュー
judge-internationalizationi18n の詳細なレビュー
judge-dependency-health依存関係の健全性に関する詳細なレビュー
judge-concurrency並行処理と非同期処理の安全性に関する詳細なレビュー
judge-ethics-bias倫理とバイアスに関する詳細なレビュー
judge-maintainability保守性と技術的負債に関する詳細なレビュー
judge-error-handlingエラー処理の詳細なレビュー
judge-authentication認証と認可の詳細なレビュー
judge-databaseデータベース設計とクエリの詳細なレビュー
judge-cachingキャッシュ戦略の詳細なレビュー
judge-configuration-management設定とシークレットの詳細なレビュー
judge-backwards-compatibility下位互換性の詳細なレビュー
judge-portabilityプラットフォーム間の移植性に関する詳細なレビュー
judge-uxユーザーエクスペリエンスの詳細なレビュー
judge-logging-privacyログのプライバシーに関する詳細なレビュー
judge-rate-limitingレート制限の詳細なレビュー
judge-ci-cdCI/CD パイプラインの詳細なレビュー
judge-code-structureAST に基づくコード構造の詳細な分析
judge-agent-instructionsエージェント向け指示の Markdown の品質と安全性に関する詳細なレビュー
judge-ai-code-safetyAI 生成コードのリスクに関する詳細なレビュー:プロンプトインジェクション、安全でない LLM 出力の処理、デバッグ用のデフォルト設定、検証の欠如
judge-framework-safetyフレームワーク固有の安全性に関する詳細なレビュー:React hooks、Express middleware、Next.js SSR/SSG、Angular/Vue、Django、Spring Boot、ASP.NET Core、Flask、FastAPI、Go フレームワーク
judge-iac-securityInfrastructure as Code のセキュリティに関する詳細なレビュー:Terraform、Bicep、ARM template の設定ミス
judge-securityセキュリティ体制全般に関する詳細なレビュー:安全でないデータフロー、脆弱な暗号化、安全でないデシリアライズ
judge-hallucination-detectionAI が幻覚した API、捏造されたインポート、存在しないモジュールに関する詳細なレビュー
judge-intent-alignmentコードとコメントの整合性、スタブの検出、プレースホルダー関数に関する詳細なレビュー
judge-api-contractAPI コントラクトへの準拠、入力検証、REST のベストプラクティスに関する詳細なレビュー
judge-multi-turn-coherenceコードの一貫性に関する詳細なレビュー:自己矛盾、重複した定義、デッドコード
judge-model-fingerprintAI コードの出所とモデル帰属フィンガープリントに関する詳細なレビュー
judge-over-engineering不要な抽象化、過剰なラッパー、早すぎる一般化に関する詳細なレビュー
judge-logic-reviewAI 生成コードのロジックの正しさ、意味の不一致、デッドコードに関する詳細なレビュー
judge-false-positive-reviewパターンベースの検出結果について、誤検出の検出と精度を確認するメタ判定レビュー

設定

評価動作をカスタマイズするには、プロジェクトのルートに .judgesrc.json(または .judgesrc)ファイルを作成します。コピーしてすぐに使えるテンプレートについては .judgesrc.example.json を、IDE の完全な自動補完については JSON Schema を参照してください。

{
  "$schema": "https://github.com/KevinRabun/judges/blob/main/judgesrc.schema.json",
  "preset": "strict",
  "minSeverity": "medium",
  "disabledRules": ["COST-*", "I18N-001"],
  "disabledJudges": ["accessibility", "ethics-bias"],
  "ruleOverrides": {
    "SEC-003": { "severity": "critical" },
    "DOC-*": { "disabled": true }
  },
  "languages": ["typescript", "python"],
  "format": "text",
  "failOnFindings": false,
  "baseline": "",
  "regulatoryScope": ["GDPR", "PCI-DSS", "SOC2"],
  "consensusThreshold": 0.7
}
フィールド型デフォルト説明
$schemastring—IDE の検証に使用する JSON Schema の URL
presetstring—名前付きプリセット(22 個の選択肢すべてについては 名前付きプリセット を参照)
minSeveritystring"info"報告する最小重大度:critical · high · medium · low · info
disabledRulesstring[][]抑制するルール ID またはプレフィックスのワイルドカード(例:"COST-*", "SEC-003")
disabledJudgesstring[][]完全にスキップする Judge ID(例:"cost-effectiveness")
ruleOverridesobject{}ルール ID またはワイルドカードをキーとするルールごとの上書き — { disabled?: boolean, severity?: string }
languagesstring[][]分析対象を特定の言語に限定します(空の場合はすべて)
formatstring"text"デフォルトの出力形式:text · json · sarif · markdown · html · pdf · junit · codeclimate · github-actions
failOnFindingsbooleanfalse判定が fail の場合に終了コード 1 を返します — CI のゲートに便利です
baselinestring""ベースライン JSON ファイルへのパス — 一致する検出結果は抑制されます
pluginsstring[][]カスタム Judge をエクスポートするプラグインモジュールの指定子(npm パッケージまたは相対パス)
judgeWeightsobject{}集計スコアリングにおける Judge ごとの重み付き重要度(例:{ "cybersecurity": 2.0 })
failOnScoreBelownumber—実行を合格とするための最低スコア(0–100)。failOnFindings を補完します
regulatoryScopestring[]—対象とする規制フレームワーク(例:["GDPR", "PCI-DSS"])。対象外のフレームワークのみを根拠として挙げる検出結果は抑制されます。対応する値は judges list --frameworks を実行して確認してください。
consensusThresholdnumber—合意による抑制(0–1)。この割合の Judge が検出結果ゼロを報告した場合、少数派の検出結果は抑制されます。CI では 0.7 を推奨します。
escalationThresholdnumber—これを下回る信頼度の検出結果に、人間によるレビューが必要であることを示すフラグを付けます
overridesarray[]パスを対象とした設定の上書き(例:[{ "files": "**/*.test.ts", "disabledJudges": ["documentation"] }])
customRulesarray[]ビジネスロジックの検証に使用する、ユーザー定義の正規表現ベースのルール

すべての評価ツール(CLI と MCP)は、--config <path> またはインラインの config パラメーターを使って、同じ設定フィールドを指定できます。


高度な機能

インライン抑制

コメントディレクティブを使って、ソースコード内で特定の検出結果を直接抑制できます。

const x = eval(input); // judges-ignore SEC-001
// judges-ignore-next-line CYBER-002
const y = dangerousOperation();
// judges-file-ignore DOC-*    ← suppress globally for this file

対応するコメント形式://、#、/* */。カンマ区切りのルール ID とワイルドカード(*、SEC-*)に対応しています。

自動修正パッチ

一部の検出結果には、patch フィールドに機械的に適用できるパッチが含まれます。

パターン自動修正
new Buffer(x)→ Buffer.from(x)
http:// URL(localhost 以外)→ https://
Math.random()→ crypto.randomUUID()

パッチには、自動適用に必要な oldText、newText、startLine、endLine が含まれます。

評価器をまたいだ重複排除

複数の Judge が同じ問題を指摘した場合(例:Data Security と Cybersecurity の両方が15行目の SQL インジェクションを検出した場合)、検出結果は自動的に重複排除されます。最も重大度の高い検出結果が採用され、説明には相互参照(例:「次の評価器でも特定されました:CYBER-003」)が注記されます。

Human Focus Guide

すべてのトリビューナル評価には、人間のレビュアー向けに検出結果を3つのカテゴリに分類するhumanFocusGuideが含まれます。

カテゴリ説明使用するタイミング
✅ Trust信頼度が高く(≥80%)、AST/汚染の確認による裏付けがある検出結果そのまま対応します。自動分析による強力な証拠があります
🔍 Verify信頼度が低い、または不在に基づく検出結果判断に基づいて確認します。問題はプロジェクト内の別の場所にある可能性があります
🔦 Blind Spots自動分析では評価できない領域手動レビューの時間をここに集中させます

ブラインドスポットは、複雑な分岐ロジック、外部サービスの呼び出し、金額計算、PII の取り扱い、ステートマシン、複雑な正規表現など、コードの特性から検出されます。このガイドは、CLI のテキスト/Markdown 出力、JSON/SARIF 出力、GitHub Action のステップサマリーに表示されます。

規制の適用範囲

プロジェクトに適用する規制フレームワークを.judgesrcで設定します。

{ "regulatoryScope": ["GDPR", "PCI-DSS", "SOC2"] }

適用範囲外のフレームワークのみを参照する検出結果は抑制されます。規制への参照がない検出結果(一般的なコード品質に関するもの)は常に保持されます。judges list --frameworksを実行すると、サポートされている17のフレームワーク(GDPR、CCPA、HIPAA、PCI-DSS、SOC2、SOX、COPPA、FedRAMP、NIST、ISO27001、ePrivacy、DORA、NIS2、EU-AI-Act など)をすべて確認できます。

自己学習型の修正

LLM ベンチマークシステムは、誤検知率が高いジャッジに対して、精度を高める修正を自動生成します。修正はデータに基づく訂正で、プロンプトに組み込まれ、ベンチマークを重ねるごとに精度が向上します。

自己学習のループ:

  1. ベンチマークを実行 → アナライザーが適合率70%未満のジャッジを特定
  2. 対象を絞った修正を生成(例:「Judge ERR:フレームワークのエラーミドルウェアを備えたクリーンな Express コードを検出対象にしない」)
  3. 次のベンチマーク実行時に修正を読み込み → 適合率が向上
  4. judges codify-amendmentsを実行して、修正を配布パッケージに恒久的に組み込み
汚染フロー分析

エンジンはプロシージャ間の汚染追跡を行い、ユーザーが制御できるソース(例:req.body、process.env)から変換処理を経て、セキュリティ上重要なシンク(例:eval()、exec()、SQL クエリ)に至るまでデータを追跡します。汚染フローは、真陽性の検出結果の信頼度を高めるほか、サニタイズが検出された場合に誤検知を抑制するために使用されます。

良好なシグナルの検出

適切なプラクティスを示すコードには、スコアボーナスが加算されます(上限は+15)。

シグナルボーナス
パラメーター化クエリ+3
セキュリティヘッダー(helmet)+3
認証ミドルウェア(passport など)+3
適切なエラー処理+2
入力検証ライブラリ(zod、joi など)+2
レート制限+2
構造化ロギング(pino、winston)+2
CORS 設定+1
Strict Mode/strictNullChecks+1
テストパターン(describe/it/expect)+1
フレームワーク対応ルール

ジャッジは、Express、Django、Flask、FastAPI、Spring、ASP.NET、Rails など、フレームワーク固有の検出に対応しています。フレームワークのミドルウェア(例:helmet()、express-rate-limit、passport.authenticate())は緩和策として認識され、誤検知が減少します。

ファイル間のインポート解決

プロジェクトレベルの分析では、ファイルをまたいでインポートを解決します。あるファイルが、プロジェクト内の別のファイルにあるセキュリティミドルウェアモジュールをインポートしている場合、セキュリティ制御の欠如に関する検出結果は、信頼度を下げる形で自動的に調整されます。


スコアリング

各ジャッジはコードを0~100で採点します。

重大度スコア減点
クリティカル−30ポイント
高−18ポイント
中−10ポイント
低−5ポイント
情報−2ポイント

判定ロジック:

  • FAIL — クリティカルな検出結果がある、またはスコアが60未満
  • WARNING — 高または中の検出結果がある、またはスコアが80未満
  • PASS — クリティカル、高、中の検出結果がなく、スコアが80以上

総合トリビューナルスコアは、45のジャッジすべての平均です。いずれかのジャッジが失敗すると、総合判定も失敗します。


プロジェクト構成

judges/
├── src/
│   ├── index.ts              # MCP server entry point — tools, prompts, transport
│   ├── api.ts                # Programmatic API entry point
│   ├── cli.ts                # CLI argument parser and command router
│   ├── types.ts              # TypeScript interfaces (Finding, JudgeEvaluation, etc.)
│   ├── config.ts             # .judgesrc configuration parser and validation
│   ├── errors.ts             # Custom error types (ConfigError, EvaluationError, ParseError)
│   ├── language-patterns.ts  # Multi-language regex pattern constants and helpers
│   ├── judge-registry.ts     # Unified JudgeRegistry — single source of truth for all judges
│   ├── plugins.ts            # Plugin API façade (delegates to JudgeRegistry)
│   ├── scoring.ts            # Confidence scoring and calibration
│   ├── dedup.ts              # Finding deduplication engine
│   ├── fingerprint.ts        # Finding fingerprint generation
│   ├── comparison.ts         # Tool comparison benchmark data
│   ├── cache.ts              # Evaluation result caching
│   ├── calibration.ts        # Confidence calibration from feedback data
│   ├── fix-history.ts        # Auto-fix application history tracking
│   ├── ast/                  # AST analysis engine (built-in, no external deps)
│   │   ├── index.ts          # analyzeStructure() — routes to correct parser
│   │   ├── types.ts          # FunctionInfo, CodeStructure interfaces
│   │   ├── tree-sitter-ast.ts    # Tree-sitter WASM parser (all 8 languages)
│   │   ├── structural-parser.ts  # Fallback scope-tracking parser
│   │   ├── cross-file-taint.ts   # Cross-file taint propagation analysis
│   │   └── taint-tracker.ts      # Single-file taint flow tracking
│   ├── evaluators/           # Analysis engine for each judge
│   │   ├── index.ts          # evaluateWithJudge(), evaluateWithTribunal(), evaluateProject(), etc.
│   │   ├── shared.ts         # Scoring, verdict logic, markdown formatters
│   │   └── *.ts              # One analyzer per judge (45 files)
│   ├── formatters/           # Output formatters
│   │   ├── sarif.ts              # SARIF 2.1.0 output
│   │   ├── html.ts               # Self-contained HTML report (dark/light theme, filters)
│   │   ├── junit.ts              # JUnit XML output (Jenkins, Azure DevOps, GitHub Actions)
│   │   ├── codeclimate.ts        # CodeClimate/GitLab Code Quality JSON
│   │   ├── diagnostics.ts        # Diagnostics formatter
│   │   └── badge.ts              # SVG and text badge generator
│   ├── commands/             # CLI subcommands
│   │   ├── init.ts               # Interactive project setup wizard
│   │   ├── fix.ts                # Auto-fix patch preview and application
│   │   ├── watch.ts              # Watch mode — re-evaluate on save
│   │   ├── report.ts             # Project-level local report
│   │   ├── hook.ts               # Pre-commit hook install/uninstall
│   │   ├── ci-templates.ts       # GitLab, Azure, Bitbucket CI templates
│   │   ├── diff.ts               # Evaluate unified diff (git diff)
│   │   ├── deps.ts               # Dependency supply-chain analysis
│   │   ├── baseline.ts           # Create baseline for finding suppression
│   │   ├── completions.ts        # Shell completions (bash/zsh/fish/PowerShell)
│   │   ├── docs.ts               # Per-judge rule documentation generator
│   │   ├── feedback.ts           # False-positive tracking & finding feedback
│   │   ├── benchmark.ts          # Detection accuracy benchmark suite
│   │   ├── rule.ts               # Custom rule authoring wizard
│   │   ├── language-packs.ts     # Language-specific rule pack presets
│   │   └── config-share.ts       # Shareable team/org configuration
│   ├── presets.ts            # Named evaluation presets (strict, lenient, security-only, …)
│   ├── patches/
│   │   └── index.ts              # 201 deterministic auto-fix patch rules
│   ├── tools/                # MCP tool registrations
│   │   ├── register.ts           # Tool registration orchestrator
│   │   ├── register-evaluation.ts    # Evaluation tools (evaluate_code, etc.)
│   │   ├── register-workflow.ts      # Workflow tools (app builder, reports, etc.)
│   │   ├── prompts.ts            # MCP prompt registrations (per-judge prompts)
│   │   └── schemas.ts            # Zod schemas for tool parameters
│   ├── reports/
│   │   └── public-repo-report.ts   # Public repo clone + full tribunal report generation
│   └── judges/               # Judge definitions (id, name, domain, system prompt)
│       ├── index.ts          # Side-effect imports + re-exports (JUDGES, getJudge, getJudgeSummaries)
│       └── *.ts              # One self-registering definition per judge (45 files)
├── scripts/
│   ├── generate-public-repo-report.ts  # Run: npm run report:public-repo -- --repoUrl <url>
│   ├── daily-popular-repo-autofix.ts   # Run: npm run automation:daily-popular
│   └── debug-fp.ts                     # Debug false-positive findings
├── examples/
│   ├── sample-vulnerable-api.ts  # Intentionally flawed code (triggers all judges)
│   ├── demo.ts                   # Run: npm run demo
│   └── quickstart.ts             # Quick-start evaluation example
├── tests/
│   ├── judges.test.ts            # Core judge evaluation tests
│   ├── negative.test.ts          # Negative / FP-avoidance tests
│   ├── subsystems.test.ts        # Subsystem integration tests
│   ├── extension-logic.test.ts   # VS Code extension logic tests
│   └── tool-routing.test.ts      # MCP tool routing tests
├── grammars/                 # Tree-sitter WASM grammar files
│   ├── tree-sitter-typescript.wasm
│   ├── tree-sitter-cpp.wasm
│   ├── tree-sitter-python.wasm
│   ├── tree-sitter-go.wasm
│   ├── tree-sitter-rust.wasm
│   ├── tree-sitter-java.wasm
│   └── tree-sitter-c_sharp.wasm
├── judgesrc.schema.json      # JSON Schema for .judgesrc config files
├── server.json               # MCP Registry manifest
├── package.json
├── tsconfig.json
└── README.md

スクリプト

コマンド説明
npm run buildTypeScript を dist/ にコンパイルします
npm run devウォッチモード — 保存時に再コンパイルします
npm testテストスイート全体を実行します
npm run demoサンプルの法廷デモを実行します
npm run report:public-repo -- --repoUrl <url>公開リポジトリの URL を対象に、法廷レポート全体を生成します
npm run report:quickstart -- --repoUrl <url>迅速な導入向けに、推奨される高シグナルのレポート設定で実行します
npm run automation:daily-popular毎日、入れ替わる人気リポジトリを最大 10 件分析し、リポジトリごとに最大 5 件の修正 PR を作成します
npm startMCP サーバーを起動します
npm run cleandist/ を削除します
judges init対話型のプロジェクトセットアップウィザード
judges fix <file>自動修正パッチをプレビューします(書き込むには --apply を追加します)
judges watch <dir>ウォッチモード — ファイルの保存時に再評価します
judges report <dir>ローカルディレクトリの法廷レポート全体を生成します
judges hook installGit のコミット前フックをインストールします
judges diffunified diff の変更行を評価します
judges depsサプライチェーンのリスクについて依存関係を分析します
judges baseline create検出結果を抑制するためのベースラインを作成します
judges ci-templatesCI パイプラインのテンプレートを生成します
judges docs各判定者のルールドキュメントを生成します
judges completions <shell>シェル補完スクリプト
judges feedback submit検出結果を真陽性、偽陽性、または修正しないとしてマークします
judges feedback stats偽陽性率の統計を表示します
judges benchmark run検出精度のベンチマークスイートを実行します
judges rule create対話型のカスタムルール作成ウィザード
judges rule listカスタム評価ルールを一覧表示します
judges pack list利用可能な言語パックを一覧表示します
judges config export設定を共有可能なパッケージとしてエクスポートします
judges config import <src>共有された設定をインポートします
judges compare他のコードレビュー ツールと判定者を比較します
judges listドメインと説明を含む 45 人の判定者をすべて一覧表示します
judges list --frameworksサポート対象の規制フレームワークと .judgesrc の使用方法を一覧表示します
judges codify-amendments自己学習型の修正内容を判定者のソースファイルに組み込みます

人気リポジトリの日次自動修正

このリポジトリには、.github/workflows/daily-popular-repo-autofix.yml にスケジュール済みワークフローが含まれています。このワークフローは次の処理を行います。

  • 人気リポジトリ 100 件以上のデフォルトプール(または手動で指定した対象)から、1 日あたり最大 10 件のリポジトリを選択します。
  • サポートされているソース言語を対象に、Judges の評価をすべて実行します。
  • 該当する検出件数を減らす、保守的な 1 行の修正のみを適用します。
  • Judges と対象リポジトリの両方を明記した PR を、リポジトリごとに最大 5 件作成します。
  • 公開リポジトリではない場合、または既存の GitHub 認証情報で PR を作成できない場合は、そのリポジトリをスキップします(追加の認証フローはありません)。
  • 実行時の上限として、1 日あたり 10 リポジトリ、リポジトリあたり 5 件の PR を厳守します。

各実行では、リポジトリごとのテレメトリを含む daily-autofix-summary.json(または SUMMARY_PATH)が出力されます。内容は次のとおりです。

  • runAggregate — 実行全体の簡潔な合計と、リポジトリ横断で優先度の高いルール
  • runAggregate.totalCandidatesDiscovered および runAggregate.totalCandidatesAfterLocationDedupe — 修正を試みる前に重複がどれだけ除去されたかを示します。
  • runAggregate.totalCandidatesAfterPriorityThreshold — 最低優先度スコアの適用後に残った候補
  • runAggregate.dedupeReductionPercent — 実行時の効率をすばやく把握するための、場所の重複排除による削減率
  • runAggregate.priorityThresholdReductionPercent — 重複排除後の最低優先度フィルタリングによる削減率
  • priorityRulePrefixesUsed — 優先順位付けに使用された危険なルールのプレフィックス
  • minPriorityScoreUsed — 候補の対象化に適用された最小の candidatePriorityScore
  • candidatesDiscovered、candidatesAfterLocationDedupe、candidatesAfterPriorityThreshold — 各フィルターステージ後のリポジトリごとの候補数
  • topPrioritizedRuleCounts — ランク付けされた候補内で最も多いルール ID
  • topPrioritizedCandidates — 優先順位の高い候補のサンプル(ルール、重大度、信頼度、ファイル、行、優先度スコア)

任意の実行時制御:

  • AUTOFIX_MIN_PRIORITY_SCORE — 重複排除後に必要となる候補の最小優先度スコア(デフォルト:0、無効)。

必須シークレット:

  • JUDGES_AUTOFIX_GH_TOKEN — 対象リポジトリのフォーク、プッシュ、PR 作成の権限を持つ GitHub トークン。

手動実行:

gh workflow run "Judges Daily Full-Run Autofix PRs" -f targetRepoUrl=https://github.com/owner/repo

プログラム API

Judges は MCP 経由だけでなく、ライブラリとしても利用できます。@kevinrabun/judges/api からインポートしてください。

import {
  evaluateCode,
  evaluateProject,
  evaluateCodeSingleJudge,
  getJudge,
  JUDGES,
  findingsToSarif,
} from "@kevinrabun/judges/api";

// Full tribunal evaluation
const verdict = evaluateCode("const x = eval(input);", "typescript");
console.log(verdict.overallScore, verdict.overallVerdict);

// Single judge
const result = evaluateCodeSingleJudge("cybersecurity", code, "typescript");

// SARIF output for CI integration
const sarif = findingsToSarif(verdict.evaluations.flatMap(e => e.findings));
パッケージのエクスポート
エントリーポイント説明
@kevinrabun/judges/apiプログラム API(デフォルト)
@kevinrabun/judges/serverMCP サーバーのエントリーポイント
@kevinrabun/judges/sarifSARIF 2.1.0 フォーマッター
@kevinrabun/judges/junitJUnit XML フォーマッター
@kevinrabun/judges/codeclimateCodeClimate/GitLab Code Quality JSON
@kevinrabun/judges/badgeSVG およびテキストバッジの生成ツール
@kevinrabun/judges/diagnostics診断情報フォーマッター
@kevinrabun/judges/pluginsプラグインシステム API(プラグインガイドを参照)
@kevinrabun/judges/fingerprint検出結果のフィンガープリントユーティリティ
@kevinrabun/judges/comparisonツール比較ベンチマーク
SARIF 出力

検出結果を SARIF 2.1.0 に変換して、GitHub Code Scanning、Azure DevOps、その他の CI/CD ツールで利用できます。

import { findingsToSarif, evaluationToSarif, verdictToSarif } from "@kevinrabun/judges/sarif";

const sarif = verdictToSarif(verdict, "src/app.ts");
fs.writeFileSync("results.sarif", JSON.stringify(sarif, null, 2));

カスタムエラー型

スローされるすべてのエラーは JudgesError を継承し、機械可読な code プロパティを持ちます。

エラークラスコード発生条件
ConfigErrorJUDGES_CONFIG_INVALID.judgesrc の形式が不正、またはインライン設定が無効
EvaluationErrorJUDGES_EVALUATION_FAILED不明なジャッジ、アナライザーのクラッシュ
ParseErrorJUDGES_PARSE_FAILEDソースコードまたは入力データを解析できない
import { ConfigError, EvaluationError } from "@kevinrabun/judges/api";
try {
  evaluateCode(code, "typescript");
} catch (e) {
  if (e instanceof ConfigError) console.error("Config issue:", e.code);
}

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。