asyncreview について
asyncreviewは、GitHubのプルリクエストやIssueをAIでレビューするCLIスキルです。質問に沿った確認や専門的なレビューを行い、根拠付きの結果をターミナル、Markdown、JSONで出力します。
主な機能
- 01質問に基づくPR・Issueレビュー
- 02セキュリティとコード品質の専門レビュー
- 03差分外のファイル取得
- 04ターミナル、Markdown、JSON出力
- 05プライベートリポジトリ用GitHubトークン
活用シーン
- 01PRが既存の呼び出し元に影響するか確認
- 02セキュリティや性能の問題を調査
- 03非推奨関数の使用状況を確認
- 04プライベートリポジトリの変更をレビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ asyncfuncai/ asyncreview --skill asyncreviewインストール後、Claude Code で/asyncreviewを入力して読み込まれたか確認します。
詳細
AsyncReview CLI
このスキルを使用するタイミング
次のような場合にこのスキルを使用します。
- GitHub のプルリクエストのレビューを依頼された場合
- PR のコード変更に対する AI のフィードバックを求められた場合
- PR によって既存の機能が壊れていないか確認する必要がある場合
- GitHub のイシューや PR について質問された場合
- コード変更で見落としがないか確認したい場合
このスキルの使い方
- 前提条件を確認する —
GEMINI_API_KEYが設定されていることを確認します - リポジトリが非公開か確認する —
gh repo viewを使用して、GITHUB_TOKENが必要か判断します - 必要に応じて GITHUB_TOKEN を設定する — 非公開リポジトリでは
gh auth tokenを使用します - PR/Issue の URL を取得する — 提供されていない場合はユーザーに尋ねます
- 質問を作成する — ユーザーの依頼を具体的な質問に変換します
- レビューコマンドを実行する —
npx asyncreview review --url <URL> -q "<question>"を実行します - 結果を提示する — 出典とともに AI の調査結果を共有します
前提条件
1. GEMINI_API_KEY の確認(必須)
コマンドを実行する前に、GEMINI_API_KEY を必ず確認してください。
echo $GEMINI_API_KEY
空または未設定の場合は、ユーザーに Gemini API キーの提供を依頼します。
"AsyncReview requires a Gemini API key. Please set
GEMINI_API_KEYin your environment or provide it now."
次に、設定します。
export GEMINI_API_KEY="user-provided-key"
2. リポジトリが非公開か確認する(重要)
重要: PR/Issue をレビューする前に、リポジトリが非公開か必ず確認してください。非公開の場合、GITHUB_TOKEN が必須です。
ステップ 1:URL から owner と repo を抽出する
https://github.com/owner/repo/pull/123 のような URL から、次の情報を抽出します。
- owner:
owner - repo:
repo
ステップ 2:リポジトリの公開範囲を確認する
オプション A:GitHub CLI を使用する(利用可能な場合)
gh repo view owner/repo --json isPrivate -q '.isPrivate'
オプション B:GitHub CLI を使わずに確認する(curl を使用)
# Try to access the repo via GitHub API without authentication
curl -s -o /dev/null -w "%{http_code}" https://api.github.com/repos/owner/repo
考えられる結果:
-
ghを使用する場合:true→ リポジトリは非公開です。GITHUB_TOKENは必須ですfalse→ リポジトリは公開です。GITHUB_TOKENは任意です- エラー(例:「not found」)→ 認証されていない状態で非公開リポジトリにアクセスしたか、リポジトリが存在しない可能性があります
-
curlを使用する場合:200→ リポジトリは公開です。GITHUB_TOKENは任意ですが、レート制限の緩和のため推奨されます404→ リポジトリは非公開か、存在しません。GITHUB_TOKENは必須です403→ レート制限に達しています。GITHUB_TOKENが必要です
ステップ 3:非公開の場合は GITHUB_TOKEN が設定されていることを確認する
# Check if GITHUB_TOKEN is already set
echo $GITHUB_TOKEN
空または未設定の場合は、次のいずれかの方法で取得します。
オプション A:GitHub CLI を使用する(利用可能な場合)
# Get token from GitHub CLI (must be authenticated with `gh auth login` first)
export GITHUB_TOKEN=$(gh auth token)
# Verify it's set
echo $GITHUB_TOKEN
gh auth token が失敗する場合は、先に認証してください。
gh auth login
オプション B:GitHub CLI を使わずに取得する(Web でトークンを作成)
- GitHub にアクセスします:https://github.com/settings/tokens
- "Generate new token" → "Generate new token (classic)" をクリックします
- 分かりやすい名前(例:"AsyncReview CLI")を付けます
- スコープを選択します。
- ✅
repo(非公開リポジトリへのフルアクセス)
- ✅
- "Generate token" をクリックします
- トークンをコピーします(再表示されません!)
- ターミナルで設定します。
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Verify it's set
echo $GITHUB_TOKEN
セキュリティに関するヒント: セキュリティを強化するには、権限を最小限にしたきめ細かなトークンの作成を検討してください。
- 次の URL にアクセスします:https://github.com/settings/personal-access-tokens/new
- 特定のリポジトリを選択します
- 「Contents」の読み取り権限のみを付与します
次に、トークンを使ってレビューを実行します。
npx asyncreview review --url <URL> -q "question" --github-token $GITHUB_TOKEN
または、セッションの環境変数として設定します。
export GITHUB_TOKEN=$(gh auth token)
npx asyncreview review --url <URL> -q "question"
クイックスタート
npx asyncreview review --url <PR_URL> -q "question" # Review a PR
npx asyncreview review --url <PR_URL> --expert # Expert code review
npx asyncreview review --url <PR_URL> --output markdown # Markdown output
基本的なワークフロー
- ユーザーから PR の URL を取得します
- 具体的な質問を指定してレビューを実行します
- 手順ごとの推論出力を確認します
- モデルは差分の範囲外にあるファイルも自律的に取得できます
コマンド
レビュー
npx asyncreview review --url <url> -q "question" # Review with question
npx asyncreview review --url <url> -q "q" --output markdown # Markdown output
npx asyncreview review --url <url> -q "q" -o json # JSON output
対応している URL 形式:
https://github.com/owner/repo/pull/123https://github.com/owner/repo/issues/456
環境変数
GEMINI_API_KEY="your-key" # Required: Google Gemini API key
GITHUB_TOKEN="ghp_xxx" # Optional: For private repos / higher rate limits
例:PR をレビューする
npx asyncreview review \
--url https://github.com/stanfordnlp/dspy/pull/9223 \
-q "Does this change break any existing callers?"
出力に表示される内容:
- ステップ番号
- 💭 推論(AI が考えている内容)
- 📝 コード(実行されている Python)
- 📤 出力(REPL の結果)
- 出典付きの最終回答
例:機能がほかの場所にも存在するか確認する
npx asyncreview review \
--url https://github.com/owner/repo/pull/123 \
-q "Fetch src/utils.py and check if deprecated_func is still used"
AI は次のことを行います。
- ファイルパスを検索します
- GitHub API 経由でファイルを取得します
- Python サンドボックスで内容を分析します
- 根拠とともに調査結果を報告します
例:プライベートリポジトリの PR をレビューする
プライベートリポジトリ向けの完全なワークフロー:
# Step 1: Extract owner/repo from URL
# URL: https://github.com/myorg/private-repo/pull/42
# owner="myorg", repo="private-repo"
# Step 2: Check if repository is private
## Option A: With GitHub CLI
gh repo view myorg/private-repo --json isPrivate -q '.isPrivate'
# Output: true (it's private!)
## Option B: Without GitHub CLI (using curl)
curl -s -o /dev/null -w "%{http_code}" https://api.github.com/repos/myorg/private-repo
# Output: 404 (likely private or doesn't exist)
# Step 3: Ensure GITHUB_TOKEN is set
echo $GITHUB_TOKEN
## If empty, Option A: Get from GitHub CLI
export GITHUB_TOKEN=$(gh auth token)
## If empty, Option B: Create via web (https://github.com/settings/tokens)
## Then:
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Step 4: Run the review with the token
npx asyncreview review \
--url https://github.com/myorg/private-repo/pull/42 \
-q "Does this PR introduce any security vulnerabilities?" \
--github-token $GITHUB_TOKEN
# Alternative: Token is already in environment, no flag needed
npx asyncreview review \
--url https://github.com/myorg/private-repo/pull/42 \
-q "Does this PR introduce any security vulnerabilities?"
404 または認証エラーが発生した場合: リポジトリはプライベートである可能性が高いため、GITHUB_TOKEN を指定する必要があります。
出力形式
| 形式 | フラグ | 説明 |
|---|---|---|
| Pretty | (default) | ボックス付きのリッチなターミナル出力 |
| Markdown | --output markdown or -o markdown | Markdown 形式 |
| JSON | --output json or -o json | 機械可読形式 |
エキスパートコードレビュー
SOLID 原則、セキュリティ、パフォーマンス、コード品質を網羅する包括的な PR レビューには、--expert フラグを使用します。
# Full expert review (no question needed)
npx asyncreview review --url <PR_URL> --expert
# Expert review with additional custom question
npx asyncreview review --url <PR_URL> --expert -q "Also check for breaking API changes"
エキスパートレビューで分析する項目:
- SOLID 原則 - SRP、OCP、LSP、ISP、DIP の違反
- セキュリティ - XSS、インジェクション、認証の不備、競合状態、シークレット
- コード品質 - エラー処理、N+1 クエリ、境界条件
- 削除候補 - デッドコード、未使用のインポート
出力に含まれる内容:
- 重要度タグ付きの指摘(P0 Critical → P3 Low)
- P0/P1 の問題に対する修正案
- 総合評価:APPROVE / REQUEST_CHANGES / COMMENT