rejudge について
Rejudgeは、複数のレビュー結果をまとめたい開発者向けのレビュー・調査ワークフローです。複数のレビュアーが個別に調査し、判定役が1つの結果を返します。既定では読み取り専用です。
主な機能
- 01複数のレビュアーによる個別調査
- 02判定役による結果の集約
- 03履歴確認とレビューの継続
- 04既定で読み取り専用のレビュー
- 05ツールまたはCLIから起動
活用シーン
- 01コード変更への複数の見解の収集
- 02会話内で既存レビューを継続
- 03複数モデルによる開発上の課題調査
MCP 対応
Piでは`rejudge`ツールから呼び出せます。それ以外の環境ではCLIを使います。MCPサーバーではありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syabro/ rejudge --skill rejudgeインストール後、Claude Code で/rejudgeを入力して読み込まれたか確認します。
詳細
Rejudge
1 回の呼び出しにつき、レビュー結果は 1 件です。複数のレビュアーが個別に質問を調査し、判定者が 1 つの回答を返します。2 回実行したい場合は、スキルを 2 回呼び出してください。1 つのモデルから外部の意見を 1 件だけ得たい場合は、代わりに ask-agent-cli を使用してください。
実行場所に応じて方法を選択してください — まずはこちら
- Pi 内 —
rejudgeツールが利用可能な場合は、履歴、新しいレビュー、追加質問にそのツールを使用してください。CLI は実行しないでください。別プロセスでパネル全体が繰り返されます。呼び出す前に、以下の「レビューの検索または続行」を適用してください。 - その他の場所(Claude Code、または
rejudgeツールのないハーネス)— 以下の説明に従って CLI を実行してください。
利用可能なツールに rejudge がある場合は、それを使用してください。CLI に切り替えるのは、ツールが実際に公開されていない場合に限ります。
レビューの検索または続行
可能な場合は、呼び出し元の会話の ID を渡してください。ツールでは conversationId、CLI では --conversation-id <id> を使用します。これはホストの会話 ID であり、Rejudge の実行 ID ではありません。Pi のシェルツールでは PI_SESSION_ID から取得できます。それ以外のホストでは、ホストから提供されるセッション ID を使用してください。ホストが ID を公開していない場合は、作り出さないでください。ID がなくても受け付けられます。
この会話で該当するレビューの実行 ID がすでに分かっている場合は、resumeRunId または --resume <id> を使って直接続行してください。履歴を検索する必要はありません。
新しい実行を作成する前に、会話の圧縮によって以前の実行 ID が失われている可能性がある場合も含め、履歴を確認してください。
- ツール:
{ "history": true, "conversationId": "<host-conversation-id>" }。質問やその他のレビュー入力は指定しません。 - CLI:
rejudge --history --conversation-id <host-conversation-id>。 - 会話 ID を利用できない場合は、その引数を省略してください。ID がない場合、または該当する履歴がない場合は、その理由が結果に示され、現在のディレクトリから直近 5 件までの実行が表示されます。兄弟ワークツリーは対象外です。
意味に基づいて選択し、ユーザーに実行を選ばせないでください。レビュー対象のコードへの追加変更は、そのレビューを続行します。個別の調査を含む独立した質問は、新しい実行を開始します。再開に失敗しても、黙って最初からやり直してよいわけではありません。
別の会話の実行を続行することは、強く推奨されません。独立した依頼に無関係なコンテキストが混ざる可能性があります。返された会話 ID、日付、タイトル、質問のプレビューを確認してください。フォールバックリストは実行を見つけるためのものであり、最新の実行を自動的に再利用するためのものではありません。所有者が分からないからといって、その実行がこの会話に属するとは限りません。
履歴の検索ではモデルは呼び出されず、モデルの設定も必要ありません。結果には、最後に成功したリクエストの順に最大 5 件の実行が表示され、該当件数の合計も示されます。2000 文字を超える質問には切り詰められたことが表示されます。全文は保存済みの実行マニフェストに残ります。
CLI
サンドボックス内で rejudge CLI を実行してはなりません。サンドボックスによって、ユーザーが保存したプロバイダーへのログイン情報が隠されることがあります。
Codex では、必ず TTY で exec_command を使用して Rejudge CLI を実行し、終了するまで同じセッションを write_stdin で接続したままにしてください。終了コードが返るまで待ちます。functions.exec または functions.wait を使用してはなりません。また、プロセスが終了する前に結果ファイルを調べてはなりません。
rejudge はインストール済みのコマンドで、どのプロジェクトからでも実行できます。現在のディレクトリによって、設定の検索場所とレビュアーファイルへのアクセス先が決まります。ソースチェックアウトから Rejudge を開発する場合は、新規チェックアウト後、pull 後、または src/ の変更後に、そのチェックアウトのルートで just build-cli を実行してください。
前提条件
- 設定:Rejudge は、
<cwd>から親フォルダーへ順にたどり、最も近い.rejudge/config.jsonを読み込みます。見つからない場合は、~/.config/rejudge/config.json(または$XDG_CONFIG_HOME/rejudge/config.json)を読み込みます。このファイルにはreviewersとjudgeのモデル ID が含まれます。プロジェクト設定はグローバル設定より優先されるため、結果を信頼する前にconfig: <path>の行を確認してください。debugLog: trueの場合、ログは見つかったプロジェクト設定の隣にある.rejudge/logs/に保存されます(グローバル設定が使われる場合は<cwd>内)。終了コードが 0 以外の場合は、stderr に出力された理由を報告してください。モデルを推測してはいけません。 - キー:環境内で
OPENCODE_API_KEYをエクスポートするか、Pi に保存された認証情報(pi login)を使用します。キーを埋め込んではいけません。キーがない場合、すぐには失敗しません。すべてのエージェントが実行開始から 1、2 分後に失敗するため、長時間の実行前に認証を確認してください。
デフォルトでは読み取り専用
Rejudge は依頼を受けて実行します。レビュアーは read/grep/find/ls を使って読み取り専用で動作し、judge に与えられるのは ask_panel のみです。レビューでは、レビュー対象の cwd 内のファイルを変更したり、シェルコマンドを実行したりできません。--unsafe/--full を渡してはいけません。レビュアーに書き込み/bash の権限を与えるオプションです。
起動 — フォアグラウンドでブロッキング実行(tmux/バックグラウンド実行は禁止)— CLI のみ
(Pi 内にいる場合は、このセクション全体をスキップして、代わりに rejudge ツールを呼び出してください。)
フォアグラウンドで実行し、完了するまで待ってください。tmux、デタッチされたセッション、ポーリング、バックグラウンドジョブは使わないでください。進捗は stderr に、レビュー結果は stdout に出力されます。
ステップ 1 — クォート付きヒアドキュメントでプロンプトを stdin に渡す
CLI は stdin からプロンプトを読み取ります。一時ファイルは不要です。何もエスケープまたは展開されないよう、クォート付きヒアドキュメント(<<'EOF')を使ってください。$(...)、クォートなしのヒアドキュメント、インライン引数でプロンプトを渡してはいけません。レビュー対象のプロジェクトルートから実行してください(cwd は設定の検索とパネルエージェントのツールの両方に使われます)。
# デフォルトでは読み取り専用 — --unsafe や --full を追加しないでください(書き込み/bash が有効になります)
rejudge --conversation-id <host-conversation-id> > /tmp/rejudge-<id>.md <<'EOF'
... 完全なプロンプト本文を複数行で記載し、エスケープしない ...
EOF
echo "exit=$?"
フォローアップでは、コマンドに --resume <run-id> を追加してください。ホスト ID が利用できない場合に限り --conversation-id を省略してください。resume を使うと、実行時の元の会話 ID が保持されます。
- stdin(ヒアドキュメント)=プロンプト、
> /tmp/rejudge-<id>.md=結果の出力先です。 - stdout(
/tmp/rejudge-<id>.md)=レビュー結果です。 - stderr =進捗とエラーです。
- 終了ステータス:
0=成功、0 以外 =失敗(理由は stderr に出力されます)。
(プロンプトがすでにファイルにある場合は -f <file> も使えます。stdin は一時ファイルを使わない方法です。)
実際の実行には数分かかります(パネルは xhigh で実行されます)。そのため、bash コマンド自体には余裕のあるタイムアウトを設定してください(タイムアウトは呼び出しごとに適用されます)。時間切れで実行が強制終了された場合は、その旨を報告して再実行してください。バックグラウンド実行は決して行わないでください。
プロンプトがタスクです。Rejudge のオーケストレーションではありません
Rejudge はレビュアーと judge をすでに起動します。プロンプトはタスクとしてレビュアーに渡されるため、そのレビュアーが調査すべきこと、または返答すべきことだけを記載してください。Rejudge、パネル、レビュアー、judge、エージェント、別のレビューの開始、呼び出し、依頼、検証、調整を求めてはいけません。これらは実行時の仕組みであり、タスクの要件ではありません。レビュアーがレビューを入れ子にして実行しようとする原因になることがあります。
作業をレビューする場合は、具体的なレビュータスクを使ってください。
Identify the two most important risks in the current diff. For each, state the evidence and consequence.
次のようなプロンプトは決して書かないでください。
Ask the panel to verify that reviewers and judge can complete normally.
Ask reviewers to run Rejudge and have the judge collect their results.
Verify the panel, reviewers, or judge.
プロンプトの内容
エージェントが推論するために必要な情報を提供します。
- ユーザーの目標
- 関連するパス/コンテキスト(コードレビューの場合は、
git diffと対象のファイルを明示してください) - 回答すべき正確な質問
ユーザーへの出力(厳守)
レビューの完全な回答が、この実行の結果です。Pi では rejudge ツールの結果、CLI では /tmp/rejudge-<id>.md が該当します。求められない限り、その内容をそのまま貼り付けないでください。レビュー担当者の表現を平易な言葉に言い換え、まず何がレビューされたのか理解するために必要な背景を示してください。Rejudge がユーザー自身のプロンプトに回答した場合は、何を質問し、どの入力を提供したかを述べてください。
次の構成を使用してください。
### Context
<1~3個の簡潔な箇条書き:Rejudge に尋ねた正確な質問、提供した重要なファイル/差分/データ、重要な前提>
### Rejudge result
(CLI のみ)完全な回答の保存先:/tmp/rejudge-<id>.md
<3~7個の簡潔な箇条書き。ユーザーに伝わる平易な言葉を使い、レビュー担当者の専門用語や長い引用/差分/ログは避ける>
### Summary
<独自の解釈と、それによって変わることを1~3文で説明>
### Next action
<1行、または「なし — ユーザーの指示を待機中」>
失敗時の対応
終了コードが0以外の場合は、標準エラーに必ず理由が出力されます。数値を解釈せず、メッセージを確認してください。
- 設定がない/無効:ユーザーに伝えてください。モデルを勝手に想定しないでください。
- 完了しなかった(モデル/ツールの失敗):標準エラーの末尾を報告してください。確認なしに再試行しないでください。
- バイナリがない:リポジトリで
just build-cliを実行してビルドし、その後再試行してください。 - 時間切れで終了した:その旨を報告して再実行してください。そのリポジトリには、より軽量なパネルの利用を検討してください。バックグラウンドでは実行しないでください。