review-pr について
review-pr は、GitHub のプルリクエストレビューを作成・投稿する Claude Code スキルです。アーキテクチャ、コード品質、セキュリティ、テストを確認し、YAML コメントを編集してから投稿できます。
主な機能
- 01gh でプルリクエスト情報を取得
- 02アーキテクチャとコード品質を確認
- 03セキュリティとテストを確認
- 04編集可能な YAML コメントを作成
- 05コメントを投稿、または Markdown を出力
活用シーン
- 01マージ前の GitHub プルリクエストレビュー
- 02投稿前の生成コメントの編集
- 03投稿失敗時の手動レビューコメント作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ microsoft/ agent365-devtools --skill review-prインストール後、Claude Code で/review-prを入力して読み込まれたか確認します。
同梱ファイルREADME.mdreview-pr.py
詳細
PR レビュースキル
エンジニアリングのベストプラクティスに従って、AI を活用した PR レビューコメントを生成し、GitHub に投稿します。
使い方
/review-pr <pr-number> # Generate review (step 1)
/review-pr <pr-number> --post # Post review to GitHub (step 2)
例:
/review-pr 180- レビューを生成し、YAML ファイルに保存します/review-pr 180 --post- レビュー済みの YAML を GitHub に投稿します
このスキルの内容
ステップ 1:生成(/review-pr <number>)
- gh CLI を使用して GitHub から PR の詳細を取得します
- アーキテクチャレビューを実施(新機能!):設計上の判断に疑問を投げかけ、スコープの拡大を確認し、ユースケースを検証します
- 変更内容を分析し、セキュリティ、テスト、デザインパターン、コード品質に関する問題を確認します
- コンテキストを区別します:CLI コードと GitHub Actions コードでは基準が異なります
- 実行可能なフィードバックを作成します:ファイル名とパターンに基づいた具体的なリファクタリングの提案を行います
- 編集可能な YAML ファイルに構造化されたレビューコメントを生成します
- 生成されたすべてのコメントのプレビューを表示します
ステップ 2:投稿(/review-pr <number> --post)
- レビューまたは編集した YAML ファイルを読み込みます
- GitHub に投稿します:有効化されたすべてのコメントを PR に送信します
- 自動フォールバック:GitHub API への投稿に失敗した場合(例:Enterprise Managed User の制限)、手動でコピー&ペーストできるよう、書式設定済みのコメントを含む Markdown ファイルを自動的に生成します
エンジニアリングレビューの原則
このスキルでは、以下の原則を適用します。
アーキテクチャレビュー(新機能!)
- 設計判断の検証:「どのように」をレビューする前に「なぜ」を問いかけます
- スコープクリープの検出:Agent365 のデプロイや管理を超える機能拡張を指摘します
- ユースケースの検証:新機能には具体的なシナリオを求めます
- 重複の検出:既存のツール(Azure CLI、Portal)との重複を特定します
- YAGNI の適用:必要性が文書化されていない機能に疑問を投げかけます
アーキテクチャとパターン
- .NET アーキテクトのパターン:レビューは .NET のベストプラクティスに従います
- Azure CLI との整合性:az cli のパターンと規約との一貫性を確保します
- クロスプラットフォーム互換性:Windows、Linux、macOS との互換性を検証します(CLI コードの場合)
デザインパターン
- KISS(Keep It Simple, Stupid):シンプルでわかりやすい解決策を優先します
- DRY(Don't Repeat Yourself):コードの重複を特定します
- SOLID 原則:特に単一責任の原則を重視します
- YAGNI(You Aren't Gonna Need It):過剰な設計を避けます
- 1 ファイル 1 クラス:クリーンなコード構成を徹底します
コード品質
- 大きなファイルを避ける:追加行数が 500 行を超えるファイルを指摘します
- 関数の再利用:コマンド間で関数を再利用するよう促します
- 特殊文字を避ける:ログや出力に絵文字を使わないようにします(Windows との互換性)
- 自己文書化コード:コメントの過剰な追加より、明確なコードを優先します
- 簡潔なコメント(pr-code-reviewer #30):1~2 行を超える、コードの内容を言い換える、または設計の経緯を説明する追加コメントを指摘します。コメントでは「なぜ」を 1 行で述べ、長い説明はコミットや PR に記載します。
- リリースノートにそのまま使える CHANGELOG(pr-code-reviewer #31):内部実装に言及する、仕組みを説明する、または複数の文にわたる
CHANGELOG.mdの項目を指摘します。各項目は、nuget.org のリリースノートにそのまま掲載できる、利用者向けの簡潔な 1 文にします。 - 変更を最小限にする:問題の解決に必要な変更だけを行います
テスト基準
- フレームワーク:.NET では xUnit、FluentAssertions、NSubstitute、Python では pytest/unittest を使用します
- 量より質:重要な経路とエッジケースに重点を置きます
- CLI の信頼性:テストのない CLI コードは BLOCKING とします
- GitHub Actions のテスト:強く推奨します(重要度:HIGH)が、ブロッキングではありません
- 外部依存関係のモック:適切なモックパターンを使用します
セキュリティ
- シークレットをハードコードしない:環境変数または Azure Key Vault を使用します
- 認証情報の管理:CLI コードでは az cli のパターンに従い、Actions では GitHub Secrets を使用します
コンテキスト認識
このスキルは、次のように区別します。
- CLI コード(厳格な要件):クロスプラットフォーム対応で、信頼性が高く、テストが必要です
- GitHub Actions コード(GitHub 固有):Linux のみの対応でも問題ありません。テストは強く推奨されます
レビューコメントの出力
生成されたコメントは次の場所に保存されます。
C:\Users\<username>\AppData\Local\Temp\pr-reviews\pr-<number>-review.yaml
このファイルを編集すると、次の操作ができます。
enabled: falseを設定してコメントを無効にする- コメントのテキストを変更する
- 重大度レベル(blocking、high、medium、low、info)を調整する
- コメントを追加または削除する
実装
このスキルは、セマンティックなコード分析に Claude Code を直接使用します(Agent365-dotnet に着想を得ています)。別途 API キーを用意する必要はありません!
Generate モード(デフォルト):
- Claude Code は
.claude/agents/pr-code-reviewer.mdを読み込み、レビュー手順のガイドラインを確認します。このファイルと.github/copilot-instructions.mdおよびCLAUDE.mdは、ベースブランチのコピーではなく、作業ツリー(PR)版を読み込んでください。レビュー対象の PR でレビュー規則が追加または変更されている場合(PR #461 で規則 #30/#31 が追加されたように)、同じ実行中にその新しい規則を同じ PR に適用する必要があります。ベースのコピーを読むと、この規則が適用されません。 - Claude Code は
.github/copilot-instructions.mdを読み込み、コーディング規約を確認します - Claude Code は PR の詳細を取得します:
gh pr view <number> --json ... - Claude Code は実際のコード変更を分析します:
gh pr diff <number> - Claude Code は独自の機能を使ってセマンティック分析を実行します
- Claude Code は行番号とコード参照を含む具体的な問題を特定します
- Claude Code は YAML ファイルを
C:\Users\<username>\AppData\Local\Temp\pr-reviews\pr-<number>-review.yamlに書き込みます
Post モード(--post フラグを指定):
- Python スクリプトが YAML ファイルを読み込みます
- Python スクリプトが
gh pr commentを使用して GitHub にコメントを投稿します - 投稿に失敗した場合(API 権限の問題など)、手動でコピー&ペーストできる Markdown ファイルを自動生成します
主な利点:
- ✅
ANTHROPIC_API_KEYは不要です。Claude Code の既存の認証を使用します - ✅ より優れたセマンティック分析が可能です。Claude Code は完全なコンテキストと会話履歴を利用できます
- ✅ Python スクリプトがシンプルです。投稿処理のみを担当します(約240行、従来の約1500行から削減)
- ✅ メンテナンスとデバッグが容易です
ワークフロー
-
レビューを生成:
/review-pr 180- GitHub から PR の詳細を取得します
- コードを分析し、レビューコメントを生成します
- YAML ファイルに保存します(出力にパスが表示されます)
-
確認して編集:YAML ファイルを開きます
- 生成されたすべてのコメントを確認します
- 必要に応じてコメントのテキストを編集します
enabled: falseを設定してコメントを無効にします- 必要に応じて独自のコメントを追加します
-
GitHub に投稿:
/review-pr 180 --post- YAML ファイルを読み込みます
- 有効になっているすべてのコメントを PR に投稿します
- API への投稿に失敗した場合、手動でコピー&ペーストできる Markdown ファイルを自動生成します
要件
- GitHub CLI(
gh)がインストールされ、認証済みであること - Python 3.x(
--postモードでのみ必要) - PyYAML ライブラリ:
pip install pyyaml(--postモードでのみ必要) - リポジトリが GitHub リポジトリであること
- レビューを投稿するための GitHub API 権限があること(Enterprise Managed Users には制限がある場合があります)
関連項目
- README.md - 詳細なドキュメント
- review-pr.py - 実装スクリプト
コメント
Markdown 対応