workspace-isolation について
workspace-isolation は、Git worktree でコーディング作業を分離し、ユーザーのチェックアウトや他の作業への影響を防ぐスキルです。分離の検出、環境構築、ベースラインテスト、作業後のクリーンアップ範囲を定めています。
主な機能
- 01既存の worktree 分離を検出
- 02ハーネス管理の worktree を優先
- 03必要に応じて Git worktree を作成
- 04依存関係を設定してベースラインテストを実行
- 05今回作成した worktree のみをクリーンアップ
活用シーン
- 01ユーザーの未コミット作業を保護
- 02並列エージェント用の分離環境を準備
- 03実装前にベースラインテストを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ noobygains/ godmode --skill workspace-isolationインストール後、Claude Code で/workspace-isolationを入力して読み込まれたか確認します。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
ワークスペースの分離
概要
Git worktree を使うと、同じリポジトリを共有する分離されたワークスペースを作成でき、ブランチを切り替えずに複数のブランチで同時に作業できます。
**基本原則:**体系的なディレクトリ選択+安全性の確認=信頼性の高い分離。
開始時に伝える:「ワークスペース分離スキルを適用して、分離されたワークスペースを設定します。」
最優先の原則
メインブランチでは機能開発を行わないでください
例外はありません。回避策もありません。近道もありません。
使用する場面
必須:
- 規模を問わず、機能を開発する場合
- 1 行を超える変更が必要なバグ修正
- リファクタリング作業
- 開発計画に含まれるあらゆるタスク(委任されたものも含む)
- 実験的または探索的な実装
不要:
- メインブランチでの 1 行だけの緊急修正
- ドキュメントのみの変更
- 設定ファイルの更新(例:.gitignore、CLAUDE.md)
- 変更を加えずにコードを読む、または調査する場合
認知の落とし穴
| 正当化 | 実際のところ |
|---|---|
| 「小さな機能だから、メインブランチで作業すればいい」 | 小さな機能も大きくなります。worktree の作成は数秒で済みますが、メインブランチの修復には何時間もかかります。 |
| 「worktree の設定には時間がかかりすぎる」 | worktree の作成は、メインブランチに混在した作業を整理するより速く済みます。 |
| 「準備ができたら、あとでブランチを作成しよう」 | メインブランチで作業すると、あらゆるミスがメインブランチに残ります。最初にブランチを作成してください。 |
| 「worktree の設定に失敗したので、省略しよう」 | 設定の問題を解決してください。回避策としてメインブランチで作業を進めてはいけません。 |
| 「プロトタイプを作るだけだから、問題ない」 | メインブランチ上のプロトタイプは、誤ってコミットされることがあります。必ず分離してください。 |
ディレクトリの選択手順
次の優先順位に従ってください。
1. 既存のディレクトリを確認する
# Check in priority order
ls -d .worktrees 2>/dev/null # Preferred (hidden)
ls -d worktrees 2>/dev/null # Alternative
**見つかった場合:**そのディレクトリを使用します。両方存在する場合は、.worktrees を優先します。
2. CLAUDE.md を確認する
grep -i "worktree.*director" CLAUDE.md 2>/dev/null
**設定が指定されている場合:**確認せずに、その設定を使用します。
3. ユーザーに尋ねる
ディレクトリが存在せず、CLAUDE.md に設定も指定されていない場合:
No worktree directory found. Where should I create worktrees?
1. .worktrees/ (project-local, hidden)
2. ~/.config/godmode/worktrees/<project-name>/ (global location)
Which do you prefer?
安全性の確認
プロジェクト内のディレクトリ(.worktrees または worktrees)の場合
worktree を作成する前に、そのディレクトリが Git の追跡対象外であることを必ず確認してください。
# 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
追跡対象外でない場合:
すぐに修正してください:
- .gitignore に適切な行を追加する
- 変更をコミットする
- worktree の作成に進む
**重要な理由:**worktree の内容を誤ってリポジトリにコミットすることを防ぎます。
グローバルディレクトリ(~/.config/godmode/worktrees)の場合
プロジェクトの外部にあるため、.gitignore の確認は不要です。
作成手順
1. プロジェクト名を検出する
project=$(basename "$(git rev-parse --show-toplevel)")
2. worktree を作成する
# Determine full path
case $LOCATION in
.worktrees|worktrees)
path="$LOCATION/$BRANCH_NAME"
;;
~/.config/godmode/worktrees/*)
path="~/.config/godmode/worktrees/$project/$BRANCH_NAME"
;;
esac
# Create worktree with new branch
git worktree add "$path" -b "$BRANCH_NAME"
cd "$path"
3. プロジェクトをセットアップする
適切なセットアップを自動検出して実行します:
# 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. クリーンなベースラインを確認する
テストを実行して、worktree がクリーンな状態で開始できることを確認します:
# Examples - use the project-appropriate command
npm test
cargo test
pytest
go test ./...
**テストが失敗した場合:**失敗内容を報告し、続行するか調査するかを尋ねます。
**テストが成功した場合:**準備ができたことを報告します。
5. 場所を報告する
Worktree ready at <full-path>
Tests passing (<N> tests, 0 failures)
Ready to implement <feature-name>
クイックリファレンス
| 状況 | 対応 |
|---|---|
.worktrees/ が存在する | 使用する(追跡対象外であることを確認) |
worktrees/ が存在する | 使用する(追跡対象外であることを確認) |
| 両方存在する | .worktrees/ を使用する |
| どちらも存在しない | CLAUDE.md を確認 -> ユーザーに尋ねる |
| ディレクトリが追跡対象外でない | .gitignore に追加+コミット |
| ベースラインテストが失敗する | 失敗内容を報告+確認を求める |
| package.json/Cargo.toml がない | 依存関係のインストールを省略 |
よくある間違い
追跡対象外であることの確認を省略する
- **問題:**worktree の内容が追跡され、git status が汚れます
- **修正:**プロジェクト内に worktree を作成する前に、必ず
git check-ignoreを使用してください
ディレクトリの場所を決めつける
- **問題:**一貫性が損なわれ、プロジェクトの規約に違反します
- **修正:**優先順位に従ってください:既存のディレクトリ > CLAUDE.md > ユーザーに尋ねる
テストが失敗した状態で進める
- **問題:**新たな不具合と既存の問題を区別できません
- **修正:**失敗を報告し、続行するための明確な許可を得てください
セットアップコマンドをハードコードする
- **問題:**異なるツールを使用するプロジェクトで機能しなくなります
- **修正:**プロジェクトファイル(package.json など)から自動検出してください
ワークフローの例
You: I'm applying the workspace-isolation skill to set up an isolated workspace.
[Check .worktrees/ - exists]
[Verify ignored - git check-ignore confirms .worktrees/ is ignored]
[Create worktree: git worktree add .worktrees/auth -b feature/auth]
[Run npm install]
[Run npm test - 47 passing]
Worktree ready at /home/user/myproject/.worktrees/auth
Tests passing (47 tests, 0 failures)
Ready to implement auth feature
ガードレール
禁止事項:
- 無視対象であることを確認せずに、プロジェクト内にワークツリーを作成する
- ベースラインテストの検証を省略する
- 失敗するテストがあるのに、確認を求めずに続行する
- あいまいな場合に、ディレクトリの場所を決めつける
- CLAUDE.md の確認を省略する
必ず行うこと:
- ディレクトリの優先順位に従う:既存のもの > CLAUDE.md > 確認する
- プロジェクト内のディレクトリが無視対象であることを確認する
- プロジェクトのセットアップを自動検出して実行する
- テストのベースラインが正常であることを確認する
連携
呼び出し元:
- delegated-execution - タスクを実行する前に必ず実行する
- task-runner - タスクを実行する前に必ず実行する
- task-planning - ワークツリーが有効であることを前提に計画する
- 分離されたワークスペースを必要とするすべてのスキル
併用するもの:
- merge-protocol - 作業完了後のクリーンアップに必須