mcpField
F
Finishing a Development Branch

Finishing a Development Branch

github.com/obra開発755520 回インストール55 週間前に更新
リポジトリ

Finishing a Development Branch について

Finishing a Development Branch は、開発ブランチの作業を完了するためのスキルです。テストを確認してから定められた4つの選択肢を提示し、選択に応じてマージ、プルリクエスト作成、保留、破棄とワークツリーの整理を進めます。

主な機能

  1. 01選択肢の提示前にテストを確認
  2. 02ブランチの基点を特定
  3. 03所定の4つの完了方法を提示
  4. 04選択されたブランチ作業を実行
  5. 05ルールに沿ってワークツリーを整理

活用シーン

  1. 01テスト通過後の機能ブランチの完了
  2. 02プルリクエスト作成またはローカルマージ
  3. 03ブランチの保留や確認後の破棄

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/obra/superpowers-skills --skill finishing-a-development-branch

インストール後、Claude Code で/finishing-a-development-branchを入力して読み込まれたか確認します。

詳細

開発ブランチの作業を完了する

概要

明確な選択肢を提示し、選択されたワークフローを実行して、開発作業の完了を支援します。

基本原則: テストを検証 → 選択肢を提示 → 選択内容を実行 → クリーンアップ。

開始時に伝える: 「開発ブランチの作業を完了するために、Finishing a Development Branch スキルを使用します。」

手順

ステップ 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:ローカルでマージする
# Switch to base branch
git checkout <base-branch>

# Pull latest
git pull

# Merge feature branch
git merge <feature-branch>

# Verify tests on merged result
<test command>

# If tests pass
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
)"

次に:ワークツリーをクリーンアップします(ステップ 5)

選択肢 3:現状のまま維持する

次のように報告します:「ブランチ を維持します。ワークツリーは に保存されています。」

ワークツリーをクリーンアップしないでください。

選択肢 4:破棄する

最初に確認します:

This will permanently delete:
- Branch <name>
- All commits: <commit-list>
- Worktree at <path>

Type 'discard' to confirm.

完全に一致する確認の返答を待ちます。

確認された場合:

git checkout <base-branch>
git branch -D <feature-branch>

次に:ワークツリーをクリーンアップします(ステップ 5)

ステップ 5:ワークツリーをクリーンアップする

選択肢 1、2、4 の場合:

ワークツリー内にいるか確認します:

git worktree list | grep $(git branch --show-current)

はいの場合:

git worktree remove <worktree-path>

選択肢 3 の場合: ワークツリーを維持します。

クイックリファレンス

選択肢マージプッシュワークツリーを維持ブランチをクリーンアップ
1. ローカルでマージ✓--✓
2. PR を作成-✓✓-
3. 現状のまま維持--✓-
4. 破棄---✓(強制)

よくある間違い

テストの検証を省略する

  • 問題: 壊れたコードをマージしたり、失敗する PR を作成したりする
  • 対処: 選択肢を提示する前に、必ずテストを検証します

自由回答形式の質問

  • 問題: 「次に何をすればよいですか?」→ 曖昧です
  • 対処: 構成された 4 つの選択肢をそのまま提示します

ワークツリーの自動クリーンアップ

  • 問題: 必要になる可能性があるワークツリーを削除する(選択肢 2、3)
  • 対処: 選択肢 1 と 4 の場合にのみクリーンアップします

破棄時に確認しない

  • 問題: 作業を誤って削除する
  • 対処: 「discard」と入力して確認することを必須にします

注意事項

絶対に行わないこと:

  • テストが失敗している状態で続行する
  • 結果のテストを検証せずにマージする
  • 確認を得ずに作業を削除する
  • 明示的な依頼なしに強制プッシュする

必ず行うこと:

  • 選択肢を提示する前にテストを検証する
  • 4 つの選択肢をそのまま提示する
  • 選択肢 4 では入力による確認を得る
  • 選択肢 1 と 4 の場合にのみワークツリーをクリーンアップする

連携

呼び出し元:

  • skills/collaboration/subagent-driven-development(ステップ 7)
  • skills/collaboration/executing-plans(ステップ 5)

併用するスキル:

  • skills/collaboration/using-git-worktrees(ワークツリーを作成)

コメント