async-pr-review について
async-pr-review は、Pull Request を非同期でレビューするスキルです。バックグラウンドで事前チェック、Gemini によるテスト計画、コードレビューを実行し、状況確認と結果の統合も行います。
主な機能
- 01PR のチェックとレビューをバックグラウンド実行
- 02Gemini によるテスト計画の実行
- 03一時的な Git worktree で作業を分離
- 04ジョブ状況の確認と結果の統合
活用シーン
- 01時間のかかる PR レビューの開始
- 02後からレビューの進行状況を確認
- 03テストログとレビュー結果の統合
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ google-gemini/ gemini-cli --skill async-pr-reviewインストール後、Claude Code で/async-pr-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
policy.tomlscripts/async-review.shcheck-async-review.sh詳細
非同期 PR レビュー
このスキルは、プルリクエストを非同期でレビューするための一連のツールを提供します。バックグラウンドジョブを作成して、プロジェクトの事前チェックを実行し、Gemini を活用したテスト計画を実行し、カスタムプロンプトを使って包括的なコードレビューを行います。
このスキルは、高度な「エージェント型非同期パターン」を紹介することを目的としています。
- ネイティブのバックグラウンドシェルとヘッドレス推論の違い:Gemini CLI は
run_shell_commandツールでis_background: trueを指定することで、バックグラウンドのシェルコマンドをネイティブに起動して切り離せますが、標準の bash バックグラウンドジョブでは LLM 推論を実行できません。バックグラウンドで AI によるコードレビューやテスト生成を行うには、シェルスクリプトから-pを指定してgemini実行ファイルをヘッドレスで呼び出す必要があります。これにより、AI タスクを独立したワーカーエージェントに委ねます。 - 動的な Git のスコープ設定:レビュー用スクリプトでは、パスをハードコードしません。
git rev-parse --show-toplevelを使って、ユーザーの現在のプロジェクトのルートを自動的に特定します。 - 一時的なワークツリー:ユーザーのメインワークスペースでブランチをチェックアウトする代わりに、このスキルでは
.gemini/tmp/async-reviews/pr-<number>に一時的な Git ワークツリーを作成します。これにより、Git のロック競合や名前空間の汚染を防ぎます。 - エージェント型の評価(
check-async-review.sh):チェック用スクリプトは、メインエージェントが解析できるよう、整形式の JSON/テキスト形式のステータスを出力します。対話型エージェント自体が、生成されたログファイルから最終評価を動的にまとめます。
ワークフロー
- アクションの判断:ユーザーが新しい非同期レビューの開始を希望しているのか、既存のレビューのステータス確認を希望しているのかを判断します。
- ユーザーが「PR #123 の非同期レビューを開始して」などと言った場合は、レビューの開始に進みます。
- ユーザーが「PR #123 の非同期レビューのステータスを確認して」などと言った場合は、ステータスの確認に進みます。
レビューの開始
ユーザーが新しい非同期 PR レビューの開始を希望している場合:
- PR 番号が指定されていない場合は、ユーザーに確認します。
- PR 番号を第 1 引数として渡し、
async-review.shスクリプトを実行します。すぐに切り離されるよう、is_backgroundフラグを必ず true に設定して実行してください。.gemini/skills/async-pr-review/scripts/async-review.sh <PR_NUMBER> - タスクが正常に開始され、後でステータスを確認できることをユーザーに伝えます。
ステータスの確認
以前に開始した非同期レビューのステータス確認、または最終評価の表示をユーザーが希望している場合:
- PR 番号が指定されていない場合は、ユーザーに確認します。
- PR 番号を第 1 引数として渡し、
check-async-review.shスクリプトを実行します。.gemini/skills/async-pr-review/scripts/check-async-review.sh <PR_NUMBER> - 出力の評価:スクリプトの出力を読み取ります。
- 出力に
STATUS: IN_PROGRESSが含まれている場合は、まだ実行中のタスクをユーザーに伝えます。 - 出力に
STATUS: COMPLETEが含まれている場合は、ファイル読み取りツール(read_file)を使って、出力で指定されたLOG_DIRにあるfinal-assessment.md、review.md、pr-diff.diff、npm-test.log、test-execution.logの内容を取得します。 - 最終評価:それらのファイルを読み取り、結果をまとめて、PR のビルドとテストが正常に完了するか、またレビューに基づいて承認を推奨するかについて、簡潔な提案をユーザーに伝えます。
- 出力に
コメント
Markdown 対応