# Gh Pr Create Update

> gh CLI を使って GitHub のPRを作成/更新する。ユーザーがPR作成/更新やドラフト/ベース/ラベル管理を依頼したときに使う。デフォルトのベースブランチ選定とPRテンプレートの利用を扱う。

- Skill: `dsk52/gh-pr-create-update` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dsk52/gh-pr-create-update`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dsk52/gh-pr-create-update/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: dsk52 (https://skillmd.com/u/dsk52)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dsk52/gh-pr-create-update

---


# GH PR 作成/更新

## 前提

- PR操作は `gh` CLI を使う。
- 現在のリポジトリで作業する。
- `.github/pull_request_template.md` があればその構成に従う。なければ「背景・対応内容・補足・レビューしてほしい点」を使う。

## ワークフロー

0. ブランチの状態を確認
   - pushされいてるか確認し、必要があればユーザーに確認する

1. **必要情報の収集**
   - ユーザーが提示した情報（タイトル、ベースブランチ、ラベル、ドラフト指定など）は反映する。
   - ベースブランチ指定がなければ `main` を使う。
   - ベースブランチ指定がある場合（例: `topic/*`、`release/*`）はそれに従う。
   - ドラフト指定がなければドラフトにする。

2. **PR本文の作成**
   - テンプレートがある場合、日本語で記入し構成は維持する。
   - テンプレートがない場合、日本語セクションを作る。
     - 背景
     - 対応内容
     - 補足
     - レビューしてほしい点
   - ユーザーの要望があればケース別の変更内容を含める。
   - 本文はPR内の差分すべてから生成する。
   - 実行したテストは箇条書きで記載する。
   - Markdownの見出し（最低でも `##`）を必ず含める。
   - PR本文は `\n` に依存せず、ヒアドキュメントで作り `--body-file -` に渡す。
   - `gh pr create --body "..."` / `gh pr edit --body "..."` のような直書きは使わない（バッククォート等のシェル展開事故を防ぐため）。

3. **PR作成**
   - `--body-file -` のヒアドキュメントを使う。
     - `cat <<'EOF' | gh pr create --draft --base <base> --head <current-branch> --title <title> --body-file -`
     - `## 背景`
     - `...`
     - `EOF`
   - ラベル指定があれば `--label codex` のように追加する。

4. **PR更新**
   - `--body-file -` のヒアドキュメントを使う。
     - `cat <<'EOF' | gh pr edit <number|url> --title <title> --body-file - --base <base> --add-label <label>`
     - `## 背景`
     - `...`
     - `EOF`

## 判断ルール

- 既存PRがある、または更新依頼の場合は `gh pr edit` を優先する。
- PRの有無が不明なら `gh pr view --json number,url` を実行し、結果に応じて判断する。
- 本文は簡潔・事実ベースで、無関係な変更は書かない。

## 例

- "これまでの内容でmainに向けてPRを作って"
- "ここまでの内容を元にPRを更新して"
- "今回行なった作業を元にPRを更新して"

