mcpField
E
exit-strategy

exit-strategy

github.com/kucherenko開発8544 回インストール2 日前に更新
リポジトリ

exit-strategy について

exit-strategyは、ブランチ作業を終えるためのスキルです。テストを確認して4つの選択肢を提示し、選択に応じてブランチとワークツリーを整理します。

主な機能

  1. 01終了前のテスト確認
  2. 024つの選択肢の提示
  3. 03ローカルマージまたはプルリクエスト作成
  4. 04作業破棄前の確認
  5. 05ワークツリーのクリーンアップ規則

活用シーン

  1. 01テスト合格後の機能ブランチの終了
  2. 02プルリクエストに向けたブランチ準備
  3. 03完了したブランチ作業の保持または破棄

インストール

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

$npx skills add https://github.com/kucherenko/gangsta --skill exit-strategy

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

詳細

終了戦略:開発ブランチの作業を完了する

概要

すべての作業は、適切に終了する必要があります。検証し、選択肢を提示し、実行し、後片付けを行って、開発作業の完了をサポートします。

基本原則: テストを検証 → 選択肢を提示 → 選択を実行 → 後片付け。

開始時に告知: "Initiating exit strategy for this branch."

プロセス

ステップ 1:テストを検証する

選択肢を提示する前に、テストが通ることを確認します:

# Run project's test suite
npm test / cargo test / pytest / go test ./...

テストが失敗した場合:

Tests failing (<N> failures). Must fix before exiting:

[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's the exit strategy?

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
)"

次に:PR の URL をドンに報告します。セーフハウスは保持します。

オプション 3:現状のままにする

報告:「ブランチ を保持します。セーフハウスは にあります。」

セーフハウスをクリーンアップしないでください。

オプション 4:破棄する

最初に確認します:

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

Type 'discard' to confirm.

ドンからの正確な確認を待ちます。

確認された場合:

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

次に:セーフハウスをクリーンアップします(ステップ 5)

ステップ 5:セーフハウスをクリーンアップする

オプション 1、2、4 の場合:

セーフハウス(worktree)内にいるか確認します:

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 の場合にのみセーフハウスをクリーンアップする

連携

呼び出し元:

  • Laundering — 最終検証の後
  • ブランチベースの作業を完了するすべてのスキル

組み合わせるもの:

  • gangsta:safehouse-worktrees — そのスキルが作成したセーフハウスをクリーンアップします

Omerta 準拠

  • 真実の原則:選択肢を提示する前にテストを検証済み
  • 可用性の原則:最終状態をドンに報告済み

コメント