Open Pull Request
I have gathered information about your branch. Here are the results:
<git_status>
!git status
</git_status>
<current_branch>
!git rev-parse --abbrev-ref HEAD
</current_branch>
<main_branch>
!git rev-parse --abbrev-ref origin/HEAD 2>/dev/null | sed 's|origin/||' || echo "main"
</main_branch>
<commits_on_branch>
!git log --oneline origin/main..HEAD 2>/dev/null || git log --oneline main..HEAD 2>/dev/null || echo "Could not determine commits"
</commits_on_branch>
<full_diff>
!git diff origin/main...HEAD 2>/dev/null || git diff main...HEAD 2>/dev/null || echo "Could not determine diff"
</full_diff>
<recent_commit_messages>
!git log --format="%s%n%b" origin/main..HEAD 2>/dev/null || git log --format="%s%n%b" main..HEAD 2>/dev/null || echo "Could not determine commits"
</recent_commit_messages>
<existing_pr>
!gh pr view --json number,title,state 2>/dev/null || echo "No existing PR"
</existing_pr>
Instructions
Step 1: Check for uncommitted changes
If there are uncommitted changes, ask the user if they want to commit them first or proceed without them.
Step 2: Push the branch (if needed)
Ensure the branch is pushed to the remote:
git push -u origin <current-branch>
Step 3: Analyze changes and generate PR description
- •
Review all commits on this branch (not just the latest one)
- •
Analyze the full diff to understand what changed
- •
Generate a descriptive PR title following conventional commit format:
- •
feat(scope): descriptionfor new features - •
fix(scope): descriptionfor bug fixes - •
refactor(scope): descriptionfor refactoring - •
docs(scope): descriptionfor documentation - •
test(scope): descriptionfor tests - •
chore(scope): descriptionfor maintenance
- •
- •
Generate a comprehensive PR body with:
- •Summary: 2-4 bullet points describing the key changes
- •Test plan: How to verify the changes work
Step 4: Create the PR
Use gh pr create with a HEREDOC for proper formatting:
gh pr create --title "type(scope): description" --body "$(cat <<'EOF' ## Summary - Key change 1 - Key change 2 - Key change 3 ## Test plan - [ ] Step to verify change 1 - [ ] Step to verify change 2 EOF )"
Step 5: Show the result
Display the PR URL so the user can review it in the browser.
Notes
- •If a PR already exists for this branch, inform the user and show the existing PR URL
- •Base branch defaults to
mainunless the user specifies otherwise - •Include all relevant changes from ALL commits, not just the most recent one