Awesome-omni-skill create-pr

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

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/create-pr-octkp" ~/.claude/skills/diegosouzapw-awesome-omni-skill-create-pr-46fdf0 && rm -rf "$T"
manifest: skills/tools/create-pr-octkp/SKILL.md
source content

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距離比較(推奨)

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で結果が得られない場合:

git rev-parse --abbrev-ref @{-1}

フォールバック

いずれも失敗した場合、AskUserQuestionでユーザーに確認する:

  • 「親ブランチ(PRのマージ先)を指定してください」
  • 選択肢:
    main
    ,
    develop
    , その他

Step 3: 差分収集

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: プッシュ

リモートにブランチが存在しない場合:

git push -u origin {ブランチ名}

Step 6: PR作成

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未認証
エラーメッセージを表示して終了
親ブランチ検出失敗ユーザーに確認