mcpField
F
finishing-a-development-branch

finishing-a-development-branch

github.com/osmontero開発1588 回インストール1 週間前に更新
リポジトリ

finishing-a-development-branch について

開発ブランチの完了手順を案内するスキルで、マージ、Pull Request作成、保持、破棄を選ぶ開発者向けです。最初にテストを確認し、選択した手順を実行します。作業の破棄には明示的な確認を求めます。

主な機能

  1. 01完了前のテスト確認
  2. 02ブランチの分岐元の特定
  3. 03完了方法を4つ提示
  4. 04選択に応じたマージ、プッシュ、保持
  5. 05確認後のブランチとworktreeの整理

活用シーン

  1. 01テスト通過後に開発ブランチをマージする
  2. 02ブランチをプッシュしてPull Requestを作成する
  3. 03ブランチとworktreeを後で使うため保持する
  4. 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 つの手順で行います:

  1. セッションがワークツリー内にある場合、まず正規のチェックアウトに戻します(session_move でプライマリワークツリーのパスに移動します — using-git-worktrees を参照)。アクティブなセッションの場所になっているワークツリーは、正常に削除できません。
  2. ワークツリーを削除します。 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 - このスキルによって作成されたワークツリーをクリーンアップします

コメント