alan-review-pr について
alan-review-prは、AlanのGitHub MCPツールを使ってGitHubのプルリクエストをレビューするスキルです。PR情報、差分、ファイル、議論、レビュー、CI状態を集め、行単位の指摘と総評を投稿します。
主な機能
- 01PR詳細と差分の取得
- 02変更ファイルと議論の確認
- 03レビューとCI状態の確認
- 04重要度別の新規問題分析
- 05行単位コメントと総評の投稿
活用シーン
- 01GitHubプルリクエストのレビュー
- 02CI結果と合わせた変更内容の確認
- 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 にアクセスするghCLI コマンドを実行する(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_request | PR の詳細(タイトル、状態、ラベル、マージ状況)を取得する |
mcp__alan__github_get_pr_diff | PR の統合差分を取得する |
mcp__alan__github_list_pr_comments | PR のすべてのコメントを一覧表示する |
mcp__alan__github_list_pr_reviews | PR のすべてのレビューを一覧表示する |
mcp__alan__github_list_pr_files | 追加・削除行数とともに変更ファイルを一覧表示する |
mcp__alan__github_get_issue | Issue の詳細を取得する |
mcp__alan__github_get_ci_status | 指定した ref の CI チェック実行状況を取得する |
mcp__alan__github_add_comment | Issue または PR にコメントを追加する |
mcp__alan__github_create_pr_review | レビューを送信する(APPROVE/REQUEST_CHANGES/COMMENT) |
mcp__alan__github_add_labels | Issue または PR にラベルを追加する |
mcp__alan__github_merge_pull_request | PR をマージする |
mcp__alan__github_close_issue | Issue または PR をクローズする |
mcp__alan__github_request_reviewers | PR のレビュアーをリクエストする |
タスク:プルリクエストをレビューする
入力
ユーザーは次のいずれかを指定します:
- PR 番号(例:「42」または「#42」)
- PR URL(例:「https://github.com/owner/repo/pull/42」)
- 「owner/repo#42」の形式の参照
ワークフロー
-
入力から owner/repo/prNumber を特定します。PR 番号のみが指定されている場合は、
git remote get-url originを実行して owner と repo を解析します。 -
PR のメタデータを取得 —
mcp__alan__github_get_pull_requestを{ owner, repo, prNumber }とともに呼び出し、タイトル、説明、状態、ラベル、ブランチを取得します。 -
差分を取得 —
mcp__alan__github_get_pr_diffを呼び出して、統一 diff を取得します。 -
変更されたファイルを取得 —
mcp__alan__github_list_pr_filesを呼び出し、 変更・追加・削除されたファイルと行数を確認します。 -
既存のレビューを取得 —
mcp__alan__github_list_pr_reviewsを呼び出して、以前のレビュー状況を確認します。 -
既存のコメントを取得 —
mcp__alan__github_list_pr_commentsを呼び出して、 継続中の議論の文脈を確認します。 -
CI の状態を確認 — ヘッドブランチまたは SHA を指定して
mcp__alan__github_get_ci_statusを呼び出します。 チェックに失敗している場合は、ユーザーが完全なログを確認できるように html_url のリンクを含めます(このツールはログ出力を返しません)。 -
ソースファイルを読む — 複雑な変更については、コンテキストを把握するために Read ツールを使ってソースファイル全体を読みます(差分だけでなく)。
-
分析する — この PR によって発生した問題のみを特定します(既存の問題は対象外)。 各指摘について、重大度、ファイルパス、開始/終了行、タイトル、説明、エージェント向けの具体的な修正プロンプトを判断します。
-
レビューを投稿 — インラインコメント(指摘ごとに 1 件)と要約本文を付けて
mcp__alan__github_create_pr_reviewを呼び出します。以下の形式を参照してください。
レビューの観点(優先順位順)
- セキュリティ — インジェクション、認証の回避、コード内のシークレット、入力検証
- 正確性 — ロジックエラー、null の処理、非同期処理の問題、競合状態
- パフォーマンス — N+1 クエリ、制限のない操作、メモリの問題
- エラー処理 — 暗黙的な失敗、空の catch ブロック、握りつぶされたエラー
- 保守性 — 30 行を超える関数、深いネスト、マジックナンバー
- テストカバレッジ — 正常系のテスト有無、エッジケース、有意義なアサーション
確信度フィルター
次の条件を満たす指摘のみを含めます。
- 正確なファイルと行を示せる
- 実際の問題を引き起こす具体的な状況を説明できる
- 確信度が 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 件の場合は、問題がないことを示す要約とともに承認レビューを投稿してください。