バックエンド実装時に使用。DRY原則遵守。コーディング規約準拠。
中文简介正在准备中。当前显示原文说明。
Git worktree を使った並列開発時に使用。配置・ポート割当・環境コピー・クリーンアップを標準化する。
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
同一リポジトリ内で複数の独立タスクを並列に進める際、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 に割当がある还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
バックエンド実装時に使用。DRY原則遵守。コーディング規約準拠。
中文简介正在准备中。当前显示原文说明。
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
中文简介正在准备中。当前显示原文说明。
作業開始時に使用。mainブランチでの作業禁止。Issue先行作成必須。
中文简介正在准备中。当前显示原文说明。
UI実装後の検証時に使用。agent-browser CLIでブラウザ上の動作を手動検証する。「UIを確認」「画面テスト」と言われたら使用(プロジェクトの E2E スイート実行は quality-check Step 5(推奨度・範囲で自動実施または確認)/ server-startup が担当)。
中文简介正在准备中。当前显示原文说明。
DBマイグレーション作成時に使用。バージョン番号競合防止。mainブランチ確認必須。
中文简介正在准备中。当前显示原文说明。
Use when independent tasks benefit from parallel work without shared state or sequential dependencies
中文简介正在准备中。当前显示原文说明。