Skip to content
cccskills
FreePublished on GitHub

create-pr

GitHubでPull Request(PR)を作成します。PRのdescriptionには指定されたテンプレートを使用し、必要な情報を記載します。PR作成後、PRのURLを報告します。

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (1)

  • SKILL.md9.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Create Pull Request

GitHubでPull Request(PR)を作成するスキルです。Instructionsに従ってPRを作成してください。

Instructions

GitHub アクセス

本スキルの GitHub 参照/更新は gh コマンドを優先し、gh が使えない場合に GitHub MCP へフォールバックする(本文中の gh コマンド例はそのまま第一手段として読む)。クラウド実行時のみ優先順位が逆転して GitHub MCP が第一手段になるが、その指示は起動プロンプトで渡されるので、指示が無ければローカル実行として扱う。判定手順・gh ↔ MCP の対応表・MCP に代替が無い操作は ${CLAUDE_PLUGIN_ROOT}/references/github-access.md を参照する。

ステップ0: Issue番号の確定

引数($ARGUMENTS)から Issue 番号を取り出し、以降のすべてのステップで ${ISSUE_NUMBER} を使う。

ISSUE_NUMBER=$(printf '%s' "$ARGUMENTS" | grep -oE '[0-9]+' | head -1)

先頭トークンを指すプレースホルダを直接使わないこと。呼び出し元が Issue #1948 の実装PRを作成してください。ブランチ: ... のような自然文を渡すと 先頭トークンは Issue になり、Closes #Issue という壊れた本文が生成されて マージしてもIssueが自動クローズされない(セッションログの実測で 392 件中 15 件発生し、 Closes 行が欠落したPRが実際に作られている)。呼び出し元はIssue番号だけを渡す規約だが、 本スキル側で数字を抽出して壊れないようにする。

数字が1つも取れない場合は ISSUE_NUMBER を空のままにし、後続のステップは 「Issue番号が渡されなかった場合」として扱う(ベースブランチはステップ2以降で決定し、 Closes 行は書かない)。

PR作成ルール

  • PRのdescriptionのテンプレートは.github/PULL_REQUEST_TEMPLATE.mdを参照し、それに従うこと
  • テンプレート内でコメントアウトされている箇所は必ず削除すること
  • PRのdescriptionにはCloses #${ISSUE_NUMBER}と記載すること(ISSUE_NUMBER が空の場合は Closes 行を書かない)
  • 実行中のユーザー(@me)をAssigneesに追加すること
  • PRのベースブランチは「ベースブランチの決定」の手順で決定したブランチにすること
  • PRにcc-triage-scopeラベルを付与すること
  • PRの作成は「Command Examples」の gh-compat.sh create-pr だけで行う(ローカル・クラウドとも)。gh pr create と GitHub MCP の create_pull_request は使わない。gh pr create は GraphQL 経由でクラウドでは 403 になり、create_pull_request には labels / assignees の引数自体が無いため、Assignee と cc-triage-scope が欠落する(triage-pr はこの2つで PR を拾うので、欠けた PR は放置される)

ベースブランチの決定

ベースブランチは以下の優先順で決定する。必ず 1 → 2 → 3 の順に試すこと。

  1. Epicブランチの確定的導出: Issue ${ISSUE_NUMBER} が parent(Epic Issue)を持つ場合、cc-epic-<parent番号> をベースにする
  2. upstream(追跡ブランチ)からの確定的導出: 現在のブランチの upstream が origin の別ブランチを指している場合、それをベースにする(ワーカーが worktree 作成時に --track で分岐元を記録している)
  3. 分岐元ブランチの推定(fallback): 1・2 のいずれでも決まらない場合のみ、merge-base距離で分岐元を推定する

1. Epicブランチの確定的導出

サブIssue(parentを持つIssue)の作業ブランチは cc-epic-<parent番号> から派生しているため、PRも同ブランチへ向ける。後述のmerge-base推定は同点タイブレークで誤ったepicブランチを選ぶことがあるため、parentからの確定的導出を必ず先に試す。

git fetch origin --prune

BASE_BRANCH=""

# Issue 番号を取り出せた場合のみ実行
if [ -n "${ISSUE_NUMBER}" ]; then
  # parent の取得が失敗した場合はエラーを報告して中断
  # `gh issue view --json parent` は GraphQL 経由でクラウドでは 403 になるため、REST を第一手段にする
  PARENT=$(bash ${CLAUDE_PLUGIN_ROOT}/scripts/gh-compat.sh issue-parent "${ISSUE_NUMBER}") || {
    echo "Error: Failed to retrieve Issue #${ISSUE_NUMBER}" >&2
    exit 1
  }
  if [ -n "${PARENT}" ] && git rev-parse --verify --quiet "refs/remotes/origin/cc-epic-${PARENT}" >/dev/null; then
    BASE_BRANCH="cc-epic-${PARENT}"
  fi
fi

Issue番号を取り出せなかった場合(ISSUE_NUMBER が空)は本ステップをスキップし、BASE_BRANCH を空のままステップ2へ進む。Issue番号が指定されているが parent の取得に失敗した場合(ネットワークエラー・権限不足等)はエラーメッセージを出力して処理を中断する。

2. upstream(追跡ブランチ)からの確定的導出

ワーカーは worktree 作成時に git worktree add --track で分岐元ブランチを upstream として記録している(例: デフォルトブランチ由来なら origin/main、epic 由来なら origin/cc-epic-<N>)。手動で git checkout -b <branch> origin/<base> した場合も既定で同じ upstream が付く。これは「どのブランチから派生したか」の確定情報なので、merge-base 推定より必ず先に使う。

if [ -z "${BASE_BRANCH}" ]; then
  CURRENT=$(git rev-parse --abbrev-ref HEAD)
  UPSTREAM=$(git rev-parse --abbrev-ref --symbolic-full-name '@{upstream}' 2>/dev/null || true)
  UPSTREAM=${UPSTREAM#origin/}
  # upstream が未設定・自分自身(push -u した作業ブランチ)・origin に実在しない場合は採用しない
  if [ -n "${UPSTREAM}" ] && [ "${UPSTREAM}" != "${CURRENT}" ] \
    && git rev-parse --verify --quiet "refs/remotes/origin/${UPSTREAM}" >/dev/null; then
    BASE_BRANCH="${UPSTREAM}"
  fi
fi

3. 分岐元ブランチの推定(fallback)

「現在のブランチの分岐元ブランチ」は、リモートトラッキングブランチ(refs/remotes/origin/配下)のうち、現在のブランチ自身を除き、HEADから最も近い merge-base を持つものとして推定する。Epic ブランチや任意の中間ブランチから派生した作業ブランチでも、その派生元へPRを向けられるようにするための仕組み。

距離が同点の場合はデフォルトブランチを最優先すること。デフォルトブランチと同一コミットを指すブランチ(作成直後の epic ブランチや並行タスクのPRブランチ)が存在すると距離が同点になり、単純なアルファベット順タイブレークでは origin/cc-epic-* が origin/main より先に来て無関係な epic ブランチがベースに選ばれるため。

if [ -z "${BASE_BRANCH}" ]; then
  DEFAULT_BRANCH=$(bash ${CLAUDE_PLUGIN_ROOT}/scripts/gh-compat.sh default-branch)
  CURRENT=$(git rev-parse --abbrev-ref HEAD)

  BASE_BRANCH=$(
    git for-each-ref --format='%(refname:short)' refs/remotes/origin/ |
      grep '^origin/' | grep -v '^origin/HEAD$' |
      while read b; do
        [ "$b" = "origin/${CURRENT}" ] && continue
        mb=$(git merge-base "$b" HEAD 2>/dev/null) || continue
        [ -n "$mb" ] || continue
        dist=$(git rev-list --count "${mb}..HEAD" 2>/dev/null) || continue
        if [ "$b" = "origin/${DEFAULT_BRANCH}" ]; then pref=0; else pref=1; fi
        echo "$dist $pref $b"
      done | sort -k1,1n -k2,2n -k3,3 | head -1 | awk '{print $3}' | sed 's|^origin/||'
  )

  # 候補が見つからない場合(孤立ブランチ等)はデフォルトブランチに fallback する
  if [ -z "${BASE_BRANCH}" ]; then
    BASE_BRANCH="${DEFAULT_BRANCH}"
  fi
fi

同点時の優先度はデフォルトブランチ → refname のアルファベット順。期待しないブランチがベースに選ばれた場合は --base を明示的に指定して上書きする。

Command Examples

gh-compat.sh create-pr は REST で PR を作成し、続けてラベルと Assignee を付けて PR の URL を出力する(head は現在のブランチ)。本文は --body-file - + heredoc(<<'EOF' でシェル展開を抑止)で渡すので、${ISSUE_NUMBER} などは heredoc に渡す前に実値へ置換しておくこと。

bash ${CLAUDE_PLUGIN_ROOT}/scripts/gh-compat.sh create-pr \
  --title "PRタイトル" \
  --base "${BASE_BRANCH}" \
  --label "cc-triage-scope" \
  --assignee "@me" \
  --body-file - <<'EOF'
Closes #<ISSUE_NUMBER>

PRの本文
EOF

非0で終わっても URL が出力されていれば PR は作成済み(ラベルか Assignee の付与だけが失敗している)。PR を作り直さず、gh-compat.sh add-label <PR番号> cc-triage-scope / gh-compat.sh add-assignee <PR番号> @me を1回ずつ再実行する。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

GitHub Issueの確認事項(最後のコメント・descriptionの両方)を、コードベース・ドキュメント・そこから参照されている外部リンク(仕様書・ライブラリ公式ドキュメント等)まで調査し、根拠に基づいた回答をコメントに追記するスキル。調査しても事実で決まらず人間の意思決定が必要な項目は、固定セクションで明示して後続のトリアージへ引き渡す。

The English summary is being prepared. Showing the original description.

getty104/claude-task-worker4Updated Oct 20, 2026

Write the merged Pencil design reference back into a UI implementation Issue's description. Takes the Issue number as argument, resolves the merged design PR on the `cc-ui-design-<Issue number>` branch, collects the `.pen` and snapshot paths it added, and appends (or replaces) the `## UIデザイン` section at the end of the Issue body using a lost-update-safe edit.

The English summary is being prepared. Showing the original description.

getty104/claude-task-worker4Updated Oct 20, 2026

依頼された内容(自然言語の説明、または既存のIssue番号)を要件とTODOに分解し、タスクごとにGitHub Issueを作成するスキル。タスクの整理・分解、複数Issueの一括作成、依存関係の明示が必要な場合に使用する。「この機能をIssueに分けて」「タスクを洗い出してIssueにして」「PRDのIssue #123 を分解して」といったリクエストで発動する。

The English summary is being prepared. Showing the original description.

getty104/claude-task-worker4Updated Oct 20, 2026

claude-task-worker のカスタムワーカー(`workerFiles` に登録する TS 定義)を、`AskUserQuestion` で要件を全項目確定させてから生成し、`claude-task-worker list-workers` でロード検証までするスキル。「カスタムワーカーを作って」「独自のワーカーを追加したい」「新しいラベルで動くワーカーを定義したい」といったリクエストで使用する。

The English summary is being prepared. Showing the original description.

getty104/claude-task-worker4Updated Oct 20, 2026

claude-task-workerプラグインのバージョンをインクリメントし、commit-pushでコミット・プッシュしたうえでPRを作成する。引数で `major` / `minor` / `patch` を受け取り、対応する部分をインクリメントする(省略時は `patch`)。「バージョンを上げて」「バージョンアップ」「bump version」「メジャーバージョンを上げて」などのリクエストで使用する。

The English summary is being prepared. Showing the original description.

getty104/claude-task-worker4Updated Oct 20, 2026

指定されたPR番号のDependabot PRを確認し、依存ライブラリのバージョンアップ内容をCHANGELOGとcontext7から取得して、コード修正が必要かを判定します。修正が必要な場合は修正を行い、pushまで実施します。

The English summary is being prepared. Showing the original description.

getty104/claude-task-worker4Updated Oct 20, 2026

See all skills by getty104

Report a problem with this skill