バックエンド実装時に使用。DRY原則遵守。コーディング規約準拠。
The English summary is being prepared. Showing the original description.
Git worktree を使った並列開発時に使用。配置・ポート割当・環境コピー・クリーンアップを標準化する。
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
同一リポジトリ内で複数の独立タスクを並列に進める際、worktree の配置、ブランチ、ポート、環境ファイル、終了処理を統一する。
SuperPowers の using-git-worktrees で分離ワークスペースを確保したうえで、このスキルのプロジェクト固有ルールを適用する。
.worktrees/ 配下に作成する/ を - に置換したものにするgit worktree remove と git worktree prune で孤児状態を残さないgit branch --show-current
git status --short --untracked-files=no
git worktree list
--untracked-files=no は、main のチェックアウトで実行したときに、ユーザーの未追跡ファイル(作業中の資料など)の長い一覧を出さないため(前提確認に要るのは追跡ファイルの変更だけ)。
確認すること:
main / master ではない、またはこれから新規ブランチを作る.worktrees/ の安全確認.worktrees/ は必ず Git 追跡対象外にする。
bash:
# パスは末尾スラッシュ付きで指定すること(ディレクトリ未作成でも正しく判定するため)
git check-ignore -q .worktrees/ || echo ".worktrees/" >> .gitignore
PowerShell:
git check-ignore -q .worktrees/
if ($LASTEXITCODE -ne 0) { Add-Content -Path .gitignore -Value ".worktrees/" }
.gitignore を変更した場合は、worktree 作成前にその変更をコミット対象として扱う。未追跡の worktree 内容が誤ってコミットされないことを最優先する。
bash:
BRANCH_NAME="[type]/[description]-[issue-number]"
WORKTREE_NAME="${BRANCH_NAME//\//-}"
WORKTREE_PATH=".worktrees/${WORKTREE_NAME}"
git worktree add "${WORKTREE_PATH}" -b "${BRANCH_NAME}"
PowerShell:
$BranchName = "[type]/[description]-[issue-number]"
$WorktreeName = $BranchName -replace '/', '-'
$WorktreePath = ".worktrees/$WorktreeName"
git worktree add $WorktreePath -b $BranchName
既にブランチが存在する場合は -b を外して同じパスに追加する:
git worktree add "${WORKTREE_PATH}" "${BRANCH_NAME}"
作成後は対象 worktree に移動し、以降の変更はその中だけで行う。
スキルのリンク: .claude/skills 等は .gitignore(/.claude/skills など)で追跡対象外にしているリンクのため、worktree には引き継がれない。作成後に worktree の中で npx -y @crearize/ai-dev-helm@<version> link-skills を実行する(<version> は .ai-dev-helm.json の version。導入済みの版に固定する。無いリンクだけを作る。Windows は junction)。リンクが無いと配布スキルが読まれない。
worktree ごとのポートは、メインチェックアウト直下の .worktrees/.ports.json で管理する。
worktree 内からの相対パス(../.ports.json など)は worktree の配置に依存して壊れやすいため、メインチェックアウトで作成時に絶対パスを控えてエージェントへ渡す。
bash:
PORT_REGISTRY="$(pwd -P)/.worktrees/.ports.json"
PowerShell:
$PortRegistry = Join-Path (Get-Location).Path ".worktrees/.ports.json"
{
"base": {
"frontend": 3000,
"backend": 8080
},
"allocations": {
"feat-example-123": {
"slot": 2,
"frontend": 3010,
"backend": 8090
}
}
}
slot を 2 から順に割り当てるslot ごとのポートは base + ((slot - 1) * 10) とするCLAUDE.md / AGENTS.md / .cursorrules の Development Server Ports を確認する.worktrees/.ports.json がなければ作成する.env.local などの PORT 系変数に割当ポートを反映するworktree 作成後、メインチェックアウトから未追跡のローカル設定をコピーする。
対象例:
.env.env.local.env.development*.local注意:
worktree 作成直後に無条件で install / build を実行しない。
if [ -f pnpm-lock.yaml ]; then
pnpm install --prefer-offline # 共有 store からハードリンクされ高速
elif [ -f yarn.lock ]; then
yarn install --prefer-offline
elif [ -f package-lock.json ]; then
npm ci --prefer-offline
elif [ -f package.json ]; then
npm install --prefer-offline
fi
Gradle のキャッシュ(~/.gradle)は worktree 間で共有されるため、事前のフルビルドは不要。テスト実行などでビルドが必要になった時点で実行する。
# ビルドが必要になった時点でのみ(例: テスト実行前)
./gradlew build -x test --build-cache
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f pyproject.toml ]; then poetry install; fi
2 つ以上の独立タスクを並列化する場合は、superpowers:dispatching-parallel-agents と組み合わせて worktree 単位で分離する。
各エージェントへの必須指示:
あなたの作業場所は <worktree path> です。
ポートレジストリは <absolute path to .worktrees/.ports.json> です。
この worktree 外のファイルを変更してはいけません。
サーバーを起動する場合はポートレジストリの割当ポートだけを使用してください。
作業完了時は起動したサーバーを停止し、変更内容と検証結果を報告してください。
独立していないタスク、共有ファイルへの頻繁な変更が必要なタスク、DB マイグレーション競合が起きるタスクは並列化しない。
worktree 内で E2E テスト、ブラウザ検証、開発サーバー起動が必要な場合は、必ず server-startup スキルを併用する。
順序:
.worktrees/.ports.json の割当ポートを確認マージ / PR 作成 / 破棄の判断は superpowers:finishing-a-development-branch スキルに従う。
PR がマージされた、または作業を破棄する判断をしたら、worktree とブランチを削除する。
git worktree remove ".worktrees/<worktree-name>"
git worktree prune
git branch -d "<branch-name>" # マージ済みを確認してから削除。破棄時のみ -D を使用
Windows で削除に失敗する場合(node_modules の長いパスなど)。対象は .worktrees/<name> の中だけにする。
git config core.longpaths true\\?\ にした絶対パス(\\?\<絶対パス>\.worktrees\<name>\node_modules)で長いパスを消す。Git Bash では /c がパスに変換されるため cmd //c rmdir /s /q "\\?\<絶対パス>\.worktrees\<name>\node_modules" と書く(PowerShell なら Remove-Item -LiteralPath "\\?\<絶対パス>\.worktrees\<name>\node_modules" -Recurse -Force)git worktree remove --force ".worktrees/<name>" と git worktree prune を実行する.worktrees/<name> の外は消さない。
メインチェックアウト直下の .worktrees/.ports.json から該当 worktree の割当を削除する。
削除前に必ず確認すること:
.worktrees/ が Git 追跡対象外である.worktrees/.ports.json に割当があるNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
バックエンド実装時に使用。DRY原則遵守。コーディング規約準拠。
The English summary is being prepared. Showing the original description.
Use before implementing any feature, behavior change, or refactor - settles requirements and design, then gets the design independently reviewed and approved by the user before code is written
The English summary is being prepared. Showing the original description.
作業開始時に使用。mainブランチでの作業禁止。Issue先行作成必須。
The English summary is being prepared. Showing the original description.
UI実装後の検証時に使用。agent-browser CLIでブラウザ上の動作を手動検証する。「UIを確認」「画面テスト」と言われたら使用(プロジェクトの E2E スイート実行は quality-check Step 5(推奨度・範囲で自動実施または確認)/ server-startup が担当)。
The English summary is being prepared. Showing the original description.
DBマイグレーション作成時に使用。バージョン番号競合防止。mainブランチ確認必須。
The English summary is being prepared. Showing the original description.
Use when independent tasks benefit from parallel work without shared state or sequential dependencies
The English summary is being prepared. Showing the original description.