mcpField
U
using-git-worktrees

using-git-worktrees

github.com/mavscui開発19361 回インストール34 週間前に更新
リポジトリ

using-git-worktrees について

using-git-worktrees は、複数ブランチを扱う開発向けに、コーディングエージェントが分離された Git worktree を作成する手順を示す技能です。リポジトリの慣例と CLAUDE.md に基づいて場所を選び、ignore 設定とテストの基準状態を確認します。

主な機能

  1. 01優先順位に沿った worktree 配置先の選択
  2. 02ローカル配置先が Git の追跡対象外か確認
  3. 03プロジェクトファイルに応じた依存関係の導入
  4. 04テストによるクリーンな基準状態の確認
  5. 05失敗を報告し続行前に許可を確認

活用シーン

  1. 01作業場所を切り替えず複数ブランチを扱う
  2. 02機能開発用の分離ディレクトリを作る
  3. 03実装前にプロジェクトのテスト基準を確認する

インストール

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

$npx skills add https://github.com/mavscui/agent-skills-hunter --skill using-git-worktrees

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

詳細

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 を作成する前に、ディレクトリが無視されていることを必ず確認してください:

# 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

無視されていない場合:

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/ が存在するそれを使用する(無視されていることを検証)
worktrees/ が存在するそれを使用する(無視されていることを検証)
両方存在する.worktrees/ を使用する
どちらも存在しないCLAUDE.md を確認 → ユーザーに確認
ディレクトリが無視されていない.gitignore に追加 + コミット
ベースライン時にテストが失敗する失敗を報告 + 確認
package.json/Cargo.toml がない依存関係のインストールをスキップ

よくある間違い

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

ワークフローの例

You: I'm using the using-git-worktrees 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 /Users/jesse/myproject/.worktrees/auth
Tests passing (47 tests, 0 failures)
Ready to implement auth feature

レッドフラッグ

絶対にしないこと:

  • 無視されているかを確認せずに worktree を作成する(プロジェクト内の場合)
  • ベースラインのテスト確認を省略する
  • 確認せずに失敗しているテストのまま続行する
  • 曖昧な場合にディレクトリの場所を想定する
  • CLAUDE.md の確認を省略する

常に行うこと:

  • ディレクトリの優先順位に従う: 既存 > CLAUDE.md > 確認
  • プロジェクト内の場合、ディレクトリが無視されていることを検証する
  • プロジェクトのセットアップを自動検出して実行する
  • クリーンなテストのベースラインを検証する

連携

呼び出し元:

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

併用するスキル:

  • finishing-a-development-branch - 作業完了後のクリーンアップに必須
  • executing-plans または subagent-driven-development - この worktree 内で作業が行われる

コメント