Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback Use when 需要Development领域自动化处理、数据分析和流程编排时使用。不适用于无明确需求的模糊场景。
编程
ia-git-worktree
试用Manage Git worktrees for isolated parallel development. Use when creating, listing, switching, or cleaning up git worktrees, or when needing isolated branches for concurrent reviews or feature work.
它能做什么
Manage Git worktrees for isolated parallel development. Use when creating, listing, switching, or cleaning up git worktrees, or when needing isolated branches for concurrent reviews or feature work.
技能文档
Git worktree manager
GATE: If the task runs inside an existing worktree (a worktree path is given and no create/remove/switch is requested), none of the creation flow applies — work in place and skip this skill. To check: git rev-parse --show-toplevel appears as a linked entry in git worktree list.
Always use the manager script
Never call git worktree add directly -- always use the worktree-manager.sh script.
The script handles critical setup that raw git commands don't:
- Copies
.env,.env.local,.env.test, etc. from main repo - Ensures
.worktreesis in.gitignore - Creates consistent directory structure
- After creation, install dependencies if detected:
package.json→npm install,composer.json→composer install,pyproject.toml→pip install -e .,go.mod→go mod download
All commands use: bash ${CLAUDE_PLUGIN_ROOT}/skills/ia-git-worktree/scripts/worktree-manager.sh . If CLAUDE_PLUGIN_ROOT is unset (non-Claude-Code harness), resolve the script relative to this skill's own directory.
The manager script branches from a fresh origin/; if the prompt is unanswered it defaults to origin/ and lists unpushed commits in its output — report them in the change summary. Details: troubleshooting.md.
Commands
| Command | Description | Example |
|---|---|---|
create [from] | Create worktree + branch (default: from main) | ...worktree-manager.sh create feature-login |
list / ls | List all worktrees with status | ...worktree-manager.sh list |
switch / go | Switch to existing worktree | ...worktree-manager.sh switch feature-login |
copy-env | Copy .env files to existing worktree | ...worktree-manager.sh copy-env feature-login |
cleanup / clean | Interactively remove inactive worktrees | ...worktree-manager.sh cleanup |
After cleanup, run git worktree prune to remove any orphaned worktree metadata from manually deleted directories.
Safety Verification
Before creating a worktree, verify the worktree directory is gitignored:
# Verify .worktrees is ignored (should output ".worktrees")
git check-ignore .worktrees || echo "WARNING: .worktrees not in .gitignore"
If not ignored, add it to .gitignore before proceeding.
After creating a worktree, run the project's test suite (or the fastest relevant subset if the full suite exceeds a few minutes) to establish a clean baseline. Pre-existing failures in the worktree should be caught before starting new work -- not discovered mid-implementation.
Environment Detection
Before creating worktrees, detect the execution context:
- Codex/sandbox environment? If
$CODEX_SANDBOXis set or the repo is at a non-standard path (e.g.,/tmp/,/workspace/), worktrees may not be supported. Fall back to regular branch switching. - Bare repo? If
git rev-parse --is-bare-repositoryreturns true, worktrees are the only way to have a working directory. Adjust paths accordingly.
Adapt the workflow to the detected context rather than failing with a generic error.
Integration with Workflows
Code review (/ia-review in Claude Code)
- Check current branch
- If ALREADY on target branch -> stay there, no worktree needed
- If DIFFERENT branch -> Ask via AskUserQuestion (Claude Code; load with ToolSearch
select:AskUserQuestionif not loaded) or request_user_input (Codex); fall back to numbered options in chat. Options: 1) review in a new worktree 2) switch branch in place
Plan execution (/ia-work in Claude Code)
Always offer choice:
- New branch on current worktree (live work)
- Worktree (parallel work)
Branch Completion
When work in a worktree is done, verify tests pass, then present exactly 4 options. Ask via AskUserQuestion (Claude Code; load with ToolSearch select:AskUserQuestion if not loaded) or request_user_input (Codex); fall back to numbered options in chat.
- Merge locally -- merge into base branch, delete worktree branch, clean up worktree
- Push + PR -- push branch, create PR with
gh pr create, keep worktree until merged - Keep as-is -- leave branch and worktree for later
- Discard -- requires typing "discard" to confirm. Deletes branch and worktree. No silent discards.
Change Summary
When completing work in a worktree (before merge or PR), output a structured summary:
CHANGES MADE:
- src/routes/tasks.ts: Added validation middleware
THINGS I DIDN'T TOUCH (intentionally):
- src/routes/auth.ts: Has similar validation gap but out of scope
POTENTIAL CONCERNS:
- The Zod schema is strict -- rejects extra fields. Confirm this is desired.
The "DIDN'T TOUCH" section prevents reviewers from wondering whether adjacent issues were missed or intentionally deferred.
Hooks and Local Excludes
Before writing any git hook, check git config core.hooksPath — Husky repos ignore .git/hooks/ entirely. Personal tooling excludes go in $(git rev-parse --git-path info/exclude), never the tracked .gitignore. Details: hooks-and-excludes.md
Verify
git worktree listshows the new entry.worktreesdirectory confirmed in.gitignore- Dependencies installed in the worktree
- Baseline test suite passes in the worktree
References
- workflow-examples.md - Code review and parallel development workflows
- troubleshooting.md - Common issues, fresh-remote-base behavior, directory structure, how it works
- hooks-and-excludes.md - Hook safety under Husky, .git/info/exclude vs .gitignore
- worktree-manager.sh - The manager script
相关技能
Git repository and SourceGit integration. Topics — clone (ghq get + auto SourceGit register), conflict-dry-run (isolated worktree merge/cherry-pick test), credential-helper (per-org HTTPS token pin for multi-account), fix-worktree (bare repo recovery), isolate-hunk (stage only your own edit when a tracked file's working tree mixes it with unrelated uncommitted content, via git plumbing — hash-object + update-index), merge-duplicate (same-origin merge), to-ghq (bare+worktree → ghq, formerly migrate), to-bare (regular repo → bare + worktree, lock-aware), worktree-register (shared metadata register/relink), patrol (batch inspect), move-worktree (register / reclaim merged PR), rename-worktree (rename dir + metadata), sourcegit (preference.json), ssh-key (multi-account SSH map), worktree (inventory + reuse + create). Use when: "ghq get", "sourcegit", "ghq migrate", "repo patrol", "duplicate repo", "worktree fix", "rename worktree", "reuse worktree", "move worktree", "to bare", "convert to b
Structured code reviews with severity-ranked findings and deep multi-agent mode. Use when performing a code review, auditing code quality, or critiquing PRs, MRs, or diffs.
Use when the user explicitly asks to prepare, review, or create a Git commit, including "提交", "提交代码", "帮我提交", "commit", "git commit", "确认提交", or requests a commit message.
Manages project documentation: CLAUDE.md, AGENTS.md, README.md, CONTRIBUTING.md, DOCS.md. Use when asked to update, create, or init these context files. Not for general markdown editing.
File-based todo and task tracking in the todos/ directory. Use when creating, triaging, listing, or managing todo files, tracking work items, managing the ba...