pr-create
現在のブランチから GitHub PR を作成する。git status / diff / log を解析し、PR タイトルと body を自動生成、gh CLI で PR を open する。body は HEREDOC で整形し Co-Authored-By を付与、git add は明示指定のみ。 Use when user asks to [PR作って, PR作成, プルリク, /pr-c
SKILL.md.claude/skills/dev/pr-create/SKILL.md
GitHub現在のブランチから GitHub PR を作成する統一スキル。/deploy(develop→main 運用フロー)とは別に、feature ブランチから develop/main への個別 PR 作成 を担う。
用途
- 変更を push → PR open までの定型作業を 1 スキルに集約
- PR title 70 文字制限、HEREDOC body テンプレ、Co-Authored-By 付与を自動化
git add ./-Aの誤爆(.env・認証情報混入)を防ぐ
引数
/pr-create [--base <branch>] [--draft]
--base: PR の base ブランチ(省略時はdevelop— CLAUDE.md §2「ブランチ」に準拠)--draft: Draft PR として作成- 引数省略時: 現在の branch から
developへの PR を作成。main直指定は本番障害 hotfix のみ
実行手順
Step 1: 前提確認(並列)
以下を並列で取得:
git status --short— 未コミット変更の有無git branch --show-current— 現ブランチ名git rev-parse --abbrev-ref '@{upstream}'2>/dev/null — upstream tracking 有無git log --oneline {base}..HEAD— base からの差分コミットgit diff {base}...HEAD --stat— ファイル変更サマリ
中止条件:
- 未コミット変更がある → 「先に commit or stash してください」と報告して中止
- 現ブランチが
main/develop→ 「feature ブランチを切ってください」と報告して中止 {base}..HEADが空 → 「base との差分なし」と報告して中止
Step 2: タイトル・body 草案作成
- title: コミットメッセージ(最新 1〜3 件)から要約。70 文字以下。conventional commits プレフィックス(
feat:/fix:/chore:等)があれば踏襲 - body: 以下テンプレ
## Summary
- <要点 1>
- <要点 2>
- <要点 3>
## Test plan
- [ ] <検証項目 1>
- [ ] <検証項目 2>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Summary は git log の本文と diff stat から生成。Test plan は「何を確認すれば動いているとわかるか」を書く(テスト実行・ページ表示・型チェック等)。
Step 3: push(必要な場合)
- upstream tracking が無ければ
git push -u origin {branch} - tracking ありで local が進んでいれば
git push - base が main なら force push は絶対に行わない
Step 4: PR 作成
gh pr create \
--base "<base>" \
--title "<title>" \
--body "$(cat <<'EOF'
<body テンプレをここに埋め込む>
EOF
)" \
[--draft]
重要: body は必ず HEREDOC で渡す(改行・バッククォート・ダラーの escape を避ける)。
Step 5: URL 返却 + 次アクション提示
- gh CLI が返した PR URL を報告
- CI が走る場合はその旨を案内(
ci.ymlが PR on main/develop で実行) - draft で作成した場合は「準備できたら
gh pr ready <number>で ready に変更」と案内
例
例 1: feature ブランチから develop への PR(デフォルト)
/pr-create
→ base = develop、現在のブランチとの差分でタイトル・body 生成、gh pr create 実行。
例 2: develop から main への PR(リリース時のみ、通常は /deploy を使う)
/pr-create --base main
→ base = main、develop との差分で PR 作成。リリース用。
例 3: 本番障害 hotfix
feature ブランチを main から直接切って:
/pr-create --base main
→ hotfix 用の緊急 PR。merge 後は main → develop 逆 merge を忘れない。
例 3: Draft PR
/pr-create --draft
→ Draft として open。レビュー準備中の場合に使う。
アンチパターン
git add ./git add -Aを使わない — 明示的にファイル指定。.envなどの混入防止(CLAUDE.md §3「git addは変更したファイルだけ明示指定」)- 未コミット変更のまま PR 作成しない — 必ず Step 1 で停止
- PR title を 70 文字超にしない — 超過する場合は body で補足
--no-verifyを使わない — pre-commit / pre-push が fail したら原因を直す- force push しない — 特に base が main のとき(CLAUDE.md 明示)
commit.gpgsign=falseなどの署名バイパスを使わない — ユーザが明示的に依頼した場合のみ- 本スキル内で commit を作らない — Step 1 で未コミットを検出したらユーザに返す。commit は別タスク
トラブルシューティング
| エラー | 原因 | 対処 |
|---|---|---|
gh: command not found |
gh CLI 未インストール | brew install gh |
authentication required |
gh 未ログイン | gh auth login をユーザに案内 |
a pull request already exists |
既存 PR あり | gh pr view で URL を返す |
| push が pre-push でブロック | npm test or type-check fail |
原因を直してから再実行 |
参照
CLAUDE.md── §2「ブランチ」・§3「外科的に変更する」・§10「チェックポイント」。並行セッションの経緯は.claude/knowledge/reference/workflows.md「ブランチ・並行セッション運用」.claude/skills/dev/deploy/SKILL.md── develop→main 運用フロー(こちらは push 後のデプロイ確認まで).github/workflows/ci.yml── PR on main で走る CIscripts/install-pre-push.mjs── push 時の test + type-check 検証(Phase 2-D)