← ClaudeAtlas

cherry-pick-prlisted

Cherry-pick a merged fix onto an environment branch (qa/staging, release) as a new PR. 明示指示のみで実行する。Use when the same fix must reach qa or staging(qaにも同じ修正を適用・stagingにも反映・cherry-pick).
devbasex/ai-plugins · ★ 1 · AI & Automation · score 71
Install: claude install-skill devbasex/ai-plugins
# cherry-pick PR 作成コマンド featureブランチから指定ベースブランチ(`qa/*`, `staging/*`, `release/*` 等の環境ブランチ)へ、短命ブランチ経由で cherry-pick PR を作成する。同じ修正を複数ブランチへ並行適用する場面全般で、この原則と手順に従う。 ## 使用方法 ``` /ndf:cherry-pick-pr qa/staging /ndf:cherry-pick-pr release/v2 ``` ## なぜ必要か featureブランチに環境ブランチ(`qa/staging`等)を merge して conflict を解消すると、`feature → 起点ブランチ` の PR に環境ブランチ固有のコードが混入する(起点の汚染)。短命ブランチ + cherry-pick で、必要なコミットだけを対象ブランチに届ける。 | 観点 | 正しい順序 | 誤った順序 | |------|-----------|-----------| | 単一ソース | feature ブランチが唯一の正 | 二箇所で実装 | | 一貫性 | cherry-pick で完全一致 | 手書き差分でズレる | | 追跡性 | `-x` で元 commit が明記 | 関連 commit 不明確 | ## 核心ルール 原則は `ndf-policies`「ブランチ運用の原則」に定義されている。本 Skill の処理フローはその原則を手順へ落としたもので、対応は次のとおり。 | 原則 | 対応する処理フロー | |------|------------------| | feature に先に commit し cherry-pick で届ける | 3・6 | | ���境ブランチを feature に merge しない | 「なぜ必要か」 | | push 前に起点ブランチを取り込む | 5 | | マージ済みブランチには push しない | 2 | ## 処理フロー ### 1. 引数・現状確認 - 引数から環境ブランチ名を取得(必須。未指定なら確認) - `git branch --show-current` で現在ブランチを取得 - 開発の起点ブランチを決める。以降の手順はこの値を使う ```bash # 起点は開発の本流であって、既定ブランチとは限らない。宣言(`.ndf/worktree.json` の # `base_branch`)を先に読み、その名前が実在することを確かめる。取得済みの参照に無ければ # origin へ問い合わせる(取得していないだけの場合を「無い」と読まないため)。実在しなければ # 既定ブランチへ落とさずに止まる。宣言が無ければ origin の HEAD が指す先を使い、それも # 取れなければ慣例の名前のうちローカルにあるものへ落とす # (共通ライブラリ `wt_base_branch` と同じ順序) dev_base=$(jq -r 'select(.version == 1) | .base_branch | select(type == "string")' \ .ndf/worktree.json 2>/dev/null) if [ -n "$dev_base" ]; then dev_base_found=0 if git show-ref --verify --quiet "refs/remotes/origi