agentsclimarketplace

Using git worktrees

Skill alexei-led/cc-thingz/dist/pi/skills/using-git-worktrees

Portable skills, agents, hooks, and Pi extensions for Claude Code, Codex CLI, Copilot, Cursor, Grok, and Pi.From the repository description

Install
npx -y skills add alexei-led/cc-thingz --skill using-git-worktrees

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

4.2 KB, 920 tokens by cl100k_base, as published. Nobody here has run it

<!-- Pi platform guidance --> <!-- Use installed Pi tool names exactly. Installed extensions may add toolsets such as Task*, Monitor*, and Loop*; use the visible tool names exactly and do not translate them to Claude syntax. --> <!-- Prefer Task* over `todo` when task-tracking tools are available; `todo` is the cc-thingz fallback. Prefer MonitorCreate for long-running or background commands and LoopCreate for scheduled or event-driven follow-up instead of Bash sleep/poll loops. --> <!-- Use subagent for delegated work. Use wait to block on async subagent runs only when no independent work remains. --> <!-- Use ctx7 or npx ctx7@latest through bash when Context7 documentation lookup is required. -->

Git Worktrees

Use one sibling worktree root per project: <project>.worktrees/<branch-slug>. Keep the main worktree clean on the integration branch by default. Trivial solo one-liners may stay in the main worktree when a worktree would add pointless ceremony.

Treat a worktree as a disposable branch folder. Remove it and its branch after the PR merges.

Scope

Use this skill when:

  • starting a feature, fix, or experiment that should not disturb current work
  • working on multiple branches at once
  • trying competing approaches
  • the current worktree has uncommitted changes and the user wants to start something else

Do not use this skill for:

  • simple branch switching with no parallel work
  • bulk branch or stale worktree cleanup — use cleanup-git
  • git hook, Gitleaks, .gitignore, or config setup — use configuring-git-hygiene

Create Workflow

Check state before any git worktree add:

git status --short
git branch --show-current
git worktree list

If the current worktree is dirty, ask whether to commit, stash, or proceed anyway. Do not stash silently.

Use the helper when available:

scripts/setup-worktree.sh <branch> [--base <ref>]

The helper creates <project>.worktrees/<branch-slug> from the main worktree root, handles existing local/remote branches, refuses path conflicts, and refuses dirty state unless --allow-dirty is passed after user approval.

Manual fallback lives in workflow.md.

Naming

  • Root: sibling <project>.worktrees/ directory.
  • Directory: branch slug only; replace / with -.
  • Examples: fix-cron, feature-auth, bugfix-issue-123.

Cleanup Workflow

For one named worktree after PR merge:

scripts/cleanup-worktree.sh [branch]

The helper refuses unless gh confirms the PR is MERGED. Pass --force only after the user confirms the merge without gh or confirms the branch should be abandoned.

For bulk cleanup, stale worktrees, gone upstreams, or merged local branches, use cleanup-git.

Do not run git pull as part of cleanup. Pull the integration branch only after confirming the main worktree is checked out and clean.

Failure Handling

  • Worktree path exists: pick a different branch/slug; never overwrite.
  • Branch already exists remotely: check it out without -b or use the helper.
  • Dirty current worktree: ask to commit, stash, or continue with explicit approval.
  • git worktree remove fails because the worktree is dirty: confirm before --force.
  • git branch -d fails after squash/rebase PR merge: confirm the PR is MERGED, then use -D.
  • Invoked from inside the worktree being removed: change to the main worktree before removing it.

Output

WORKTREE READY
==============
Action: CREATE | CLEANUP
Branch: <branch>
Path: <project>.worktrees/<slug>
Status: DONE | BLOCKED

Next:
- cd <path> and open the editor there, or
- pull the integration branch yourself after confirmed cleanup

For cleanup, report DONE only when the PR is confirmed MERGED or --force was used deliberately. Otherwise report BLOCKED with the script's reason.

References

  • workflow.md — manual fallback and edge cases
  • scripts/ — setup-worktree.sh and cleanup-worktree.sh

What ships with it: 3 files

11.5 KB alongside SKILL.md, 2 of them executable

references/

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.