Worktree Deliver
Commit, push, and create PR from the current worktree
Before you use this component
This is a third-party source bundle, not an installation into your account. UI Discovery has checked the available redistribution license evidence; runtime behavior has not been tested. Review all files, use a disposable project first, and do not enable scripts or hooks until you understand their permissions.
Some integrations require separately installed software, API keys or paid services. Credentials and subscriptions are not included. These are Claude Code resources; other clients may require adaptation.
Extract the ZIP into a temporary folder, inspect its entry file and supporting resources, then follow the original instructions. Do not overwrite an existing project configuration blindly. Keep the bundled license and attribution notices.
- Source publisher
- Claude Code Templates
- Creator supplied by source
- Not listed in source
- Pinned source version
- a344359459263d73d8948651c789244093c02e4e
- License evidence
- LICENSE
Source preview
cli-tool/components/commands/git-workflow/worktree-deliver.md
---
allowed-tools: Bash(git:*), Bash(gh:*), Bash(rm:*), Bash(cat:*), Bash(pwd:*), Bash(ls:*)
description: Commit, push, and create PR from the current worktree
---
# 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
1. Verify this is a worktree (not the main working tree) using `git worktree list`
2. Get current branch: `git branch --show-current`
3. Verify branch follows `claude/*`, `claude-daniel/*`, or `review/*` pattern. If not, warn the user and ask if they want to continue.
4. Read `.worktree-task.md` if it exists to get the original task description
### Step 2: Review Changes
1. Run `git diff --stat` and `git diff --cached --stat` to show all changes
2. Run `git status --short` to show the full picture
3. 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:
```bash
rm -f .worktree-task.md
```
### Step 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
1. Stage the confirmed files with `git add`
2. Generate a commit message following conventional commits format
**Commit Message Strategy:**
1. **Analyze the diff** to determine the conventional commit type:
- `feat:` — New functionality, new files, new exports, new API endpoints
- `fix:` — Bug fixes, error corrections, fixing broken behavior
- `refactor:` — Code restructuring without changing behavior
- `docs:` — Documentation only changes
- `test:` — Adding or modifying tests
- `chore:` — Build scripts, configs, maintenance tasks
2. **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)
3. **Show the proposed message** to the user with AskUserQuestion:
- Display the generated message clearly
- Options: "Use this message" / "Let me write my own"
4. **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)
5. **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
3. Create the commit with the message using a HEREDOC:
```bash
git commit -m "$(cat <<'EOF'
<commit message here>
EOF
)"
```
### Step 6: Push
Push the branch to origin:
```bash
git push -u origin HEAD
```
If 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
1. Determine the base branch (main or master) using the same detection as worktree-init
2. Create the PR using `gh pr create`:
```bash
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
)"
```
3. Display the PR URL prominently
### Step 8: Next Steps
Tell the user:
- PR is ready for review at `<URL>`
- After merging, run `/worktree-cleanup` from the main repo to clean up
- They can close this terminal panel
Preview capped at 60,000 characters. Download the bundle for every original file and notice.
Read the redistribution license
MIT License Copyright (c) 2025 Daniel (San) Ávila Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Bundle SHA-256: 6d3ded123cbfb422c267df79a4dda9ee35800ff21fe23cd7b7dad26b238a13c7. Files are served as downloads and are never executed by this page.