finishing-a-development-branch について
開発ブランチの完了手順を案内するスキルで、マージ、Pull Request作成、保持、破棄を選ぶ開発者向けです。最初にテストを確認し、選択した手順を実行します。作業の破棄には明示的な確認を求めます。
主な機能
- 01完了前のテスト確認
- 02ブランチの分岐元の特定
- 03完了方法を4つ提示
- 04選択に応じたマージ、プッシュ、保持
- 05確認後のブランチとworktreeの整理
活用シーン
- 01テスト通過後に開発ブランチをマージする
- 02ブランチをプッシュしてPull Requestを作成する
- 03ブランチとworktreeを後で使うため保持する
- 04確認後に開発作業を破棄する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ osmontero/ opencode-skills --skill finishing-a-development-branchインストール後、Claude Code で/finishing-a-development-branchを入力して読み込まれたか確認します。
同梱ファイルLICENSE.txt
詳細
開発ブランチの作業を完了する
概要
明確な選択肢を提示し、選択されたワークフローを実行して、開発作業の完了を支援します。
基本原則: テストを検証 → 選択肢を提示 → 選択された内容を実行 → クリーンアップ。
開始時に伝えること: 「この作業を完了するため、開発ブランチの作業を完了するスキルを使用します。」
プロセス
ステップ 1:テストを検証する
選択肢を提示する前に、テストが成功することを検証します:
# Run project's test suite
npm test / cargo test / pytest / go test ./...
テストが失敗した場合:
Tests failing (<N> failures). Must fix before completing:
[Show failures]
Cannot proceed with merge/PR until tests pass.
停止します。ステップ 2 に進まないでください。
テストが成功した場合: ステップ 2 に進みます。
ステップ 2:ベースブランチを特定する
# Try common base branches
git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null
または、次のように尋ねます:「このブランチは main から分岐しました。これで合っていますか?」
ステップ 3:選択肢を提示する
以下の 4 つの選択肢をそのまま提示します:
Implementation complete. What would you like to do?
1. Merge back to <base-branch> locally
2. Push and create a Pull Request
3. Keep the branch as-is (I'll handle it later)
4. Discard this work
Which option?
説明を追加しないでください — 選択肢は簡潔にします。
ステップ 4:選択された内容を実行する
選択肢 1:ローカルでマージする
ベースブランチの作業は、セッションのワークツリーではなく、正規のチェックアウトで行います。セッションが現在ワークツリー内にある場合(using-git-worktrees を参照)、プライマリワークツリーから以下を実行します(または先に session_move で戻ります)。機能ブランチのワークツリー内で git checkout <base-branch> を実行することはできません。ベースブランチはすでにプライマリワークツリーでチェックアウトされており、git は同じブランチを 2 つのワークツリーで同時にチェックアウトすることを拒否するためです。
# In the canonical checkout (primary worktree):
git checkout <base-branch>
git pull
git merge <feature-branch>
<test command> # verify the merged result
git branch -d <feature-branch>
次に、セッションを正規のチェックアウトに戻し(ワークツリー内にいた場合)、ワークツリーをクリーンアップします(ステップ 5)。
選択肢 2:プッシュして PR を作成する
# Push branch
git push -u origin <feature-branch>
# Create PR
gh pr create --title "<title>" --body "$(cat <<'EOF'
## Summary
<2-3 bullets of what changed>
## Test Plan
- [ ] <verification steps>
EOF
)"
次のように報告します:「PR を作成しました。ブランチ とワークツリーは保持されています。」
ワークツリーをクリーンアップしないでください。
選択肢 3:現状のまま維持する
次のように報告します:「ブランチ を維持します。ワークツリーは に保持されています。」
ワークツリーをクリーンアップしないでください。
選択肢 4:破棄する
先に確認します:
This will permanently delete:
- Branch <name>
- All commits: <commit-list>
- Worktree at <path>
Type 'discard' to confirm.
正確な確認があるまで待ちます。
確認された場合 — 正規のチェックアウトからブランチを削除し、その後ワークツリーをクリーンアップします:
# In the canonical checkout (primary worktree), NOT the session's worktree:
git branch -D <feature-branch>
次に、ワークツリーをクリーンアップします(ステップ 5)。
ステップ 5:ワークツリーをクリーンアップする
選択肢 1、4 の場合:
セッションがまだワークツリー内にある状態でそのワークツリーを削除するのは安全ではないため、次の 2 つの手順で行います:
- セッションがワークツリー内にある場合、まず正規のチェックアウトに戻します(
session_moveでプライマリワークツリーのパスに移動します — using-git-worktrees を参照)。アクティブなセッションの場所になっているワークツリーは、正常に削除できません。 - ワークツリーを削除します。 opencode v2 のワークツリー(
worktree_createで作成)には、ワークツリーのdirectoryを指定してネイティブのworktree_removeツールを使用します。git worktree remove <path>は、opencode が記録していない通常の git ワークツリーにのみ使用します。未コミットの作業を破棄することをユーザーが確認していない限り、forceは絶対に設定しないでください。
クイックリファレンス
| 選択肢 | マージ | プッシュ | ワークツリーを保持 | ブランチをクリーンアップ |
|---|---|---|---|---|
| 1. ローカルでマージ | ✓ | - | - | ✓ |
| 2. PR を作成 | - | ✓ | ✓ | - |
| 3. 現状のまま維持 | - | - | ✓ | - |
| 4. 破棄 | - | - | - | ✓(強制) |
よくある間違い
テストの検証を省略する
- 問題: 壊れたコードをマージしたり、失敗する PR を作成したりする
- 対処法: 選択肢を提示する前に、必ずテストを検証します
自由回答形式の質問
- 問題: 「次に何をすればよいですか?」→ 曖昧
- 対処法: 形式を統一した 4 つの選択肢をそのまま提示します
ワークツリーの自動クリーンアップ
- 問題: 必要になる可能性があるワークツリーを削除する(選択肢 2、3)
- 対処法: 選択肢 1、4 の場合にのみクリーンアップします
破棄時の確認を省略する
- 問題: 作業を誤って削除する
- 対処法: 「discard」と入力して確認するよう求めます
注意すべき点
絶対に行わないこと:
- テストが失敗した状態で先に進む
- 結果のテストを検証せずにマージする
- 確認なしで作業を削除する
- 明示的な依頼なしに強制プッシュする
必ず行うこと:
- 選択肢を提示する前にテストを検証する
- 4 つの選択肢をそのまま提示する
- 選択肢 4 では入力による確認を得る
- 選択肢 1、4 の場合にのみワークツリーをクリーンアップする
統合
呼び出し元:
- subagent-driven-development — すべてのタスクが完了した後、最終コードレビューの後に呼び出されます
- executing-plans(ステップ 7:引き継ぎ)— すべてのバッチが完了した後に呼び出されます
連携するスキル:
- using-git-worktrees - このスキルによって作成されたワークツリーをクリーンアップします