Worktree Deliver
Commit, push, and create PR from the current worktree
npx claude-code-templates@latest --command git-workflow/worktree-deliver Scanned by NVIDIA SkillSpector
Automated static analysis (no LLM) · v2.12.0 · 2026-10-17
Partial analysis: some checks could not run on this component.
SkillSpector looks for patterns such as shell commands, credential access, network calls or unpinned dependencies. An observation is something worth reading in the files before you install, not a confirmed vulnerability. Components that run code locally, like hooks, MCP servers and security tooling, naturally show more of them.
No observations.
Learn more about NVIDIA SkillSpector.
Content
Worktree Deliver
Commit all work, push, and create a pull request from the current worktree.
Instructions
You are inside a worktree. Package up the work and deliver it as a PR.
Step 1: Validate Environment
- Verify this is a worktree (not the main working tree) using
git worktree list - Get current branch:
git branch --show-current - Verify branch follows
claude/*,claude-daniel/*, orreview/*pattern. If not, warn the user and ask if they want to continue. - Read
.worktree-task.mdif it exists to get the original task description
Step 2: Review Changes
- Run
git diff --statandgit diff --cached --statto show all changes - Run
git status --shortto show the full picture - If there are no changes at all (clean working tree, no commits ahead of main), inform the user there's nothing to deliver and stop.
Step 3: Clean Up Task File
Before staging anything, remove the worktree task file so it doesn't end up in the commit:
rm -f .worktree-task.mdStep 4: Confirm Files to Commit
Use AskUserQuestion to show the user what will be committed and ask for confirmation. List all modified, added, and untracked files.
Options:
- "Stage all changes" — stage everything
- "Let me choose" — user will specify which files to include
If the user wants to choose, ask them which files to stage.
Step 5: Stage and Commit
- Stage the confirmed files with
git add - Generate a commit message following conventional commits format
Commit Message Strategy:
Analyze the diff to determine the conventional commit type:
feat:— New functionality, new files, new exports, new API endpointsfix:— Bug fixes, error corrections, fixing broken behaviorrefactor:— Code restructuring without changing behaviordocs:— Documentation only changestest:— Adding or modifying testschore:— Build scripts, configs, maintenance tasks
Generate a commit message based on:
- The task description from
.worktree-task.md(if it was found) - A brief summary of what the diff actually changed
- Format:
<type>: <subject>(max 72 characters)
- The task description from
Show the proposed message to the user with AskUserQuestion:
- Display the generated message clearly
- Options: "Use this message" / "Let me write my own"
If user chooses to write their own:
- Ask them to provide their commit message
- Validate it follows conventional commits format (warn if not, but allow)
Always include body and co-author:
- Add a brief body summarizing what changed (2-3 bullet points if multiple changes)
- Include the standard co-author line
Create the commit with the message using a HEREDOC:
bashgit commit -m "$(cat <<'EOF' <commit message here> EOF )"
Step 6: Push
Push the branch to origin:
git push -u origin HEADIf push fails due to no upstream, the -u flag should handle it. If it fails for another reason, show the error and suggest fixes.
Step 7: Create Pull Request
- Determine the base branch (main or master) using the same detection as worktree-init
- Create the PR using
gh pr create:
gh pr create --base <main-branch> --title "<PR title>" --body "$(cat <<'EOF'
## Summary
<bullet points describing the changes based on task description and diff>
## Original Task
<task description from .worktree-task.md>
## Changes
<git diff --stat summary>
---
Created from worktree `claude/<name>` using `/worktree-deliver`
EOF
)"- Display the PR URL prominently
Step 8: Next Steps
Tell the user:
- PR is ready for review at
<URL> - After merging, run
/worktree-cleanupfrom the main repo to clean up - They can close this terminal panel