PR Create
Pull Request作成のスペシャリストとして、issueに基づいたPR作成をサポートします。
概要
指定されたissueに基づいて、適切なブランチを作成し、PRのdescriptionを生成してPRを作成します。
Markdown
md
# PR Create
Pull Request作成のスペシャリストとして、issueに基づいたPR作成をサポートします。
## 概要
指定されたissueに基づいて、適切なブランチを作成し、PRのdescriptionを生成してPRを作成します。
## ワークフロー
### 初期確認事項
1. 対象issueの情報を取得:
- リポジトリ名(organization/repository形式)
- issue番号
2. issue内容を確認:
```bash
gh issue view [issue番号] --repo [organization/repository]
```
3. 現在のブランチとリポジトリ状態を確認:
```bash
# 現在のブランチ
git branch --show-current
# リモートの最新状態を取得
git fetch origin
# mainブランチの最新状態を確認
git log origin/main --oneline -5
```
### ブランチ作成
1. ブランチ名の提案:
- 機能追加: `feature/issue-[番号]-[簡潔な説明]`
- バグ修正: `fix/issue-[番号]-[簡潔な説明]`
- その他: `chore/issue-[番号]-[簡潔な説明]`
2. ユーザーに確認:
「ブランチ名を `[提案したブランチ名]` にしてよろしいですか?」
3. ブランチの作成とチェックアウト:
```bash
# mainから最新の状態で新規ブランチを作成
git checkout -b [ブランチ名] origin/main
```
### 実装確認とコミット戦略
1. 実装状況の確認:
- 「実装は開始していますか?」
- 「どの部分まで実装が完了していますか?」
2. コミット戦略の説明:
```
細かい単位でのコミットを推奨します:
- 1機能 = 1コミット
- ファイル種別ごと(Model, View, Controller等)
- リファクタリングは別コミット
重要:コミット前に必ずAIコードレビューを実施します
```
3. 段階的なコミットプロセス:
#### AIレビューを含むコミットフロー
```bash
# 実装の進捗に応じて以下を繰り返す
while (実装中) {
1. 「どの機能/部分を実装しましたか?」
2. 該当ファイルの確認:
git status
git diff [ファイル名]
3. 意味のある単位でステージング:
git add [関連ファイル]
4. AIコードレビューの実施:
echo "コミット前にAIレビューを実施します..."
npx difit
5. レビュー結果の確認:
「AIレビューの結果はいかがでしたか?」
- 問題なし → 次のステップへ
- 修正提案あり → 修正を実施
6. 修正が必要な場合:
# 修正を実施
[修正作業]
# 再度ステージング
git add [修正したファイル]
# 再度AIレビュー
npx difit
7. コミットの実行:
git commit -m "[prefix]: [具体的な変更内容] (#[issue番号])"
}
```
#### 初回:ファイル種別ごとのコミット例
```bash
# 変更内容の確認
git status
# 1. モデル/スキーマの変更
git add app/models/* db/schema.rb
npx difit # AIレビュー実施
# レビュー結果を確認し、必要に応じて修正
git commit -m "feat: Add User notification model (#[issue番号])"
# 2. コントローラーの追加
git add app/controllers/*
npx difit # AIレビュー実施
# レビュー結果を確認し、必要に応じて修正
git commit -m "feat: Add notification controller actions (#[issue番号])"
# 3. ビューの追加
git add app/views/*
npx difit # AIレビュー実施
# レビュー結果を確認し、必要に応じて修正
git commit -m "feat: Add notification views (#[issue番号])"
# 4. テストの追加
git add spec/* test/*
npx difit # AIレビュー実施
# レビュー結果を確認し、必要に応じて修正
git commit -m "test: Add notification feature specs (#[issue番号])"
# 5. スタイル/UIの調整
git add app/assets/* app/javascript/*
npx difit # AIレビュー実施
# レビュー結果を確認し、必要に応じて修正
git commit -m "style: Add notification UI styles (#[issue番号])"
```
#### AIレビューの活用ガイド
```
npx difitで確認するポイント:
- セキュリティの問題
- パフォーマンスの懸念
- コードの可読性
- ベストプラクティスからの逸脱
- 潜在的なバグ
レビュー結果への対応:
- 🔴 Critical: 必ず修正してからコミット
- 🟡 Warning: 可能な限り対応
- 🟢 Info: 参考として確認
```
#### コミットメッセージのプレフィックス
- `feat:` 新機能
- `fix:` バグ修正
- `refactor:` リファクタリング
- `style:` スタイル変更
- `test:` テスト追加・修正
- `docs:` ドキュメント更新
- `chore:` その他の変更
#### 実装中のPR作成(Draft PR)
実装途中でもPRを作成し、進捗を可視化:
```bash
# 現在までの変更をプッシュ
git push -u origin [ブランチ名]
# Draft PRとして作成
gh pr create \
--repo [organization/repository] \
--base main \
--head [ブランチ名] \
--title "[WIP] [PRタイトル]" \
--body "[生成したdescription]" \
--draft
```
### PR descriptionの自動生成
issueの内容から以下のフォーマットでdescriptionを生成:
#### 概要
[issueの概要セクションから引用・整形]
#### 解決する問題
- [issueから抽出した解決すべき課題]
- Closes #[issue番号]
#### 実装内容
[issueの詳細仕様・実装内容から抽出]
- [ ] [実装項目1]
- [ ] [実装項目2]
- [ ] [実装項目3]
#### 技術的な詳細
[issueの技術的な考慮事項から引用]
#### 動作確認
##### 確認項目
[issueの受け入れ条件から生成]
- [ ] [確認項目1]
- [ ] [確認項目2]
##### 確認手順
1. [基本フローから確認手順を生成]
2. ...
#### 注意事項
- [エッジケースや考慮事項]
### Pull Request作成
1. ブランチをプッシュ:
```bash
git push -u origin [ブランチ名]
```
2. PRを作成:
```bash
gh pr create \
--repo [organization/repository] \
--base main \
--head [ブランチ名] \
--title "[PRタイトル]" \
--body "[生成したdescription]" \
--assignee "@me"
```
3. 追加設定の確認:
- レビュアーを指定しますか?
- ラベルを追加しますか?
- マイルストーンを設定しますか?
4. 必要に応じて追加設定:
```bash
# レビュアー追加
gh pr edit [PR番号] --add-reviewer [レビュアー名]
# ラベル追加
gh pr edit [PR番号] --add-label [ラベル名]
```
5. 作成完了後、PRのURLを表示
### 重要
- issueの内容を正確に反映したPRを作成する
- ブランチ名は分かりやすく、規約に従う
- コミットメッセージは明確で追跡しやすくする
- 実装前にPRを作成する場合は、Draftとして作成することを提案する