mcpField
S
safehouse-worktrees

safehouse-worktrees

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

safehouse-worktrees について

Git worktreeで隔離環境を準備するエージェント向けのスキルです。ディレクトリ選択、安全確認、プロジェクトのセットアップ、ベースラインテストを扱います。

主な機能

  1. 01優先順位に沿ったディレクトリ選択
  2. 02ローカルディレクトリの無視設定確認
  3. 03プロジェクトのセットアップを自動検出
  4. 04ベースライン確認のテスト実行

活用シーン

  1. 01複数ブランチの並行作業
  2. 02実装用の隔離ワークスペース準備
  3. 03ベースラインテスト失敗時の確認依頼

インストール

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

$npx skills add https://github.com/kucherenko/gangsta --skill safehouse-worktrees

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

詳細

Safehouse:Git Worktrees

概要

Git worktrees は、同じリポジトリを共有しながら、独立した作業拠点を作成します。メインのワークスペースに影響を与えず、複数のブランチで同時に作業できます。

基本原則: 系統立てたディレクトリ選択 + 安全性の確認 = 信頼できる分離。

開始時に告知: 「独立した作業のために Safehouse をセットアップしています。」

ディレクトリ選択プロセス

次の優先順位に従ってください。

1. 既存の Safehouse を確認
# Check in priority order
ls -d .worktrees 2>/dev/null     # Preferred (hidden)
ls -d worktrees 2>/dev/null      # Alternative

見つかった場合: そのディレクトリを使用します。両方ある場合は、.worktrees/ を優先します。

2. プロジェクト設定を確認
grep -i "worktree.*director" AGENTS.md 2>/dev/null

優先設定が指定されている場合: 尋ねずにその設定を使用します。

3. ドンに尋ねる

ディレクトリがなく、設定にも優先指定がない場合:

No safehouse directory found. Where should I set up?

1. .worktrees/ (project-local, hidden)
2. ~/.config/gangsta/worktrees/<project-name>/ (global location)

Which would you prefer?

安全性の確認

プロジェクト内ディレクトリ(.worktrees または worktrees)の場合

Safehouse を作成する前に、ディレクトリが gitignore 対象であることを必ず確認してください。

# Check if directory is ignored (respects local, global, and system gitignore)
git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null

対象外の場合:

  1. 適切な行を .gitignore に追加します
  2. その変更を直ちにコミットします
  3. Safehouse の作成に進みます

重要な理由: Safehouse の内容を誤ってリポジトリにコミットすることを防ぎます。

グローバルディレクトリ(~/.config/gangsta/worktrees)の場合

プロジェクトの外部にあるため、.gitignore の確認は不要です。

作成手順

1. プロジェクト名を検出
project=$(basename "$(git rev-parse --show-toplevel)")
2. Safehouse を作成
# Determine full path
case $LOCATION in
  .worktrees|worktrees)
    path="$LOCATION/$BRANCH_NAME"
    ;;
  ~/.config/gangsta/worktrees/*)
    path="~/.config/gangsta/worktrees/$project/$BRANCH_NAME"
    ;;
esac

# Create worktree with new branch
git worktree add "$path" -b "$BRANCH_NAME"
cd "$path"
3. プロジェクトをセットアップ

サプライチェーンに関する注意: パッケージマネージャーによるインストールでは、信頼できないサードパーティーのコードが取得されます。ロックファイルがある場合は、ロックファイルに基づくインストール(npm install より npm ci、ハッシュチェックを行う pip install など)を優先し、サプライチェーンのリスクを軽減してください。

適切なセットアップを自動検出して実行します。

# Node.js
if [ -f package.json ]; then npm install; fi

# Rust
if [ -f Cargo.toml ]; then cargo build; fi

# Python
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f pyproject.toml ]; then poetry install; fi

# Go
if [ -f go.mod ]; then go mod download; fi
4. クリーンなベースラインを確認

Safehouse がクリーンな状態で開始することを確認するため、テストを実行します。

# Use project-appropriate command
npm test / cargo test / pytest / go test ./...

テストが失敗した場合: 失敗内容を報告し、続行するか調査するかをドンに尋ねます。

テストが成功した場合: 準備完了を報告します。

5. 場所を報告
Safehouse ready at <full-path>
Tests passing (<N> tests, 0 failures)
Ready for operations.

クイックリファレンス

状況対応
.worktrees/ がある使用する(gitignore 対象であることを確認)
worktrees/ がある使用する(gitignore 対象であることを確認)
両方ある.worktrees/ を使用する
どちらもないAGENTS.md を確認 → ドンに尋ねる
ディレクトリが gitignore 対象外.gitignore に追加してコミット
ベースラインテストで失敗失敗内容を報告してドンに尋ねる
package.json/Cargo.toml がない依存関係のインストールをスキップ

よくある間違い

gitignore の確認を省略する
  • 問題: Safehouse の内容が追跡され、git status が汚れる
  • 対策: プロジェクト内に Safehouse を作成する前に、必ず git check-ignore を使用する
ディレクトリの場所を決めつける
  • 問題: 一貫性がなくなり、プロジェクトの規約に反する
  • 対策: 優先順位に従う:既存 > 設定 > 確認
テストが失敗しているのに続行する
  • 問題: 新たなバグと既存の問題を区別できない
  • 対策: 失敗内容を報告し、ドンから明示的な許可を得る
セットアップコマンドをハードコードする
  • 問題: 異なるツールを使用するプロジェクトで動作しない
  • 対策: プロジェクトファイルから自動検出する

危険信号

絶対にしないこと:

  • gitignore 対象であることを確認せずに Safehouse を作成する(プロジェクト内の場合)
  • ベースラインテストの確認を省略する
  • ドンに尋ねず、テストが失敗しているのに続行する
  • あいまいな状況でディレクトリの場所を決めつける

必ず行うこと:

  • ディレクトリの優先順位に従う:既存 > 設定 > 確認
  • プロジェクト内の場合、ディレクトリが gitignore 対象であることを確認する
  • プロジェクトのセットアップを自動検出して実行する
  • クリーンなテストベースラインを確認する

連携

呼び出し元:

  • Resource Development — 実装に分離が必要な場合
  • 分離されたワークスペースを必要とするすべてのスキル

連携先:

  • gangsta:exit-strategy — 作業完了時に Safehouse をクリーンアップします

Omerta コンプライアンス

  • 可用性の規則:Safehouse の場所を報告し、チェックポイントを作成する
  • 真実の規則:ベースラインテストの結果は、主張ではなく実際の出力である

コメント