Create GitHub Pull Request
Create a draft pull request using gh CLI, following the project's pull_request_template.md format.
Process
Run these commands in parallel to understand the current state:
git statusto see all changes (never use-uallflag)git branch --show-currentto get current branch namegit log origin/main..HEAD --onelineto see commits that will be in the PRgit diff origin/main...HEAD --statto see changed files summary
Read the PR template from
.github/pull_request_template.mdCheck if the current branch tracks a remote:
- If not, push with
-uflag:git push -u origin <branch-name>
- If not, push with
Analyze all commits and changes, then fill in the template sections:
- Summary (Why/What/Solution): Based on commit messages and diffs
- Impact Area: List affected features/components
- Types of Changes: Mark
[x]for applicable types based on commits - Test Plan: Suggest testing steps
- Checklist: Pre-check applicable items
- Related Issues: Leave empty or fill if mentioned in commits
Create the draft PR using HEREDOC format:
gh pr create --draft --title "type(scope): description" --body "$(cat <<'EOF'
<filled template content here>
EOF
)"
PR Title Convention
Use Conventional Commits format:
| Type | Description |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Documentation only changes |
style |
Changes that do not affect the meaning of the code |
refactor |
A code change that neither fixes a bug nor adds a feature |
perf |
A code change that improves performance |
build |
Changes that affect the build system or external deps |
ci |
Changes to CI configuration files and scripts |
chore |
Other changes that don't modify src or test files |
Mapping Commit Types to PR Types
When filling "Types of Changes" section:
feat→ 🚀 New featurefix→ 🕷 Bug fixperf→ 👏 Performance optimizationrefactor→ 🛠 Refactordocs→ 📝 Documentationtest→ ✅ Testbuild,chorewith deps → 📗 Library update
Arguments
If $ARGUMENTS is provided:
- If it looks like a PR title, use it directly
- If it looks like a branch name (e.g.,
main,develop), use it as base branch with--base
Options
Common gh pr create options:
--base <branch>: Target branch (default: main)--assignee @me: Assign to yourself--label <name>: Add labels--reviewer <handle>: Request reviewers
Important
- ALWAYS read
.github/pull_request_template.mdfirst to get the current template format - ALWAYS create PR as draft using
--draftflag - ALWAYS check that you're on the correct branch before creating PR
- NEVER create PR from
mainormasterbranch - ALWAYS ensure changes are pushed to remote before creating PR
- Remove HTML comments (
<!-- -->) from the filled template - Return the PR URL when done so the user can review and publish when ready
Converted and distributed by TomeVault — claim your Tome and manage your conversions.