Claude Code CLIで実装計画レビューの改善ループを回す。実装計画ファイルと要件ファイルを指定し、Claude Codeにレビューさせ、指摘をトリアージして計画を修正し、再レビューする。
The English summary is being prepared. Showing the original description.
Codex CLIでGitHub PRのコードレビューループを回す。PRのURLを指定し、Codexにレビューさせ、指摘をトリアージしてコードを修正し、再レビューする。PRにリンクされたIssue等は必読として機械的に検証する。
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Codex CLI(codex exec)をレビュアーとして、GitHub Pull Requestのコードに対する「指摘 → 修正 → 再レビュー」の改善ループを回します。AIが作成したコードを、人間の検収前に独立したレビュアーで検証するためのスキルです。
PRメタデータの取得・必読リンクの収集・プロンプト生成・Codex実行・結果解析・waiver適用・停滞検出・エビデンス検証は、すべて同梱スクリプトが行います。あなた(このスキルを実行するエージェント)の担当は次のとおりです。
指摘の生成はレビュアー側の役割なので、スクリプトを迂回した手動レビューには切り替えません(waiver・停滞検出・エビデンス検証が失われるため)。
スクリプト: ${CLAUDE_SKILL_DIR}/scripts/pr_review.py(python3 標準ライブラリのみで動作。git / gh を外部コマンドとして使用。${CLAUDE_SKILL_DIR} が展開されない環境では、このSKILL.mdがあるディレクトリに読み替える)
codex コマンドがインストール済み・認証済みgh コマンドがインストール済み・認証済み(対象リポジトリへのアクセス権があること)gh pr checkout <PRのURL>
レビューには推論の強さ model_reasoning_effort="max" を既定で使う(グローバル設定が ultra だと大きなプロンプトで無応答になるため。ユーザーが別の値を指定した場合はそちらを使う)。次の規則で設定ファイルを決めてから start を実行する。
.agents/pr-review.json が無い場合: 次の内容の一時ファイルを作り、--config で渡すcat > "<一時ファイル(例: /tmp/pr-review-config.json)>" <<'EOF'
{"codexExtraArgs": ["-c", "model_reasoning_effort=\"max\""]}
EOF
.agents/pr-review.json があり codexExtraArgs が未設定または空配列の場合: その JSON に上記の codexExtraArgs を追加した一時ファイルを作り、--config で渡す(--config を渡すと .agents/pr-review.json は読み込まれなくなるため、内容を引き継ぐ).agents/pr-review.json に空でない codexExtraArgs が設定済みの場合: プロジェクトの設定を尊重し、--config を付けずに実行する(例外: その設定が原因で無応答になった場合はトラブルシューティングの対応を優先する)python3 "${CLAUDE_SKILL_DIR}/scripts/pr_review.py" start --backend codex --pr "<PRのURL>" --config "<一時ファイル>"
runDir を控え、以後のコマンドで使う。configSource が意図した設定ファイルになっていることを確認するrequiredLinks に、PR本文とGitHubの「Development」欄から収集した必読リンク(Issue等)が列挙される。ユーザーが指定した関連Issueがここに含まれていない場合は、レビュー前にユーザーに報告するwarnings が空でない場合は内容をユーザーに伝えるpython3 "${CLAUDE_SKILL_DIR}/scripts/pr_review.py" review --run "<runDir>"
2回目以降(コード修正後)は、修正サマリーのファイルを渡す。
python3 "${CLAUDE_SKILL_DIR}/scripts/pr_review.py" review --run "<runDir>" --changes-file "<runDir>/changes-round<N>.md"
review / feedback コマンドは1回に数分〜数十分かかることがある(スクリプト内部のタイムアウトは3600秒)。実行環境のコマンドタイムアウト上限がそれより短い場合は、バックグラウンド実行にして完了を待つ。途中でコマンドが打ち切られた場合は、同じコマンドをそのまま再実行してよい(状態はラウンド完了時にのみ保存されるため、途中終了で壊れない)。
出力末尾の ===PR_REVIEW_STATE=== の次の行にJSONがある。その nextAction で分岐する。
| nextAction | やること |
|---|---|
triage | レビュー報告を省略せずそのままユーザーに提示し、フィードバックを待つ(手順5へ) |
fix_code | コードを修正する(手順6へ) |
done / stagnated / max_rounds | スクリプトが出力した完了サマリーをユーザーに提示して終了する(未pushコミットが残る場合の報告は手順6の5のとおり) |
requiredEvidenceMet が false の場合(requiredLinksUnread が1以上の場合を含む)は、レビュアーが必読リンクかFigma等の必須情報源を確認しないままレビューしたということなので、このラウンドの結果をそのまま採用しない。報告内の検証警告(何が未確認か)をユーザーに伝え、レビューをやり直すか、この結果のまま続行するかを確認する。やり直す場合、ランが継続中なら feedback コマンドで「未確認の必読リンク・情報源を確認したうえで再レビューしてください」と伝え、終了済み(done 等)なら start から新しいランを作る(waiver は新しいランに引き継がれない)。
feedback コマンドに渡すのは、指摘の取捨・調整に関するフィードバック(waive指定・修正方針・却下理由など)と、手順4で指示する再レビュー依頼だけである。それ以外(中止・質問など)を渡してもレビュアーは活用できず、1ラウンド分の時間を浪費する。
<runDir>/feedback.txt)に保存して次を実行するpython3 "${CLAUDE_SKILL_DIR}/scripts/pr_review.py" feedback --run "<runDir>" --file "<runDir>/feedback.txt"
git status で想定外の変更がないか確認する)<runDir>/changes-round<N>.md に書き出すgit push はユーザーの指示があるまで行わない。ループを終了するとき(完了・中止のいずれも)、未pushのコミットが残っていれば、その旨(コミット数と内容の要約)とpushするかの確認を最終報告に含める(黙って終えると、PRが未更新のまま完了したと誤解されるため)--changes-file 付きで review を実行するセッションを跨いで再開する場合は、status --run "<runDir>" で状態を確認し、上から順に最初に当てはまる分岐に従う。
endReason がある: 終了済みのラン。実績(rounds・waivers)をユーザーに報告するrounds が空: 1回目のレビューが完了していない。手順3の review からやり直すrounds の最終ラウンドに対応する <runDir>/changes-round<N>.md がある: 修正まで済んでいる。手順3の --changes-file 付き review から続ける<runDir>/state.json の lastFindings)をユーザーに再提示し、トリアージ(手順5)から続ける#123・owner/repo#123)と、GitHubの「Development」欄にリンクされたIssue。未確認だった場合の扱いは手順4のとおりrequiredEvidenceMet が false になる)requiredEvidenceMet は false にならない)。セッションの再開に失敗して新規セッションになったラウンドでは、レビュアーに前回の記憶が無いため引き継がれず、改めて確認が必要になる~/.codex/config.toml でGitHubプラグインを無効化できているかの確認を案内するユーザーが worktree の利用を指示した場合は、現在のチェックアウトを汚さないよう、専用の worktree でループ全体を実行する。
git worktree add --detach <リポジトリ外のパス(例: ../<repo>-pr<N>)>
cd <worktreeのパス>
gh pr checkout <PRのURL>
gh pr checkout が失敗する。その場合はユーザーに報告して指示を仰ぐgit worktree remove <パス> を案内するstart の引数 --max-rounds N / --stagnation-rounds N / --config <path> / --allow-dirty.agents/pr-review.json(存在すれば自動で読み込む)
DEFAULT_CONFIG を参照(maxRounds, blockingCategories, blockingSeverities, perspectives, additionalInstructions, codexExtraArgs など){"maxRounds": 4, "additionalInstructions": "認可まわりの変更を重点的に見る"}| 症状 | 対応 |
|---|---|
codex が見つからない | Codex CLIの公式インストール手順の確認をユーザーに案内する |
| 認証エラー(401等) | codex login status / gh auth status で状態を確認し、必要なら再ログインを案内する |
Not inside a trusted directory エラー | gitリポジトリ内(プロジェクトの作業ディレクトリ)で実行する |
サンドボックス内で Operation not permitted や外部ネットワークへの接続失敗 | Bashのサンドボックスが原因。サンドボックス無しで再実行する |
| start が「ブランチが一致しません」で失敗 | gh pr checkout <PRのURL> を実行してから再度 start する |
| start が「未コミットの変更があります」で失敗 | ユーザーに扱いを確認する。意図的に残す場合のみ --allow-dirty を付ける |
turn.failed で失敗 | スクリプトが該当イベントとログパスを表示する。内容をそのままユーザーに報告する |
レビューが長時間無応答(<runDir>/codex-round<N>.jsonl、feedback 実行時は codex-feedback-round<N>.jsonl に item イベントが10分以上増えない) | model_reasoning_effort が高すぎると大きなプロンプトで発生することがある(ultra で発生を確認済み)。実行を止めてユーザーに報告し、手順2の設定ファイルで effort を1段下げて(例: max → xhigh)start からやり直す。プロジェクト設定の codexExtraArgs が原因の場合も、ユーザーに報告のうえ一時ファイルの --config で上書きしてよい(その設定のままでは解消できないため、この対応が手順2の「プロジェクトの設定を尊重」より優先する) |
| resume失敗 | スクリプトが新規セッションに自動フォールバックするため対応不要 |
| スクリプトがエラー終了 | まずエラーメッセージに書かれた解消手順に従い、自分の呼び出し方(引数・パス・実行ディレクトリ)に原因があれば直して再実行する。自力で解消できないエラーのみ、stderr・ログの内容をそのままユーザーに報告する |
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Claude Code CLIで実装計画レビューの改善ループを回す。実装計画ファイルと要件ファイルを指定し、Claude Codeにレビューさせ、指摘をトリアージして計画を修正し、再レビューする。
The English summary is being prepared. Showing the original description.
Claude Code CLIでGitHub PRのコードレビューループを回す。PRのURLを指定し、Claude Codeにレビューさせ、指摘をトリアージしてコードを修正し、再レビューする。PRにリンクされたIssue等は必読として機械的に検証する。
The English summary is being prepared. Showing the original description.
コード・テストコード・コミットログ・コードコメントのどこに何を書くかを決めるときに使う。コードには How、テストコードには What、コミットログには Why、コードコメントには Why not を書き分ける。実装時とコミット・PR 作成時に使う。
The English summary is being prepared. Showing the original description.
コードの識別子(変数・関数・メソッド・クラス・型・ファイル)に名前を付けるときに使う。get の濫用をやめ、何をして値を得るのかが名前から読み取れる状態にする。実装時と、実装計画でメソッド名・クラス名を決めるときの両方で使う。
The English summary is being prepared. Showing the original description.
Codex CLIで実装計画レビューの改善ループを回す。実装計画ファイルと要件ファイルを指定し、Codexにレビューさせ、指摘をトリアージして計画を修正し、再レビューする。
The English summary is being prepared. Showing the original description.
長大な設計文書・Pull Request・Issueを読み解き、図と短い文を組み合わせた解説HTMLを生成してブラウザで開く。生成したページ内の識別子を指定すると、その項目だけを掘り下げたページも作る。
The English summary is being prepared. Showing the original description.