mcpField
A
asyncreview

asyncreview

github.com/asyncfuncaiテスト・品質46078 回インストール33 週間前に更新
リポジトリ

asyncreview について

asyncreviewは、GitHubのプルリクエストやIssueをAIでレビューするCLIスキルです。質問に沿った確認や専門的なレビューを行い、根拠付きの結果をターミナル、Markdown、JSONで出力します。

主な機能

  1. 01質問に基づくPR・Issueレビュー
  2. 02セキュリティとコード品質の専門レビュー
  3. 03差分外のファイル取得
  4. 04ターミナル、Markdown、JSON出力
  5. 05プライベートリポジトリ用GitHubトークン

活用シーン

  1. 01PRが既存の呼び出し元に影響するか確認
  2. 02セキュリティや性能の問題を調査
  3. 03非推奨関数の使用状況を確認
  4. 04プライベートリポジトリの変更をレビュー

インストール

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

$npx skills add https://github.com/asyncfuncai/asyncreview --skill asyncreview

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

詳細

AsyncReview CLI

このスキルを使用するタイミング

次のような場合にこのスキルを使用します。

  • GitHub のプルリクエストのレビューを依頼された場合
  • PR のコード変更に対する AI のフィードバックを求められた場合
  • PR によって既存の機能が壊れていないか確認する必要がある場合
  • GitHub のイシューや PR について質問された場合
  • コード変更で見落としがないか確認したい場合

このスキルの使い方

  1. 前提条件を確認する — GEMINI_API_KEY が設定されていることを確認します
  2. リポジトリが非公開か確認する — gh repo view を使用して、GITHUB_TOKEN が必要か判断します
  3. 必要に応じて GITHUB_TOKEN を設定する — 非公開リポジトリでは gh auth token を使用します
  4. PR/Issue の URL を取得する — 提供されていない場合はユーザーに尋ねます
  5. 質問を作成する — ユーザーの依頼を具体的な質問に変換します
  6. レビューコマンドを実行する — npx asyncreview review --url <URL> -q "<question>" を実行します
  7. 結果を提示する — 出典とともに AI の調査結果を共有します

前提条件

1. GEMINI_API_KEY の確認(必須)

コマンドを実行する前に、GEMINI_API_KEY を必ず確認してください。

echo $GEMINI_API_KEY

空または未設定の場合は、ユーザーに Gemini API キーの提供を依頼します。

"AsyncReview requires a Gemini API key. Please set GEMINI_API_KEY in 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 でトークンを作成)

  1. GitHub にアクセスします:https://github.com/settings/tokens
  2. "Generate new token" → "Generate new token (classic)" をクリックします
  3. 分かりやすい名前(例:"AsyncReview CLI")を付けます
  4. スコープを選択します。
    • ✅ repo(非公開リポジトリへのフルアクセス)
  5. "Generate token" をクリックします
  6. トークンをコピーします(再表示されません!)
  7. ターミナルで設定します。
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Verify it's set
echo $GITHUB_TOKEN

セキュリティに関するヒント: セキュリティを強化するには、権限を最小限にしたきめ細かなトークンの作成を検討してください。

次に、トークンを使ってレビューを実行します。

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

基本的なワークフロー

  1. ユーザーから PR の URL を取得します
  2. 具体的な質問を指定してレビューを実行します
  3. 手順ごとの推論出力を確認します
  4. モデルは差分の範囲外にあるファイルも自律的に取得できます

コマンド

レビュー
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/123
  • https://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 は次のことを行います。

  1. ファイルパスを検索します
  2. GitHub API 経由でファイルを取得します
  3. Python サンドボックスで内容を分析します
  4. 根拠とともに調査結果を報告します

例:プライベートリポジトリの 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 markdownMarkdown 形式
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

コメント