mcpField
P
pr

pr

github.com/derogab開発4364 回インストール6 日前に更新
リポジトリ

pr について

現在のブランチのプルリクエストを作成・更新するスキルです。ブランチ確認、変更分析、タイトルと本文の準備、PR 操作を案内し、ステージングやコミットは行いません。

主な機能

  1. 01ベースブランチとコミットの確認
  2. 02ブランチ差分と履歴の分析
  3. 03gh による PR の作成・更新
  4. 04PR テンプレートの確認と適用
  5. 05ステージングやコミットを行わない

活用シーン

  1. 01フィーチャーブランチから PR を作成
  2. 02既存ブランチの PR を更新
  3. 03リポジトリの変更から PR 本文を準備

インストール

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

$npx skills add https://github.com/derogab/agent-kit --skill pr

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

同梱ファイルagents/openai.yaml

詳細

コンテキスト

  • 現在のブランチ:!git branch --show-current
  • デフォルトブランチの候補:!git branch -r | grep -E 'origin/(main|master)'
  • このブランチの PR:!gh pr view --json number,title,url 2>/dev/null || echo "NO_PR"

タスク

現在のブランチのプルリクエストを作成または更新します。

事前確認
  1. 次を実行してベースブランチを検出します:git rev-parse --verify origin/main >/dev/null 2>&1 && echo main || echo master。これを <base> として使用します。
  2. 現在のブランチがベースブランチの場合は、そこで停止し、先にフィーチャーブランチへ切り替えるようユーザーに伝えます。それ以外の操作は行いません。
  3. git log <base>..HEAD --oneline を実行します。ベースブランチより先のコミットがない場合は、そこで停止し、先に変更をコミットするようユーザーに伝えます。それ以外の操作は行いません。
  4. git add や git commit は実行しないでください。PR の管理のみを行います。
分析
  1. git diff <base>...HEAD を実行し、このブランチのすべての変更の完全な差分を取得します。
  2. git log <base>..HEAD --format="%h %s" を実行し、すべてのコミットメッセージを取得します。
  3. 主なトピックを特定し、具体的な変更を論理的に分類します。
作成または更新の判断
  • 上記の PR コンテキストに NO_PR と表示されている場合 → 新しい PR を作成します。
  • 現在のブランチの PR が見つかった場合 → その PR を更新します。
PR のタイトル

Conventional Commits 形式 <type>: <description> に従います。

種類: feat、fix、docs、refactor、test、chore、build、perf、ci。破壊的変更の場合は ! を付けます。

更新時は、既存のタイトルが汎用的(例:「Update」)、古くなっている、または Conventional Commits に準拠していない場合を除き、既存のタイトルを維持します。

PR 本文の形式

まず、リポジトリに PR テンプレートがあるか確認します。次のファイルを順番に探します。

  1. リポジトリのルートにある pull_request_template.md
  2. .github/pull_request_template.md
  3. .github/PULL_REQUEST_TEMPLATE/*.md

.github/PULL_REQUEST_TEMPLATE/ に複数のテンプレートがある場合:

  • そのディレクトリ内のすべてのテンプレートファイルを読みます。
  • 変更内容(変更されたファイルの種類や変更の性質)を分析します。
  • ファイル名と内容が変更に最も合致するテンプレートを選択します(例:バグ修正には bugfix.md、新機能には feature.md、ドキュメントの変更には docs.md)。

テンプレートが見つかった場合:

  • テンプレートの内容を PR 本文として使用します。
  • プレースホルダー変数(例:{{description}}、{{summary}})を、変更内容から導き出した実際の内容に置き換えます。
  • テンプレートにチェックリストが含まれている場合は、実際に完了し、確認できた項目のみチェックします。関連作業が未完了、未検証、または失敗している項目は未チェックのままにします。
  • チェックリスト項目の確認に必要な検証(差分の確認、ファイルの調査、利用可能な検証コマンドの実行など)を合理的に実施できる場合は、チェックするか判断する前に実行します。

テンプレートが見つからない場合は、次のデフォルト形式を使用します。

## Summary
<1-2 sentence high-level description of what this PR does and why>

## Changes
<bulleted list of all meaningful changes, grouped logically>

## Test plan
<bulleted checklist of how to verify these changes>
実行

作成の流れ:

  1. ブランチを origin にプッシュします:git push -u origin <branch>。
  2. PR を作成します:
    gh pr create --title "<title>" --body "$(cat <<'EOF'
    <body>
    EOF
    )"
    

更新の流れ:

  1. PR を更新します:
    gh pr edit --title "<title>" --body "$(cat <<'EOF'
    <body>
    EOF
    )"
    
ルール
  • 変更の理由と内容を中心に、概要は平易な英語で記述します。
  • 変更点は簡潔な箇条書きで列挙します。PR が複数の領域にまたがる場合は、関連項目を小見出しの下にまとめます。
  • テスト計画には、変更内容に即した実行可能な検証手順を記載します。すでにチェックを実行して合格している場合は、完了としてマークします。
  • PR 本文にテンプレート由来のチェックリストが含まれる場合、すべての項目に自動でチェックを入れないでください。チェックを入れる項目は、実際に完了し、確認済みの作業に対応している必要があります。
  • チェックリスト項目を利用可能な証拠やコマンドで検証できる場合は、推測せずに検証します。
  • ツール呼び出し以外のテキストは送信しないでください。

コメント