| name | pr |
| description | プロジェクトのブランチ戦略に従ってプルリクエストを作成。「PR」「プルリク」「PRを作って」「プルリク作って」「プルリクお願い」「プルリクエストを作成」「レビュー依頼して」などと言われた時、またはコミット済みの変更をマージする準備ができた時に使用 |
| allowed-tools | Read, Bash |
Pull Request Creation Workflow
このスキルはコミット済みの変更に対してプルリクエストを作成します。
前提条件: 変更が既にコミット・プッシュされていること
実行手順
1. ブランチ戦略の確認
まずREADME.mdを読み込んで、プロジェクトのブランチ戦略を理解してください:
Read README.md
ベースブランチの確認:
git branch -a
で利用可能なブランチを確認し、以下のルールに従います:
ベースブランチ選択ルール:
hotfix/*→mainをベースにする- その他すべて →
stagingが存在する場合はstaging、存在しない場合はmainをベースにする
2. 変更内容の確認
git status
git log --oneline -5
git diff origin/main...HEAD # または origin/staging...HEAD
でコミット履歴と変更内容を確認します。
3. Test・Linter実行
PR作成前に品質チェックを実行します。
プロジェクト固有のコマンドを検出:
Gemfileがある場合はrake testやbundle exec rspec、bundle exec rubocopを確認package.jsonのscripts.testやscripts.lintを確認pytest.iniやsetup.pyがある場合はpytestを確認Cargo.tomlがある場合はcargo testを確認go.modがある場合はgo test ./...を確認- README.mdに記載がある場合はそちらを優先
実行例:
# Railsプロジェクトの場合
bin/rails test
bin/rails rspec
bin/rubocop
bin/brakeman
# Rubyプロジェクトの場合
bundle exec rspec
bundle exec rubocop
# Node.jsプロジェクトの場合
npm test
npm run lint
重要: test・linterが失敗した場合、PR作成プロセスを中断してください。エラー内容をユーザーに提示し、修正を促してください。
4. PR情報の準備
以下の情報をユーザーに提示し、PR作成の許可を得てください:
- ベースブランチ:
stagingまたはmain - PRタイトル: 変更内容を簡潔に丁寧な言葉で表現
- PR本文: 以下のテンプレートに従って作成
- 英語と日本語の間に余計な半角スペースを追加しない
PR本文テンプレート:
## 概要
[変更の目的と背景を記述を丁寧な言葉で]
## 変更点
- [具体的な変更内容1を簡潔に]
- [具体的な変更内容2を簡潔に]
- [具体的な変更内容3を簡潔に]
## テスト計画
- [x] [実施済みのテスト]
- [ ] [実施予定のテスト(レビュー時に確認)]
5. ユーザー確認
PR情報をユーザーに提示し、「はい」「OK」「作成して」などの許可を得てください。
重要: ユーザーの許可なしにPRを作成しないでください。
6. PR作成
ユーザーの許可を得てから、以下のコマンドでPRを作成します:
# hotfix/* ブランチの場合のみ
gh pr create --base main --title "タイトル" --body "$(cat <<'EOF'
## 概要
...
## 変更点
...
## テスト計画
...
EOF
)"
# その他すべて(feature/*, bugfix/*, refactor/*, chore/*, test/*, docs/*)
# stagingが存在する場合
gh pr create --base staging --title "タイトル" --body "$(cat <<'EOF'
...
EOF
)"
# stagingが存在しない場合
gh pr create --base main --title "タイトル" --body "$(cat <<'EOF'
...
EOF
)"
7. PR URLの確認
PR作成後、URLをユーザーに提示します。
チェックリスト
実行前に確認すべき項目:
- README.mdを読み込んでブランチ戦略を理解した
-
git branch -aで利用可能なブランチを確認した - 変更が既にコミット・プッシュされている
- test・linterを実行し、全て成功したことを確認した
- ベースブランチを正しく選択した(
stagingが存在する場合はstaging、存在しない場合やhotfixの場合はmain) - PR情報をユーザーに提示し、許可を得た
- PR本文に「概要」「変更点」「テスト計画」を含めた
よくある間違い
❌ 間違い: testが失敗しているのにPRを作成 ✅ 正解: test・linterが全て成功してからPR作成
❌ 間違い: ユーザーの許可なしにPRを作成 ✅ 正解: 必ずPR情報を提示してユーザーの許可を得る
❌ 間違い: git branch -aでブランチを確認せずに決め打ちでベースブランチを指定
✅ 正解: 必ずgit branch -aで利用可能なブランチを確認してから指定
❌ 間違い: PR作成時にベースブランチを指定しない(デフォルトはmainになる)
✅ 正解: 必ず--base stagingまたは--base mainを明示的に指定
❌ 間違い: stagingが存在しないプロジェクトで--base stagingを指定
✅ 正解: git branch -aで確認し、存在しない場合は--base mainを指定
使用例
例1: 新機能追加の場合(stagingあり)
ステップ1: ブランチ確認
git branch -a
# staging が存在することを確認
ステップ2: Test・Linter実行
npm test
npm run lint
# 全てのテストが成功したことを確認
ステップ3: PR情報をユーザーに提示
以下の内容でPRを作成してよろしいですか?
ベースブランチ: staging
タイトル: [変更内容を簡潔に表現]
本文:
## 概要
[変更の目的と背景]
## 変更点
- [具体的な変更内容]
## テスト計画
- [x] [実施済みのテスト]
- [ ] [実施予定のテスト]
ステップ4: ユーザーの許可を待つ
ステップ5: 許可後にPR作成
gh pr create --base staging --title "ユーザー検索機能を追加" --body "$(cat <<'EOF'
## 概要
ユーザー一覧画面に検索機能を追加しました。
## 変更点
- 名前・メールアドレスでの検索に対応
- ページネーション実装
- 検索条件の保持機能追加
## テスト計画
- [x] 単体テスト実施
- [x] 検索機能の動作確認
- [ ] レビュー後に結合テスト実施
EOF
)"
例2: ドキュメント更新の場合(stagingなし)
ステップ1: ブランチ確認
git branch -a
# stagingが存在しないことを確認
ステップ2: Test・Linter実行
# ドキュメントのみの変更の場合、testがなければスキップ
# 構文チェックなどがあれば実行
ステップ3: PR情報をユーザーに提示
以下の内容でPRを作成してよろしいですか?
ベースブランチ: main
タイトル: [変更内容を簡潔に表現]
本文:
## 概要
[変更の目的と背景]
## 変更点
- [具体的な変更内容]
## テスト計画
- [x] [実施済みのテスト]
- [ ] [実施予定のテスト]
ステップ4: ユーザーの許可を待つ
ステップ5: 許可後にPR作成
gh pr create --base main --title "ユーザー検索機能を追加" --body "$(cat <<'EOF'
## 概要
ユーザー一覧画面に検索機能を追加しました。
## 変更点
- 名前・メールアドレスでの検索に対応
- ページネーション実装
- 検索条件の保持機能追加
## テスト計画
- [x] 単体テスト実施
- [x] 検索機能の動作確認
- [ ] レビュー後に結合テスト実施
EOF
)"
PRのマージ(ユーザーから指示があった場合)
gh pr merge <PR番号> --merge --delete-branch
注意: プロジェクトではMerge commitを使用します(Squash mergeは使用しない)。