From rune
Manages Git worktree lifecycle: creates isolated .claude/worktrees/ for parallel development or experiments, rune/* branches, verifies, lists, cleans up safely with max 3 active.
npx claudepluginhub rune-kit/rune --plugin @rune/analyticsThis skill uses the workspace's default tool permissions.
Reusable git worktree lifecycle management. Creates isolated workspaces for parallel agent development, manages branch naming, handles cleanup after merge or abort. Extracted from `team` to be usable by any skill that needs workspace isolation.
Manages Git worktrees for isolated parallel development on multiple branches. Creates, lists, switches between, and removes worktrees with safety checks for uncommitted changes and unpushed commits.
Manages git worktrees via unified bash script for parallel development: creates isolated feature environments, lists/switches status, copies .env files, cleans up merged/stale worktrees.
Manages Git worktrees for isolated parallel development: creates from main branch, lists status, switches, cleans up with interactive interface. Auto-copies .env files and updates .gitignore.
Share bugs, ideas, or general feedback.
Reusable git worktree lifecycle management. Creates isolated workspaces for parallel agent development, manages branch naming, handles cleanup after merge or abort. Extracted from team to be usable by any skill that needs workspace isolation.
team (L1) for parallel stream isolationcook (L1) when user explicitly requests worktree isolation/rune worktree create <name> — manual creation/rune worktree cleanup — manual cleanup of stale worktreesNone — pure git operations via Bash.
team (L1): Phase 2 ASSIGN — create worktrees for parallel streamscook (L1): optional isolation for complex featuresInput: { name: string, base_branch?: string }
Default base: current HEAD
Steps:
1. Bash: git worktree add .claude/worktrees/<name> -b rune/<name> [base_branch]
2. Verify: Bash: git worktree list | grep <name>
3. Return: { path: ".claude/worktrees/<name>", branch: "rune/<name>" }
Naming convention:
- Branch: rune/<name> (e.g., rune/stream-a, rune/auth-feature)
- Path: .claude/worktrees/<name>
- Max 3 active worktrees (enforced)
Bash: git worktree list
→ Parse output into: [{ path, branch, commit }]
→ Filter: only rune/* branches (skip main worktree)
Input: { name: string, force?: boolean }
Steps:
1. Check if branch is merged: Bash: git branch --merged main | grep rune/<name>
2. If merged OR force:
Bash: git worktree remove .claude/worktrees/<name> --force
Bash: git branch -d rune/<name> (or -D if force)
3. If NOT merged AND NOT force:
WARN: "Branch rune/<name> has unmerged changes. Use force=true to remove."
Bash: git worktree list --porcelain
→ For each rune/* worktree:
→ Check if branch exists: git branch --list rune/<name>
→ If branch deleted: git worktree prune
→ If branch merged: cleanup (see above)
→ Report: removed [N] stale worktrees
1. NEVER delete a worktree with uncommitted changes without user confirmation
2. NEVER force-delete an unmerged branch without user confirmation
3. MAX 3 active rune/* worktrees — refuse creation if limit reached
4. ALWAYS use .claude/worktrees/ directory — not project root
5. ALWAYS prefix branches with rune/ — easy identification and cleanup
## Worktree Report
- **Action**: create | cleanup | list
- **Worktrees**: [count active]
### Active Worktrees
| Name | Branch | Path | Status |
|------|--------|------|--------|
| stream-a | rune/stream-a | .claude/worktrees/stream-a | active |
| stream-b | rune/stream-b | .claude/worktrees/stream-b | merged |
| Failure Mode | Severity | Mitigation |
|---|---|---|
| Worktree left behind after failed merge | MEDIUM | Cleanup All Stale operation + pre-team-merge tag for recovery |
| Branch name collision with existing branch | LOW | Check branch existence before creation, append timestamp if collision |
| Worktree path on Windows with long path | MEDIUM | Use short names, keep under .claude/worktrees/ to minimize path length |
| Deleting worktree with uncommitted agent work | HIGH | Safety Rule 1: always check for uncommitted changes first |
~200-500 tokens. Haiku + Bash commands. Fast and cheap.