tracer-worktrees について
tracer-worktrees は、ユーザーが選んだ作業環境を崩さずに機能開発用ワークスペースを準備するワークフロースキルです。コーディングエージェント向けに、ブランチや既存の分離環境を確認し、ネイティブツールを優先して、必要なら git worktree を使い、依存関係とテストを検証します。
主な機能
- 01現在のブランチに応じた判定
- 02既存 worktree の検出
- 03ネイティブ harness ツールの優先
- 04git worktree による代替
- 05プロジェクト依存関係のセットアップ
- 06基準テストの検証
活用シーン
- 01main または master から分離環境を準備
- 02既存の機能ブランチで作業を継続
- 03実装前の依存関係とテストの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scottwater/ skills --skill tracer-worktreesインストール後、Claude Code で/tracer-worktreesを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
Worktree
ユーザーがすでに選択したワークスペースを妨げずに、機能開発用のワークスペースを選びます。名前付きのデフォルト以外のブランチは現在のチェックアウトにそのまま残します。main または master で始める作業には機能ブランチを作成し、受け入れられたら隔離されたチェックアウトを用意します。チェックアウトを分けることで、/tracer-implement を並行して実行しても安全です。
優先順位:名前付きの機能ブランチを維持 → 既存の隔離環境を再利用 → ネイティブのハーネスツール → git worktree による代替手段。ハーネスに逆らわないでください。
0. 現在のブランチを確認する
CURRENT_BRANCH=$(git symbolic-ref --quiet --short HEAD || true)
CURRENT_BRANCHが名前付きで、mainまたはmasterのいずれでもない場合、リポジトリにはすでに明確な機能開発用ワークスペースがあります。このスキルを終了し、現在のチェックアウトで作業してください。 リンクされた worktree は必須ではありません。ブランチが、ワークスペースがすでに選択されていることを示します。CURRENT_BRANCHが空の場合、HEAD がデタッチされているか、ブランチの検出に失敗しています。状態を報告し、そのまま作業を続けるかブランチを作成するか尋ねてください。確認せずに worktree を作成しないでください。CURRENT_BRANCHが正確にmainまたはmasterの場合に限り、このスキルで worktree の作成を検討します。以下に進んでください。
1. 既存の隔離環境を検出する
GIT_DIR=$(cd "$(git rev-parse --git-dir)" && pwd -P)
GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" && pwd -P)
git rev-parse --show-superproject-working-tree # non-empty ⇒ submodule, not a worktree
GIT_DIR != GIT_COMMON で、サブモジュール内にいない場合は、すでにリンクされた worktree 内にいます。git switch -c "$BRANCH_NAME" を実行してこのチェックアウトに機能ブランチを作成し、セットアップ(ステップ3)に進んでください。worktree を入れ子にしないでください。
それ以外の場合、ユーザーが worktree の設定をまだ指定していなければ、一度だけ「隔離された worktree を設定しますか? 現在のブランチを保護できます。」と尋ねてください。断られた場合は、git switch -c "$BRANCH_NAME" を実行し、現在のチェックアウトで作業してください。
2. ワークスペースを作成する
2a. まずネイティブツールを使う。 ハーネスに EnterWorktree、/worktree コマンド、--worktree フラグなどがあれば、それを使ってステップ3に進んでください。ネイティブツールがあるのに git worktree add を使うと、ハーネスが管理できない幻影の状態が作られます。これは最もよくある誤りです。
2b. Git による代替手段(ネイティブツールがない場合に限る):
- ディレクトリの優先順位:ユーザーが明示した設定 → 既存の
.worktrees/→ 既存のworktrees/→ プロジェクトルートに.worktrees/を作成。 - 作成前に無視対象になっていることを確認する:
git check-ignore -q .worktreesを実行し、無視されていなければ.gitignoreに追加してコミットします。そうしないと、worktree の内容が追跡対象になります。 - 作成:
git worktree add "$LOCATION/$BRANCH_NAME" -b "$BRANCH_NAME" && cd "$LOCATION/$BRANCH_NAME" - サンドボックスまたは権限エラーで作成に失敗した場合は、その旨を伝え、
git switch -c "$BRANCH_NAME"を実行して、代わりに現在のチェックアウトで作業してください。
3. プロジェクトをセットアップする
プロジェクトの種類に応じて依存関係をインストールします(npm install、cargo build、pip install -r requirements.txt / poetry install、go mod download など、そのリポジトリで使用されている方法)。
4. クリーンなベースラインを確認する
テストスイートを実行します。失敗した場合は、その内容を報告して、続行する前に確認を求めてください。そうしないと、新しいバグと既存のバグを判別できません。成功した場合は、次の内容を報告してください。
Workspace ready at <path> (<branch>)
Tests passing (<N> tests, 0 failures)
Ready to implement <feature>
作業が完了したら、/tracer-finish-branch がマージ/PR と worktree のクリーンアップを処理します。worktree を独自に削除しないでください。