hub のリポジトリ標準テンプレートを使用して、Pull Requestを作成します。ユーザーがPR作成、PRのタイトル/本文の作成、ブランチの変更内容の要約、日本語または英語でのPR準備を依頼した際に使用します。ユーザーの言語設定(日本語または英語)に基づいて `.github/pull_request_template_ja.md` または `.github/pull_request_template.md` を選択し、hubのPR形式に従って内容を作成します。
現在のブランチとベースブランチの全変更内容に基づいてPRを生成し、最後のコミットだけでなく全体を考慮する。
リポジトリにあるテンプレートを厳格に使用し、独自のPR構成を勝手に作らない。
ユーザーの言語(日本語または英語)に応じてテンプレートを選択するが、PRのタイトルは常に英語とし、規定の命名形式に従う。
実際に gh pr create を実行する前に、必ず base、title、body をユーザーに確認させ、承諾を得てからPRを作成する。
以下のいずれかの場合に、このスキルを使用します:
gh pr create を使用して hub にPRを出す常に以下のテンプレートのいずれかを使用します:
.github/pull_request_template_ja.md.github/pull_request_template.mdセクション名を勝手に変更したり、テンプレートの基本構造を削除したりしないでください。コメントやプレースホルダーは削除しても構いませんが、最終的に提出するセクションは維持してください。
以下の優先順位で判断します:
コードやブランチ名、コミットメッセージが英語だからといって、無理に英語テンプレートを使用する必要はありません。
ただし、テンプレートが日本語・英語のいずれであっても:
PR title は必ず英語にするPR title は規定のフォーマット(type/scope等)に従うPR body の内容は選択した言語に合わせるPRを作成する前に、以下を必ず確認してください:
base...HEAD の完全な diff作業ディレクトリの未コミット内容や、最新の1つのコミットだけで判断しないでください。
ユーザーが「直接PRを作成して」と言った場合でも、以下の手順を踏みます:
base、title、body の下書きを生成gh pr create を実行するユーザーが途中でタイトルやタイプ、チェンジログ、ターゲットブランチの変更を求めた場合は、下書きを更新して再度確認してください。
本文はファイルごとの修正リストではありません。「なぜ変更したか」「開発者やユーザーにどのような影響があるか」を要約してください。
以下が不明で、ブランチの内容からも確実に推測できない場合:
下書きでは不明な点を明示し、ユーザーに確認を求めてください。
以下を確認することを推奨します:
git status --short
git branch --show-current
git remote -v
gh auth status
gh が使えない、ログインしていない、gitリポジトリでない、現在のブランチがPRに適さない場合は、問題を説明し、処理を継続しないでください。
デフォルトで main を使うのではなく、以下の順で判断します:
base branch を明示している場合 -> それを使用git branch -vv で tracking/upstream を確認git reflog show <current-branch> でチェックアウト元を確認git merge-base HEAD <candidate-branch> で分岐点を比較base にするmain)とする推奨コマンド:
git branch --show-current
git branch -vv
git reflog show --date=local $(git branch --show-current)
git remote -v
少なくとも以下を確認してください:
git log --oneline <base>..HEAD
git diff --stat <base>...HEAD
git diff <base>...HEAD
PRに含まれる全コミットを網羅し、最後の変更だけに偏らないように要約します。
「ユーザーの習慣に合わせる」ルールに基づき選択:
.github/pull_request_template_ja.md.github/pull_request_template.md該当するテンプレートを読み込んでから記入してください。
変更の「主目的」に基づいて判断します。
優先判断順位:
server 関連、fix または featui 関連、fix または featinfra / ci / choredocsrefactor / test / perfプロジェクトの commitlint.config.js は @commitlint/config-conventional に従っています。
少なくとも以下を整理します:
close #xxxx 等make test, make gen 等の実行確認以下のようなケースでは、実質的な更新ログは不要です:
docsci / choreこれらの場合:
N/A や No changelog required と記載するタイトル要件:
type(scope): subject 形式(例: feat(server): add user api)記入時の注意:
出力には以下を含めてください:
Base branchPR titlePR body明確に確認を得るまで gh pr create は実行しません。
確認が得られたら実行します。
gh repo view --json nameWithOwner
リポジトリ名を確認し、正しいリポジトリにPRを作成するようにしてください。
実行例:
gh pr create --base <base> --title "<title>" --body "$(cat <<'EOF'
<body>
EOF
)"
作成成功後、PRのリンクを表示します。
type: subject または type(scope): subjectupdate, fix issues, misc changes 等の抽象的な表現は避けるN/A 等を使用詳細なタイプ判断やタイトルの具体例は references/template-notes-and-examples.md を参照してください。