mcpField
P
pr-reference

pr-reference

github.com/microsoft開発1.6k60 回インストール今日更新
リポジトリ

pr-reference について

Git のコミットメタデータと差分を集め、構造化 XML を生成する PR 参照作成スキルです。Bash と PowerShell のスクリプトを備え、レビュー準備、PR 説明、作業項目の発見、変更ファイルの分析に使えます。

主な機能

  1. 01コミット情報と差分から XML を生成
  2. 02Bash と PowerShell の実装
  3. 03比較先ブランチとマージベースの指定
  4. 04拡張子やパスによるファイル除外
  5. 05変更ファイルの一覧と差分チャンクの確認

活用シーン

  1. 01コードレビュー用の構造化コンテキスト作成
  2. 02コミット履歴から PR 説明を作成
  3. 03ブランチ変更から作業項目を発見
  4. 04大規模な差分から対象ファイルを確認

インストール

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

$npx skills add https://github.com/microsoft/hve-core --skill pr-reference

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
REFERENCE.md
scripts/
generate.ps1
generate.sh
list-changed-files.ps1
list-changed-files.sh
read-diff.ps1
read-diff.sh
shared.psm1
tests/
generate.Tests.ps1
list-changed-files.Tests.ps1
read-diff.Tests.ps1
shared.Tests.ps1

詳細

PR 参照生成スキル

概要

git からコミットのメタデータと差分の出力を取得し、構造化された XML ドキュメントを生成します。bash と PowerShell の両方の実装が用意されています。

用途:

  • コミット履歴からの PR の説明文の生成
  • 構造化された差分コンテキストを使ったコードレビューの準備
  • ブランチの変更を分析した作業項目の特定
  • 変更されたファイルのセキュリティ分析

生成が正常に完了したら、応答に XML 出力の絶対パスへのファイルリンクを含めてください。

前提条件

リポジトリには、ベースブランチから分岐したコミットが少なくとも 1 つ必要です。

プラットフォームランタイム
macOS / LinuxBash(プリインストール済み)
WindowsPowerShell 7+ (pwsh)
クロスプラットフォームPowerShell 7+ (pwsh)

クイックスタート

次のコマンドを実行すると、デフォルト設定(origin/main との比較)で PR 参照を生成できます。

scripts/generate.sh
scripts/generate.sh --base-branch auto --merge-base --exclude-ext yml,json
scripts/generate.ps1
scripts/generate.ps1 -BaseBranch auto -MergeBase -ExcludeExt yml,json

デフォルトでは、出力は .copilot-tracking/pr/pr-reference.xml に保存されます。

パラメーターリファレンス

パラメーターフラグ(bash)フラグ(PowerShell)デフォルト説明
ベースブランチ--base-branch-BaseBranchorigin/main(bash)/main(PowerShell)比較対象のブランチです。リモートのデフォルトを検出するには auto を使用します。
マージベース--merge-base-MergeBasefalse3 ウェイ比較に git merge-base を使用します
Markdown を除外--no-md-diff-ExcludeMarkdownDifffalse差分から Markdown ファイル(*.md)を除外します
拡張子を除外--exclude-ext-ExcludeExt(none)除外する拡張子をカンマ区切りで指定します(例:yml,yaml,json,png)
パスを除外--exclude-path-ExcludePath(none)除外するパスのプレフィックスをカンマ区切りで指定します(例:ドキュメントや GitHub 設定のディレクトリ)
出力パス--output-OutputPath.copilot-tracking/pr/pr-reference.xmlカスタム出力ファイルのパス

どちらのデフォルト設定でも、同じリモートとの比較になります。PowerShell スクリプトでは、ブランチ名のみが指定された場合に origin/<branch> が自動的に解決されます。

追加スクリプトのリファレンス

PR 参照を生成した後、これらのユーティリティスクリプトを使用して XML を照会できます。

変更されたファイルの一覧表示

リストスクリプトを実行して、差分からファイルパスを抽出します。

scripts/list-changed-files.sh                              # all changed files
scripts/list-changed-files.sh --type added                  # filter by single type
scripts/list-changed-files.sh --type added,modified,renamed  # filter by multiple types
scripts/list-changed-files.sh --exclude-type deleted         # exclude specific types
scripts/list-changed-files.sh --format markdown              # output as markdown table
scripts/list-changed-files.ps1                             # all changed files
scripts/list-changed-files.ps1 -Type Added                  # filter by single type
scripts/list-changed-files.ps1 -Type Added,Modified,Renamed # filter by multiple types
scripts/list-changed-files.ps1 -ExcludeType Deleted          # exclude specific types
scripts/list-changed-files.ps1 -Format Json                  # output as JSON
パラメーターフラグ(bash)フラグ(PowerShell)デフォルト説明
入力パス--input, -i-InputPath(auto)pr-reference.xml へのパス
種類フィルター--type, -t-Typeall対象に含める変更の種類(カンマ区切り:added、modified など)
除外する種類--exclude-type-ExcludeType(none)除外する変更の種類。--type が all 以外の場合は併用できません
形式--format, -f-Formatplain出力形式:plain、json、または markdown
差分内容の読み取り

読み取りスクリプトを実行して、大きな差分を分割しながら内容を確認します。

scripts/read-diff.sh --info             # chunk info (count, line ranges)
scripts/read-diff.sh --chunk 1          # read a specific chunk
scripts/read-diff.sh --file src/main.ts  # extract diff for one file
scripts/read-diff.sh --summary          # file stats summary
scripts/read-diff.ps1 -Info              # chunk info
scripts/read-diff.ps1 -Chunk 1           # read a specific chunk
scripts/read-diff.ps1 -File "src/main.ts" # extract diff for one file

出力形式

生成される XML では、コミットメタデータと統一差分出力が <commit_history> ルート要素で囲まれます。XML スキーマ全体、要素のリファレンス、出力パスのバリエーション、ワークフローとの統合パターンについては、リファレンスガイドを参照してください。

トラブルシューティング

症状原因解決方法
「コミットが見つかりません」または XML が空ベースブランチから分岐したコミットがありませんgit log base..HEAD で、ベースブランチより先行するコミットがあることを確認してください
「ブランチが見つかりません」エラーベースブランチの参照がローカルにありませんgit fetch origin を実行して、リモート追跡参照を更新してください
「git: command not found」git が PATH にありませんgit をインストールするか、PATH に git のバイナリディレクトリが含まれていることを確認してください

コメント