create-pr

SKILL.md

Create a GitHub Pull Request

前提条件

  • GitHub CLI か GitHub MCP が使えること。
  • gh --version が成功したら GitHub CLI を使い、使えない場合は GitHub MCP を使用する。両方使えなければ停止する。
  • GitHub CLIを使う場合、認証されていることを確認するために gh auth status を実行する。認証されていない場合はそのまま続行せず、ユーザーに gh auth login を実行するように依頼する。(そして gh auth status を再実行する)
  • この skill 内で示す相対パスは SKILL.md がある skill ディレクトリ基準で解決する。

ワークフロー

1. ユーザーへの確認

作業開始時はカレントブランチとベースブランチ候補を確認し、必要事項をユーザーに確認する。ユーザーへの質問ツールが使える場合は必ずそれを使う。

  • 以下をこの順で実行する。
git branch --show-current
git branch -a
bash <skill-dir>/scripts/estimate-base-branches.sh
  • <skill-dir>/scripts/estimate-base-branches.sh が存在する場合は必ず実行し、出力された上位候補をベースブランチ確認の材料にする。

  • 推定結果は参考情報として扱い、ベースブランチはユーザーに最終確認する。

  • ベースブランチ: PRのマージ先ブランチ

    • 上位候補を優先して提示する。
    • 候補が弱い場合だけ main を既定候補として提示する。必要なら git branch -a や推定結果の詳細は内部判断に使う。
    • 候補が得られた場合は、表示可能な件数の範囲で上位候補をブランチ名だけ見せる。
  • チケットIDまたは関連リンク

2. Gitの状態を確認

以下を実行して状態を確認する。

git status
git branch --show-current
git log <base-branch>..HEAD --oneline
git diff <base-branch> --stat
git remote get-url origin
  • 未コミットの変更があれば停止する。
  • git log <base-branch>..HEAD --oneline が空なら停止する。
  • git diff <base-branch> --stat が空なら停止する。
  • origin が取得できなければ停止する。
  • ブランチが未 push なら git push -u origin <branch> を実行し、失敗したら停止する。

3. PRテンプレート選択と本文生成

GitHub のサポート対象に合わせて、次の手順でPR本文のテンプレートを選び、本文を生成する。

  1. 以下のコマンドを実行してリポジトリ内のPRテンプレートファイルを一覧する。

    git ls-files --cached --others --exclude-standard | rg -i '^((docs|\.github)/)?pull_request_template(\.[^/]+|/.+)?$' || echo "No Pull Request templates found"
    
  2. テンプレートを選ぶ。

    • リポジトリ固有のテンプレートが見つかったらそれを採用する。
    • 複数テンプレート用ディレクトリしか見つからない場合は、ユーザー指定のテンプレート名を優先する。
    • 複数のテンプレート候補があり、ユーザー指定も推測材料もない場合は、候補一覧を示して選択を確認してから進める。
    • リポジトリ固有のテンプレートが見つからなければ references/default-pr-template.md を使う。
  3. 本文を生成する。

    • 選んだテンプレートの見出し、順序、HTMLコメント、チェックリストを維持する。
    • テンプレート項目のうち自動推測できないものだけを追加確認する。
    • PRタイトルは Conventional Commits 形式で作り、typescopesummary は差分とコミット履歴から総合的に決定する。単一の scope に絞れない場合は type: summary を使う。
    • 本文はテンプレートの各項目を実際の差分とコミット履歴に基づいて埋め、影響範囲は git diff <base-branch> --stat をもとに整理する。

4. プレビュー

  • タイトルと本文をユーザーに提示する。
  • 修正依頼があれば反映してから作成に進む。

5. PR作成

  • push 済みかつ差分とコミットがある状態でのみ次に進む。
  • gh CLI を使う場合は gh pr create を実行する。
  • gh が使えない場合は GitHub MCP の PR 作成機能を使う。
  • 作成後にPRのURLを共有する。

作業時のルール

  • ユーザーへの確認が必要な時、ユーザーに質問をするためのツール(AskQuestion/AskUserQuestionなど)が使える場合は優先して使用する。ユーザーに質問をするためのツールが利用できない場合はチャットで質問する。
  • <skill-dir>/scripts/estimate-base-branches.sh の出力は新しい共通祖先日時順の候補一覧として扱い、上位数件だけを要約して見せる。
  • 推定スクリプトは committerdate が新しいリモートブランチから順に確認する想定で、必要なら ESTIMATE_BASE_BRANCHES_MAX_CANDIDATES で確認件数を調整してよい。
Weekly Installs
2
GitHub Stars
3
First Seen
5 days ago
Installed on
amp2
cline2
opencode2
cursor2
kimi-cli2
codex2