mcpField
R
review-pr

review-pr

github.com/microsoftテスト・品質6147 回インストール今日更新
リポジトリ

review-pr について

review-pr は、GitHub のプルリクエストレビューを作成・投稿する Claude Code スキルです。アーキテクチャ、コード品質、セキュリティ、テストを確認し、YAML コメントを編集してから投稿できます。

主な機能

  1. 01gh でプルリクエスト情報を取得
  2. 02アーキテクチャとコード品質を確認
  3. 03セキュリティとテストを確認
  4. 04編集可能な YAML コメントを作成
  5. 05コメントを投稿、または Markdown を出力

活用シーン

  1. 01マージ前の GitHub プルリクエストレビュー
  2. 02投稿前の生成コメントの編集
  3. 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>)

  1. gh CLI を使用して GitHub から PR の詳細を取得します
  2. アーキテクチャレビューを実施(新機能!):設計上の判断に疑問を投げかけ、スコープの拡大を確認し、ユースケースを検証します
  3. 変更内容を分析し、セキュリティ、テスト、デザインパターン、コード品質に関する問題を確認します
  4. コンテキストを区別します:CLI コードと GitHub Actions コードでは基準が異なります
  5. 実行可能なフィードバックを作成します:ファイル名とパターンに基づいた具体的なリファクタリングの提案を行います
  6. 編集可能な YAML ファイルに構造化されたレビューコメントを生成します
  7. 生成されたすべてのコメントのプレビューを表示します

ステップ 2:投稿(/review-pr <number> --post)

  1. レビューまたは編集した YAML ファイルを読み込みます
  2. GitHub に投稿します:有効化されたすべてのコメントを PR に送信します
  3. 自動フォールバック: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 モード(デフォルト):

  1. Claude Code は .claude/agents/pr-code-reviewer.md を読み込み、レビュー手順のガイドラインを確認します。このファイルと .github/copilot-instructions.md および CLAUDE.md は、ベースブランチのコピーではなく、作業ツリー(PR)版を読み込んでください。レビュー対象の PR でレビュー規則が追加または変更されている場合(PR #461 で規則 #30/#31 が追加されたように)、同じ実行中にその新しい規則を同じ PR に適用する必要があります。ベースのコピーを読むと、この規則が適用されません。
  2. Claude Code は .github/copilot-instructions.md を読み込み、コーディング規約を確認します
  3. Claude Code は PR の詳細を取得します:gh pr view <number> --json ...
  4. Claude Code は実際のコード変更を分析します:gh pr diff <number>
  5. Claude Code は独自の機能を使ってセマンティック分析を実行します
  6. Claude Code は行番号とコード参照を含む具体的な問題を特定します
  7. Claude Code は YAML ファイルを C:\Users\<username>\AppData\Local\Temp\pr-reviews\pr-<number>-review.yaml に書き込みます

Post モード(--post フラグを指定):

  1. Python スクリプトが YAML ファイルを読み込みます
  2. Python スクリプトが gh pr comment を使用して GitHub にコメントを投稿します
  3. 投稿に失敗した場合(API 権限の問題など)、手動でコピー&ペーストできる Markdown ファイルを自動生成します

主な利点:

  • ✅ ANTHROPIC_API_KEY は不要です。Claude Code の既存の認証を使用します
  • ✅ より優れたセマンティック分析が可能です。Claude Code は完全なコンテキストと会話履歴を利用できます
  • ✅ Python スクリプトがシンプルです。投稿処理のみを担当します(約240行、従来の約1500行から削減)
  • ✅ メンテナンスとデバッグが容易です

ワークフロー

  1. レビューを生成:/review-pr 180

    • GitHub から PR の詳細を取得します
    • コードを分析し、レビューコメントを生成します
    • YAML ファイルに保存します(出力にパスが表示されます)
  2. 確認して編集:YAML ファイルを開きます

    • 生成されたすべてのコメントを確認します
    • 必要に応じてコメントのテキストを編集します
    • enabled: false を設定してコメントを無効にします
    • 必要に応じて独自のコメントを追加します
  3. 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 には制限がある場合があります)

関連項目

コメント