mcpField
U
using-git-worktrees

using-git-worktrees

github.com/jackspace開発1637 回インストール12 週間前に更新
リポジトリ

using-git-worktrees について

using-git-worktrees は、同じリポジトリで複数ブランチを並行作業するための、隔離された Git worktree の作成を案内するスキルです。ディレクトリ選択と安全確認の後、プロジェクト設定と基準テストを実行します。

主な機能

  1. 01worktree ディレクトリの選択と確認
  2. 02.gitignore の事前検証
  3. 03プロジェクト設定の自動検出と実行
  4. 04基準テストの実行と結果報告

活用シーン

  1. 01複数ブランチでの並行開発
  2. 02隔離された作業環境での機能実装
  3. 03開発前のテスト基準確認

インストール

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

$npx skills add https://github.com/jackspace/claudeskillz --skill using-git-worktrees

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

同梱ファイルSKILL.json

詳細

Git Worktree の使用

概要

Git worktree を使うと、同じリポジトリを共有する独立したワークスペースを作成でき、ブランチを切り替えずに複数のブランチで同時に作業できます。

基本原則: ディレクトリを体系的に選択し、安全性を確認することで、信頼性の高い分離を実現します。

開始時に伝える内容: 「using-git-worktrees スキルを使って、独立したワークスペースをセットアップします。」

ディレクトリの選択手順

次の優先順位に従います。

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/superpowers/worktrees/<project-name>/ (global location)

Which would you prefer?

安全性の確認

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

worktree を作成する前に、必ず .gitignore を確認してください。

# Check if directory pattern in .gitignore
grep -q "^\.worktrees/$" .gitignore || grep -q "^worktrees/$" .gitignore

.gitignore に含まれていない場合:

Jesse のルール「壊れたものはすぐに修正する」に従い、

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

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

グローバルディレクトリ(~/.config/superpowers/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/superpowers/worktrees/*)
    path="~/.config/superpowers/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 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/ が存在する使用する(.gitignore を確認)
worktrees/ が存在する使用する(.gitignore を確認)
両方存在する.worktrees/ を使用する
どちらも存在しないCLAUDE.md を確認 → ユーザーに尋ねる
ディレクトリが .gitignore に含まれていないすぐに追加してコミットする
ベースライン確認中にテストが失敗する失敗内容を報告して尋ねる
package.json/Cargo.toml がない依存関係のインストールを省略する

よくある間違い

.gitignore の確認を省略する

  • 問題: worktree の内容が追跡対象となり、git status が汚れます
  • 修正: プロジェクト内に worktree を作成する前に、必ず .gitignore を grep します

ディレクトリの場所を決めつける

  • 問題: 一貫性が損なわれ、プロジェクトの規約に反します
  • 修正: 優先順位に従います:既存のディレクトリ > CLAUDE.md > ユーザーに尋ねる

テストが失敗している状態で進める

  • 問題: 新たなバグと既存の問題を区別できません
  • 修正: 失敗内容を報告し、続行する明示的な許可を得ます

セットアップコマンドをハードコードする

  • 問題: 異なるツールを使うプロジェクトで動作しなくなります
  • 修正: プロジェクトファイル(package.json など)から自動検出します

ワークフローの例

You: I'm using the using-git-worktrees skill to set up an isolated workspace.

[Check .worktrees/ - exists]
[Verify .gitignore - contains .worktrees/]
[Create worktree: git worktree add .worktrees/auth -b feature/auth]
[Run npm install]
[Run npm test - 47 passing]

Worktree ready at /Users/jesse/myproject/.worktrees/auth
Tests passing (47 tests, 0 failures)
Ready to implement auth feature

危険信号

絶対にしないこと:

  • .gitignore の確認をせずに worktree を作成する(プロジェクト内の場合)
  • ベースラインのテスト確認を省略する
  • 尋ねずに、テストが失敗している状態で進める
  • 曖昧な場合にディレクトリの場所を決めつける
  • CLAUDE.md の確認を省略する

必ず行うこと:

  • ディレクトリの優先順位に従う:既存のディレクトリ > CLAUDE.md > ユーザーに尋ねる
  • プロジェクト内の場合は .gitignore を確認する
  • プロジェクトのセットアップを自動検出して実行する
  • テストのベースラインがクリーンであることを確認する

統合

呼び出し元:

  • brainstorming(フェーズ 4)— 設計が承認され、実装に進む場合に必須
  • 独立したワークスペースを必要とするすべてのスキル

組み合わせて使うスキル:

  • finishing-a-development-branch — 作業完了後のクリーンアップに必須
  • executing-plans または subagent-driven-development — この worktree で作業を行います

コメント