Skill Index

dlt/

create-worktree

community[skill]

Create or reuse a git worktree for a pull request or branch so reviews and work happen in isolation

$/plugin install dlt

details

Git Worktree

Set up an isolated git worktree.

Parse $ARGUMENTS to extract:

  • The worktree name (required) — used as the directory name under .worktrees/
  • --pr <number> (optional) — checkout a GitHub PR into the worktree using gh pr checkout
  • --branch <ref> (optional) — create the worktree from a specific branch or ref

Steps

1. Determine worktree path

The worktree path is: <repo-root>/.worktrees/<name>

For example, if the repo root is /home/user/src/dlt and the name is review-pr-3584, the worktree path is /home/user/src/dlt/.worktrees/review-pr-3584.

Create the .worktrees directory if it does not exist:

mkdir -p <repo-root>/.worktrees

2. Create or reuse the worktree

Check if a worktree already exists at that path:

git worktree list
  • If a worktree already exists at the target path, reuse it.
    • If --pr was given, run cd <worktree-path> && gh pr checkout <number> to make sure it is up to date.
    • If --branch was given, run git -C <worktree-path> checkout <ref>.
  • If no worktree exists at the target path, create one:
    • If --pr was given, first resolve the PR's branch name: gh pr view <number> --json headRefName -q .headRefName
    • If --pr or --branch was given, check git worktree list output for any other worktree that already has the same branch checked out. If found:
      • Use AskUserQuestion to ask the user: "Branch <branch> is already checked out in worktree <existing-path>. Use that worktree instead?"
      • If the user says yes, use the existing worktree path (skip creation, proceed to step 3 with the existing path).
      • If the user says no, STOP — do not create a new worktree. Print a message explaining that the branch is already checked out elsewhere and exit.
    • If no conflict, create the worktree:
      • If --branch was given: git worktree add .worktrees/<name> <ref>
      • Otherwise: git worktree add .worktrees/<name> --detach
      • If --pr was given, then also: cd <worktree-path> && gh pr checkout <number>
  • gh pr checkout handles fetching, fork tracking, and branch setup automatically.

3. Switch cwd

cd <worktree-path>

Then verify the switch took effect:

pwd

If pwd does not show the worktree path, stop with an error — the cwd did not persist.

4. Report

Worktree ready: <worktree-path>

technical

github
dlt-hub/dlt
stars
5236
license
Apache-2.0
contributors
100
last commit
2026-04-21T07:09:28Z
file
.claude/skills/create-worktree/SKILL.md

related