Arguments: `/git-actions:pr-write [BASE_BRANCH] [CUSTOM_INSTRUCTIONS]`
Generates a PR title and description from your branch commits. Use after committing changes to create a draft PR with AI-assisted content.
/plugin marketplace add olioapps/claude-code-plugins/plugin install git-actions@olio-pluginsArguments: /git-actions:pr-write [BASE_BRANCH] [CUSTOM_INSTRUCTIONS]
Examples:
/git-actions:pr-write - Create PR targeting main/git-actions:pr-write develop - Target develop branch/git-actions:pr-write main brief format - Minimal description/git-actions:pr-write focus on security - Emphasize securityCurrent: !git branch --show-current
Check prerequisites:
git rev-parse --git-dir 2>/dev/null || echo "NOT_A_REPO"
command -v gh &>/dev/null || echo "GH_NOT_FOUND"
gh auth status &>/dev/null || echo "GH_NOT_AUTH"
git branch --show-current
git status --short
Abort if:
Determine base branch:
git show-ref --verify refs/heads/$baseVerify not on base branch:
Check for existing PR:
gh pr view &>/dev/null && echo "PR_EXISTS"
Check if branch needs push:
git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo "NO_UPSTREAM"
Use AskUserQuestion: "Push branch to origin?"
git push -u origin <current-branch>commits_ahead=$(git rev-list --count @{u}..HEAD)
git pushgit log origin/$base..HEAD --oneline
git diff --stat origin/$base...HEAD
git diff origin/$base...HEAD | head -n 500
Summary:
Use pr-creator agent.
Context:
- branch: $(git branch --show-current)
- base: $base
- commits: [N commits]
- files: [X files]
- stats: [+Y -Z lines]
[IF USER PROVIDED CUSTOM INSTRUCTIONS:]
USER INSTRUCTIONS (HIGHEST PRIORITY):
"""
[custom instructions verbatim]
"""
Agent returns structured output:
---TITLE---
[title]
---BODY---
[body]
---END---
Parse response into TITLE, BODY. Validate:
If validation fails → Report parse error, retry (max 2 attempts)
## Proposed PR
**Title:** [title]
**Description:**
[body - show first 50 lines, indicate if truncated]
**Target:** [current-branch] → [base]
**Commits:** [N commits]
**Files:** [X files] (+Y -Z lines)
Use AskUserQuestion: "How to proceed with this PR?"
Options:
On approval:
# Create draft PR using HEREDOC for body
gh pr create --base "$base" --title "$title" --body "$(cat <<'EOF'
$body
EOF
)" --draft
# Get PR URL
pr_url=$(gh pr view --json url -q .url)
pr_number=$(gh pr view --json number -q .number)
Check result:
If PR creation succeeds:
✅ Draft PR created: #$pr_number
🔗 $pr_url
Next steps:
- Review description: /git-actions:pr-edit
- Mark ready: gh pr ready
- Add reviewers: gh pr edit --add-reviewer username
- Add labels: gh pr edit --add-label bug,feature
If PR creation fails:
gh pr listOn cancel: ❌ "Cancelled. Branch remains pushed to origin."
YOU (handler): check prerequisites, determine base branch, push branch (with approval), gather context, invoke agent, present description, get approval, execute gh pr create, handle errors
Agent: analyze commits/diff, check for PR template, generate description, return structured title + body
Agent does NOT orchestrate or execute. You do NOT format PR descriptions.
gh pr list/git-actions:pr-write # Target main (or master fallback)
/git-actions:pr-write develop # Target develop branch
/git-actions:pr-write development # Target development branch
/git-actions:pr-write main brief format
# Agent uses minimal sections, omits detailed breakdown
/git-actions:pr-write develop focus on security changes
# Agent emphasizes security implications heavily
/git-actions:pr-write main include performance metrics
# Agent adds detailed performance section
/git-actions:pr-write skip testing section
# Agent omits testing details
# Standard workflow
git checkout -b feature/oauth-login
# Make changes...
/git-actions:commit-all
/git-actions:pr-write
# Review, approve, PR created as draft
# Target specific branch
git checkout -b feature/dashboard
# Make changes...
/git-actions:pr-write develop # Target develop, not main
# After creating PR
gh pr ready # Mark ready for review
gh pr edit --add-reviewer user1 # Add reviewers
gh pr edit --add-label feature # Add labels
# Mark PR ready for review
gh pr ready
# Add reviewers, labels, milestone
gh pr edit --add-reviewer user1,user2
gh pr edit --add-label bug,feature
gh pr edit --milestone "v1.0"
# Convert back to draft
gh pr ready --undo
# Update PR description
/git-actions:pr-edit