mcpField
A
async-pr-review

async-pr-review

github.com/google-geminiテスト・品質108.6k349 回インストール今日更新
リポジトリ

async-pr-review について

async-pr-review は、Pull Request を非同期でレビューするスキルです。バックグラウンドで事前チェック、Gemini によるテスト計画、コードレビューを実行し、状況確認と結果の統合も行います。

主な機能

  1. 01PR のチェックとレビューをバックグラウンド実行
  2. 02Gemini によるテスト計画の実行
  3. 03一時的な Git worktree で作業を分離
  4. 04ジョブ状況の確認と結果の統合

活用シーン

  1. 01時間のかかる PR レビューの開始
  2. 02後からレビューの進行状況を確認
  3. 03テストログとレビュー結果の統合

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/google-gemini/gemini-cli --skill async-pr-review

インストール後、Claude Code で/async-pr-reviewを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

policy.toml
scripts/
async-review.sh
check-async-review.sh

詳細

非同期 PR レビュー

このスキルは、プルリクエストを非同期でレビューするための一連のツールを提供します。バックグラウンドジョブを作成して、プロジェクトの事前チェックを実行し、Gemini を活用したテスト計画を実行し、カスタムプロンプトを使って包括的なコードレビューを行います。

このスキルは、高度な「エージェント型非同期パターン」を紹介することを目的としています。

  1. ネイティブのバックグラウンドシェルとヘッドレス推論の違い:Gemini CLI は run_shell_command ツールで is_background: true を指定することで、バックグラウンドのシェルコマンドをネイティブに起動して切り離せますが、標準の bash バックグラウンドジョブでは LLM 推論を実行できません。バックグラウンドで AI によるコードレビューやテスト生成を行うには、シェルスクリプトから -p を指定して gemini 実行ファイルをヘッドレスで呼び出す必要があります。これにより、AI タスクを独立したワーカーエージェントに委ねます。
  2. 動的な Git のスコープ設定:レビュー用スクリプトでは、パスをハードコードしません。git rev-parse --show-toplevel を使って、ユーザーの現在のプロジェクトのルートを自動的に特定します。
  3. 一時的なワークツリー:ユーザーのメインワークスペースでブランチをチェックアウトする代わりに、このスキルでは .gemini/tmp/async-reviews/pr-<number> に一時的な Git ワークツリーを作成します。これにより、Git のロック競合や名前空間の汚染を防ぎます。
  4. エージェント型の評価(check-async-review.sh):チェック用スクリプトは、メインエージェントが解析できるよう、整形式の JSON/テキスト形式のステータスを出力します。対話型エージェント自体が、生成されたログファイルから最終評価を動的にまとめます。

ワークフロー

  1. アクションの判断:ユーザーが新しい非同期レビューの開始を希望しているのか、既存のレビューのステータス確認を希望しているのかを判断します。
    • ユーザーが「PR #123 の非同期レビューを開始して」などと言った場合は、レビューの開始に進みます。
    • ユーザーが「PR #123 の非同期レビューのステータスを確認して」などと言った場合は、ステータスの確認に進みます。
レビューの開始

ユーザーが新しい非同期 PR レビューの開始を希望している場合:

  1. PR 番号が指定されていない場合は、ユーザーに確認します。
  2. PR 番号を第 1 引数として渡し、async-review.sh スクリプトを実行します。すぐに切り離されるよう、is_background フラグを必ず true に設定して実行してください。
    .gemini/skills/async-pr-review/scripts/async-review.sh <PR_NUMBER>
    
  3. タスクが正常に開始され、後でステータスを確認できることをユーザーに伝えます。
ステータスの確認

以前に開始した非同期レビューのステータス確認、または最終評価の表示をユーザーが希望している場合:

  1. PR 番号が指定されていない場合は、ユーザーに確認します。
  2. PR 番号を第 1 引数として渡し、check-async-review.sh スクリプトを実行します。
    .gemini/skills/async-pr-review/scripts/check-async-review.sh <PR_NUMBER>
    
  3. 出力の評価:スクリプトの出力を読み取ります。
    • 出力に STATUS: IN_PROGRESS が含まれている場合は、まだ実行中のタスクをユーザーに伝えます。
    • 出力に STATUS: COMPLETE が含まれている場合は、ファイル読み取りツール(read_file)を使って、出力で指定された LOG_DIR にある final-assessment.md、review.md、pr-diff.diff、npm-test.log、test-execution.log の内容を取得します。
    • 最終評価:それらのファイルを読み取り、結果をまとめて、PR のビルドとテストが正常に完了するか、またレビューに基づいて承認を推奨するかについて、簡潔な提案をユーザーに伝えます。

コメント