本文へ移動
cccskills
無料GitHub で公開

create-pr

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

インストール方法を見る

含まれるファイル(1)

  • SKILL.md9.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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回ずつ再実行する。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

answer-issue-questions

無料日本語概要

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

getty104/claude-task-worker42026年10月10日 更新

apply-ui-design

無料日本語概要

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.

getty104/claude-task-worker42026年10月10日 更新

breakdown-issues

無料日本語概要

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

getty104/claude-task-worker42026年10月10日 更新

build-custom-worker

無料日本語概要

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

getty104/claude-task-worker42026年10月10日 更新

bump-claude-plugin-version

無料日本語概要

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

getty104/claude-task-worker42026年10月10日 更新

check-dependabot

無料日本語概要

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

getty104/claude-task-worker42026年10月10日 更新

getty104 のスキルをすべて見る

このスキルの問題を報告する