# Create Pr

> JIRAチケットブランチからPRを自動作成するスキル。親ブランチ自動検出、JIRAリンク自動挿入、テンプレートに沿ったPR本文生成を行う。「PR作成」「PRを作って」「/create-pr」などのリクエストで使用。

- Skill: `diegosouzapw/create-pr-2` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add diegosouzapw/create-pr-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/diegosouzapw/create-pr-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools, Productivity
- Author: diegosouzapw (https://skillmd.com/u/diegosouzapw)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/diegosouzapw/create-pr-2

---


# Create PR Skill

JIRAチケット番号のブランチからPull Requestを自動作成する。親ブランチの自動検出、JIRAリンクの自動挿入、テンプレートに沿った本文生成を行う。

## 使用方法

```
/create-pr
```

引数なしで実行。現在のブランチ名とgit履歴から全て自動判定する。

## 実行手順

### Step 1: 事前チェック

1. `git branch --show-current` でブランチ名を取得
2. ブランチ名が `main` または `develop` の場合はエラー終了:
   - 「main/developブランチ上ではPRを作成できません。フィーチャーブランチに切り替えてください。」
3. `gh auth status` で認証状態を確認。未認証ならエラー:
   - 「gh CLIが未認証です。`gh auth login` を実行してください。」
4. `gh pr list --head {ブランチ名} --json url --jq '.[0].url'` で既存PRを確認。存在する場合:
   - 「既存のPRが見つかりました: {URL}」と表示して終了
5. `git status --porcelain` で未コミット変更を確認。ある場合:
   - 「未コミットの変更があります。先にコミットすることを推奨します。」と警告（続行は可能）

### Step 2: 親ブランチ検出

以下の優先順で親ブランチを特定する:

#### 方法A: merge-base距離比較（推奨）

```bash
git fetch origin
CURRENT=$(git branch --show-current)
git branch -r --list 'origin/*' | grep -v "origin/$CURRENT" | grep -v 'origin/HEAD' | while read branch; do
  echo "$(git rev-list --count $(git merge-base HEAD $branch)..HEAD) $branch"
done | sort -n | head -1 | awk '{print $2}' | sed 's|origin/||'
```

最もmerge-baseが近い（= 分岐元に近い）リモートブランチを親とする。

#### 方法B: 直前のブランチ

方法Aで結果が得られない場合:

```bash
git rev-parse --abbrev-ref @{-1}
```

#### フォールバック

いずれも失敗した場合、AskUserQuestionでユーザーに確認する:
- 「親ブランチ（PRのマージ先）を指定してください」
- 選択肢: `main`, `develop`, その他

### Step 3: 差分収集

```bash
git diff origin/{parent}...HEAD --stat
git log origin/{parent}..HEAD --oneline
```

差分の内容とコミットメッセージを確認し、変更の概要を把握する。

### Step 4: PR本文生成

テンプレート（`templates/pr-template.md`）の構造に従い、PR本文を構築する:

- **概要**: 差分とコミットログから日本語で要約を自動生成
- **関連リンク**: `https://kokopelli-inc.atlassian.net/browse/{ブランチ名}` を自動挿入
- **動作確認**: 空欄のまま
- **特に見て欲しいところ**: 空欄のまま

### Step 5: プッシュ

リモートにブランチが存在しない場合:

```bash
git push -u origin {ブランチ名}
```

### Step 6: PR作成

```bash
gh pr create --base {parent} --title "{ブランチ名}: {変更の要約}" --body "$(cat <<'EOF'
# 📝 概要

{自動生成した要約}

# 🔗 関連リンク

- https://kokopelli-inc.atlassian.net/browse/{ブランチ名}

# 🧪 動作確認



# 👀 特に見て欲しいところ

EOF
)"
```

### Step 7: 結果表示

作成されたPRのURLを表示する。

## PRタイトル

- フォーマット: `{ブランチ名}: {変更の要約}`
- 例: `BAX-12345: チャットメンバー表示の不整合を修正`
- 要約は日本語で簡潔に（70文字以内）

## エラーハンドリング

| 状況 | 対応 |
|------|------|
| `main`/`develop`上で実行 | エラーメッセージを表示して終了 |
| 未コミット変更あり | 警告を表示（続行可能） |
| 既存PRが存在 | 既存PRのURLを表示して終了 |
| `gh` CLI未認証 | エラーメッセージを表示して終了 |
| 親ブランチ検出失敗 | ユーザーに確認 |

