From github-skills
Pull Request / Merge Request を作成するときに必ず参照する。`gh pr create`/`glab mr create` で PR/MR を作る、コミット済みの作業をレビューに出す、並列・stacked 作業の各ブランチで PR を起こす、といった場面で使う。リポジトリの pull_request_template/merge_request_template を決定論スクリプトで検出して優先し、テンプレの骨組み(見出し・チェックリスト・順序)を改変せず入力箇所を埋めるだけにする(作成前に骨組み照合ゲートで機械検証)。無ければ汎用観点で本文を構成。本文の素材は対象リポジトリの git 差分のみに限定し、他リポジトリ・他タスクの内容を混入させない。draft 既定・作成前にユーザー承認。未 push のときは AskUserQuestion で承認を取ってから push。GitHub(gh) 基本、GitLab(glab) 等にも対応。
How this skill is triggered — by the user, by Claude, or both
Slash command
/github-skills:pr-create [ベースブランチ名や追加指示(任意)][ベースブランチ名や追加指示(任意)]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
リポジトリ固有の PR テンプレートに沿った PR を写経なしで作成する。テンプレートが無くても汎用観点で過不足ない PR を作る。モデルが PR 作成を要する場面で自動的に参照してよく、`/pr-create` の明示実行でも動く。
リポジトリ固有の PR テンプレートに沿った PR を写経なしで作成する。テンプレートが無くても汎用観点で過不足ない PR を作る。モデルが PR 作成を要する場面で自動的に参照してよく、/pr-create の明示実行でも動く。
scripts/pr-context.sh が出すこの作業ディレクトリの git 状態(REPO IDENTITY / COMMITS / DIFF)だけを根拠にする。会話履歴に残る別リポジトリ・別タスクの内容を PR 本文へ持ち込まない。スクリプトの REPO IDENTITY(repo slug / worktree-root)が、PR を作ろうとしている対象と一致することを作成前に必ず確認する。TEMPLATE が primary/選択 multi を返したら、見出し・チェックリスト・順序を逐語で保ち、入力箇所を埋めるだけ(§4)。独自フォーマットへの差し替え・セクションの削除/追加/並べ替え・見出しの言い換えは禁止。作成前に scripts/template-check.sh の骨組み照合ゲート(§5)を必ず通す。プラットフォーム判定・ベース特定・差分・push 状態は決定論的に行えるため scripts/pr-context.sh を実行する。手で git コマンドを並べ直さない。
bash <skill-dir>/scripts/pr-context.sh [base-branch]
=== SECTION === 区切りの出力を読む:
repo slug と worktree-root。本文を起こす前にここを確認し、いま PR を作ろうとしている対象と一致することを担保する(制約「対象リポジトリの取り違え禁止」)。template-check.sh の第2引数にも同じパスを渡す。パスにはセッションごとにユニークな ID が埋まっている(worktrunk 等で複数セッションが tmp_claude/ を symlink 共有していても衝突しないよう分離済み)。自分でファイル名を決めず、必ずこの行のパスを使う。同一セッションでの再実行は同じパスに落ちるので下書きの上書き更新になる。github→gh、gitlab→glab、unknown/installed: no → 本文を提示して手動作成を案内。コマンド詳細は references/platforms.md。primary: が出たらそれを使う(独自フォーマット禁止)。multi: は複数テンプレなので候補提示して選んでもらう。(テンプレートなし) のときだけ §4 の汎用構成。ここで primary が出ているのに自前の見出しで書くのは規約違反。(特定できませんでした) や誤検出が疑わしいときは引数 base-branch を渡して再実行、またはユーザーに確認。git diff <base>...HEAD を別途実行。テンプレ検出は §1 の pr-context.sh が TEMPLATE セクションで決定論的に済ませている。手で find を打ち直さない(打ち忘れ・スキップの元)。
primary: があり multi: が無い → そのファイルを読んで使う。multi: がある → 候補をユーザーに提示し、選ばれたものを使う。(テンプレートなし) → §4 の汎用構成へ。配置の網羅一覧やプラットフォーム別の細部は references/platforms.md。スクリプトの検出漏れが疑わしいとき(独自配置のテンプレ等)だけ手動探索を補助に使う。
本文の言語は次の優先順で決める。①テンプレートがある → テンプレートの見出し・コメントの言語に合わせる。②無い → 直近コミットや README の言語。③不明 → ユーザーに確認。
大原則: 本文の素材は §1 スクリプトが出したこの作業ディレクトリの COMMITS / DIFF / CHANGED FILES だけ。会話に残る別リポジトリ・別タスクの記憶を素材にしない。
テンプレートあり(TEMPLATE に primary/選択した multi): **テンプレは「確定した入力フォーム」**として扱う。テンプレ作成者が「何をどこに書くか」を既に決めているので、文脈を読んで構成を作り直す作業ではなく、決められた入力箇所を埋めるだけ。
- [ ]→- [x])。これはモデルの無断改変を禁じるルールであり、ユーザーが骨組み変更を明示指示・許可したときは §5 の例外に従う(ユーザー指示 > このデフォルト)。<!-- ... --> は指示として読み、埋めた後の扱い(残す/消す)はテンプレ慣習・既存 PR に倣う。- [ ] は差分から確実に満たすものだけ - [x]。不明は未チェックで残し、全部チェックしない。生成した本文は、作成前に §5 の骨組み照合ゲートを必ず通す。
テンプレートなし: 下記の汎用構成(言語は §3 準拠、不要セクションは省く)。
## 概要
<!-- この PR で何をするか 1〜2 行 -->
## 変更内容
<!-- 主な変更点を箇条書き -->
## 変更の背景・理由
<!-- なぜ必要か。関連課題・経緯 -->
## 動作確認
<!-- どう確認したか。テスト・検証手順 -->
## 影響範囲・注意点
<!-- 影響箇所・レビュー注意点・未対応事項 -->
## 関連 Issue / リンク
<!-- Closes #xxx など -->
テンプレ遵守を目視に委ねると、無意識にセクションを落としたり見出しを言い換えたりしやすい。決定論スクリプトで機械的に照合し、drift があれば提示前に潰す。
生成した本文を §1 の PR BODY FILE が示すパスに書き出す(セッション分離済みの絶対パス。自分でファイル名を決めない)。
テンプレ本体と照合する(<pr-body> は §1 の PR BODY FILE のパス):
bash <skill-dir>/scripts/template-check.sh <テンプレのパス> <pr-body>
RESULT: OK → 骨組み一致。§7 の提示へ進む。RESULT: DRIFT DETECTED → MISSING(削った見出し/項目)・EXTRA(勝手に足した見出し)・REORDER(並べ替え)を確認し、下書きをテンプレ構造に戻して再チェック。OK になるまで提示に進まない。骨組みを守った上で入力箇所を埋め直す(勝手にセクションを消して辻褄を合わせない)。テンプレが無い(§4 の汎用構成)ときはこのゲートは不要。
このゲートが弾くのはモデルの無断改変。ユーザーが明示的に骨組みの変更を指示・許可した場合は別で、その変更後の本文を採用してよい(例: 「テストケース1/2/3 のラベルを実際の確認観点に書き換えてよい」「このチェック項目は棄却してよい」「ゲートを棄却する」等)。DRIFT を消すためにユーザー指示を無視してテンプレ構造へ戻してはならない(今回の逆走はこれ)。手順:
テストケース1 を『本番で Slack 通知を確認』に置換します。2/3 はプレースホルダのまま残します」)。解釈が割れる指示は AskUserQuestion で確定してから触る。PR BODY FILE に書き出し、参考として template-check.sh を再実行する。ここで出る DRIFT は想定内なので OK にする必要はない。判断が曖昧なら「ユーザーが骨組み変更を許可したのか、それとも入力箇所を埋める話か」を確認する。デフォルトは骨組み不変。棄却は明示指示があるときだけ。
Conventional Commits 形式(<type>(<scope>): <subject>、commit-flow スキル準拠)を基本。単一コミットはそのメッセージを流用、複数は全体を要約。既存 PR にタイトル規約があればそれを優先。
gh pr create --body-file <PR BODY FILE> の直前に、実ファイルを cat してユーザーに承認された本文と同一内容であることを確認する(Write 成功メッセージや context 上の状態を信用せず、必ず実ファイルを読む)。食い違っていたら作成せず、正しい本文を書き直してからやり直す。template-check.sh <テンプレ> <PR BODY FILE> をもう一度実行する。
RESULT: OK → 作成へ。RESULT: DRIFT DETECTED かつ §5 の「ユーザー承認済み DRIFT」に該当しない → 作成を中止。無断改変が紛れ込んでいるので本文を戻して再照合する。RESULT: DRIFT DETECTED だが §5 でユーザーが明示許可した変更そのものなら、想定内として作成してよい(許可外の drift が増えていないことは DIFF で確認)。references/platforms.md)→ PR の URL を報告。scripts/pr-context.sh — リポジトリ同定(REPO IDENTITY)・プラットフォーム判定・テンプレ決定論検出(TEMPLATE)・ベース特定〜差分・push 状態を出す read-only スクリプト(§1)。scripts/template-check.sh — テンプレ本体と本文下書きの骨組み(見出し+チェックリストのラベル)を照合し、削り・勝手追加・並べ替えを検出する作成前ゲート(§5)。references/platforms.md — プラットフォーム別 CLI コマンド・テンプレ配置・手動作成フォールバック。Guides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.
Dispatches multiple subagents concurrently for independent tasks without shared state. Use when facing 2+ unrelated failures or subsystems that can be investigated in parallel.
npx claudepluginhub yasunori0418/skills --plugin github-skills