mcpField

alan-review-pr

github.com/supatest-aiテスト・品質01.8k 回インストール13 週間前に更新
リポジトリ

alan-review-pr について

alan-review-prは、AlanのGitHub MCPツールを使ってGitHubのプルリクエストをレビューするスキルです。PR情報、差分、ファイル、議論、レビュー、CI状態を集め、行単位の指摘と総評を投稿します。

主な機能

  1. 01PR詳細と差分の取得
  2. 02変更ファイルと議論の確認
  3. 03レビューとCI状態の確認
  4. 04重要度別の新規問題分析
  5. 05行単位コメントと総評の投稿

活用シーン

  1. 01GitHubプルリクエストのレビュー
  2. 02CI結果と合わせた変更内容の確認
  3. 03実行可能な指摘をPRへ直接投稿

MCP 対応

Alan GitHub MCPツールを使ってプルリクエスト情報を取得し、レビューを送信します。CLIや直接APIへの代替は禁止されています。

インストール

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

$npx skills add https://github.com/supatest-ai/alan-skills --skill alan-review-pr

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

詳細

必須:Alan MCP Tools を使用してください

Alan MCP サーバーには、すでにツール一覧に含まれている GitHub ツールがあります。 これらは Read、Bash、Edit とまったく同じように、ツール呼び出しとして実行できます。 名前には mcp__alan__github_ というプレフィックスが付いています。

認証は MCP サーバーによって自動的に処理されます。 GitHub トークン、gh CLI の認証、SSH キー、.netrc ファイル、環境変数、認証情報は必要ありません。 設定をしなくても、ツールはすぐに使えます。

GitHub API にアクセスする際、次のことは絶対にしないでください:
  • curl または wget で api.github.com にアクセスする
  • gh CLI コマンドを実行する(gh pr、gh api など)
  • env | grep を実行する、またはトークンやシークレットを探す
  • cat ~/.netrc、git credential、ssh -T [email protected] を実行する
  • GitHub の認証情報を探す、作成する、または設定しようとする
  • GitHub にアクセスするためのパッケージや CLI をインストールする

MCP ツールの呼び出しに失敗した場合は、エラーをユーザーに報告してください。CLI の代替手段は使用しないでください。

ツールが利用可能であることを確認する

作業を始める前に、利用可能なツールに mcp__alan__github_* ツールが含まれていることを確認してください。利用できない場合は、作業を中止してユーザーに次のように伝えてください: 「GitHub MCP ツールを利用できません。サンドボックスの MCP 設定を確認してください。」

ツールのパラメーター

GitHub の PR ツールには、次のパラメーターがすべて必要です:

  • owner(文字列):GitHub の組織またはユーザー名。例:「supatest-ai」
  • repo(文字列):リポジトリ名。例:「alan」
  • prNumber(整数):PR 番号。例:42

ツール呼び出しの例:

Tool: mcp__alan__github_get_pull_request
Parameters: { "owner": "supatest-ai", "repo": "alan", "prNumber": 42 }
owner/repo の特定

ユーザーが PR 番号のみを指定した場合は、git remote get-url origin を実行してリモート URL を取得し、そこから owner と repo を特定してください。GitHub の操作で実行してよい Git CLI コマンドはこれだけです。それ以外はすべて MCP ツールを使用します。

利用可能な GitHub MCP ツール
ツール名目的
mcp__alan__github_get_pull_requestPR の詳細(タイトル、状態、ラベル、マージ状況)を取得する
mcp__alan__github_get_pr_diffPR の統合差分を取得する
mcp__alan__github_list_pr_commentsPR のすべてのコメントを一覧表示する
mcp__alan__github_list_pr_reviewsPR のすべてのレビューを一覧表示する
mcp__alan__github_list_pr_files追加・削除行数とともに変更ファイルを一覧表示する
mcp__alan__github_get_issueIssue の詳細を取得する
mcp__alan__github_get_ci_status指定した ref の CI チェック実行状況を取得する
mcp__alan__github_add_commentIssue または PR にコメントを追加する
mcp__alan__github_create_pr_reviewレビューを送信する(APPROVE/REQUEST_CHANGES/COMMENT)
mcp__alan__github_add_labelsIssue または PR にラベルを追加する
mcp__alan__github_merge_pull_requestPR をマージする
mcp__alan__github_close_issueIssue または PR をクローズする
mcp__alan__github_request_reviewersPR のレビュアーをリクエストする

タスク:プルリクエストをレビューする

入力

ユーザーは次のいずれかを指定します:

ワークフロー
  1. 入力から owner/repo/prNumber を特定します。PR 番号のみが指定されている場合は、 git remote get-url origin を実行して owner と repo を解析します。

  2. PR のメタデータを取得 — mcp__alan__github_get_pull_request を { owner, repo, prNumber } とともに呼び出し、タイトル、説明、状態、ラベル、ブランチを取得します。

  3. 差分を取得 — mcp__alan__github_get_pr_diff を呼び出して、統一 diff を取得します。

  4. 変更されたファイルを取得 — mcp__alan__github_list_pr_files を呼び出し、 変更・追加・削除されたファイルと行数を確認します。

  5. 既存のレビューを取得 — mcp__alan__github_list_pr_reviews を呼び出して、以前のレビュー状況を確認します。

  6. 既存のコメントを取得 — mcp__alan__github_list_pr_comments を呼び出して、 継続中の議論の文脈を確認します。

  7. CI の状態を確認 — ヘッドブランチまたは SHA を指定して mcp__alan__github_get_ci_status を呼び出します。 チェックに失敗している場合は、ユーザーが完全なログを確認できるように html_url のリンクを含めます(このツールはログ出力を返しません)。

  8. ソースファイルを読む — 複雑な変更については、コンテキストを把握するために Read ツールを使ってソースファイル全体を読みます(差分だけでなく)。

  9. 分析する — この PR によって発生した問題のみを特定します(既存の問題は対象外)。 各指摘について、重大度、ファイルパス、開始/終了行、タイトル、説明、エージェント向けの具体的な修正プロンプトを判断します。

  10. レビューを投稿 — インラインコメント(指摘ごとに 1 件)と要約本文を付けて mcp__alan__github_create_pr_review を呼び出します。以下の形式を参照してください。

レビューの観点(優先順位順)
  1. セキュリティ — インジェクション、認証の回避、コード内のシークレット、入力検証
  2. 正確性 — ロジックエラー、null の処理、非同期処理の問題、競合状態
  3. パフォーマンス — N+1 クエリ、制限のない操作、メモリの問題
  4. エラー処理 — 暗黙的な失敗、空の catch ブロック、握りつぶされたエラー
  5. 保守性 — 30 行を超える関数、深いネスト、マジックナンバー
  6. テストカバレッジ — 正常系のテスト有無、エッジケース、有意義なアサーション
確信度フィルター

次の条件を満たす指摘のみを含めます。

  • 正確なファイルと行を示せる
  • 実際の問題を引き起こす具体的な状況を説明できる
  • 確信度が 80% 以上

除外するもの:リンターで検出できる問題、推測に基づくリスク、スタイル上の好み、既存の問題。

インラインコメントの形式

各指摘は、それぞれ独立したインラインコメントとして PR に投稿します。各コメントの body は次の形式にします。



{severity_icon} **{short_title}**

{detailed_description}

<details>
<summary>Prompt for agents</summary>

\`\`\`
{concrete_fix_instructions_an_AI_agent_can_execute — specify exact file, what to change, and how}
\`\`\`

</details>


<a href="{alan_session_url}" target="_blank">
  <img src="https://app.tryalan.ai/logo.png" alt="Open in Alan" height="20">
</a>

重大度アイコン:

  • 🔴 = ブロッキング(重大なバグ、セキュリティ、データ損失 — マージ前に修正必須)
  • 🟡 = 重要(実際のバグ/リスク — マージ前に修正する必要あり)
  • 🔵 = Nit(軽微な品質上の問題 — 簡単に直せる場合は修正)
要約コメントの形式

レビューのトップレベル要約の body パラメーターは次の形式にします。

**Alan Review** found {N} potential issues.

| Severity | Count |
|----------|-------|
| 🔴 Blocking | {X} |
| 🟡 Important | {Y} |
| 🔵 Nit | {Z} |

<details>
<summary>View all findings</summary>

### 🔴 Blocking
- **{title}** — \`{file_path}:{line}\` — {one_line_description}

### 🟡 Important
- **{title}** — \`{file_path}:{line}\` — {one_line_description}

### 🔵 Nit
- **{title}** — \`{file_path}:{line}\` — {one_line_description}

</details>


<a href="{alan_session_url}" target="_blank">
  <img src="https://app.tryalan.ai/logo.png" alt="Open in Alan" height="20">
</a>


---
*Was this helpful? React with 👍 or 👎 to provide feedback.*
「Open in Alan」バッジの URL

すべてのバッジは現在の Alan セッションにリンクします。ユーザー/トリガーからセッション URL が提供されます。すべてのバッジの {alan_session_url} を実際の URL に置き換えてください。

セッション URL が提供されない場合は、https://app.tryalan.ai を使用してください。

レビューの投稿

次の情報を指定して mcp__alan__github_create_pr_review を呼び出します。

  • owner、repo、prNumber:手順 1 の値
  • body:上記の要約コメント
  • event:ブロッキングの指摘 🔴 がある場合は "REQUEST_CHANGES"、それ以外の場合は "COMMENT"
  • comments:インラインコメントの配列。各コメントには次の値を指定します。
    • path:リポジトリルートからの相対ファイルパス
    • line:指摘の終了行番号
    • body:上記の形式に従ったインラインコメント本文

重要:

  • インラインコメントは常に投稿します(指摘ごとに 1 件)。1 つの大きなコメントにまとめないでください。
  • すべての指摘に「Prompt for agents」セクションを必ず含めてください。
  • すべてのコメントと要約に「Open in Alan」バッジを必ず含めてください。
  • すべてのバッジの {alan_session_url} を実際のセッション URL に置き換えてください。
  • 指摘が 0 件の場合は、問題がないことを示す要約とともに承認レビューを投稿してください。

コメント