Files
gh-nathanvale-side-quest-ma…/commands/create-pr.md
2025-11-30 08:42:05 +08:00

3.2 KiB

description, model, allowed-tools
description model allowed-tools
Create pull requests using GitHub CLI with Conventional Commits format claude-sonnet-4-5-20250929 Bash(git push:*), Bash(gh pr:*), mcp__plugin_git_git-intelligence__get_recent_commits, mcp__plugin_git_git-intelligence__get_diff_summary

Create Pull Request

Create well-formatted pull requests using GitHub CLI with Conventional Commits specification.

Prerequisites

Check if gh is installed and authenticated:

gh auth status

If not installed:

brew install gh
gh auth login

Workflow

1. Gather Context

Use MCP tools for efficient data gathering:

  • Status - Use get_status MCP tool
  • Recent commits - Use get_recent_commits MCP tool
  • Diff summary - Use get_diff_summary MCP tool

For branch info and comparison, use Bash:

# Check current branch
git branch --show-current

# Check if we need to push
git log --oneline @{u}..HEAD 2>/dev/null || echo "No upstream"

# All commits on this branch vs main
git log --oneline main..HEAD

2. Analyze Changes

Review all commits that will be in the PR (not just the latest):

git diff main...HEAD --stat

3. Determine PR Title

Use Conventional Commits format matching the primary change type:

Type Example
feat feat(auth): add OAuth2 login support
fix fix(api): handle null response
docs docs(readme): update installation guide
style style(ui): improve button styling
refactor refactor(core): simplify data flow
perf perf(queries): optimize database calls
test test(auth): add login integration tests
build build(deps): upgrade to Node 20
ci ci(actions): add deployment workflow
chore chore(deps): update dependencies

4. Create the PR

# Push branch if needed
git push -u origin HEAD

# Create PR with HEREDOC for body
gh pr create --title "<type>(<scope>): <subject>" --body "$(cat <<'EOF'
## Summary

<1-3 bullet points describing what this PR does>

## Changes

<Brief description of the changes made>

## Test Plan

- [ ] <Testing checklist item>
- [ ] <Another testing item>

---

Generated with [Claude Code](https://claude.ai/code)
EOF
)"

5. Draft vs Ready

  • Use --draft flag if work is in progress
  • Convert to ready: gh pr ready

PR Body Template

## Summary

- <Primary change/feature>
- <Secondary change if applicable>

## Changes

<Describe what changed and why>

## Test Plan

- [ ] Unit tests pass
- [ ] Manual testing completed
- [ ] No regressions

---

Generated with [Claude Code](https://claude.ai/code)

Useful Commands

# List your open PRs
gh pr list --author "@me"

# Check PR status
gh pr status

# View specific PR
gh pr view <PR-NUMBER>

# Add reviewers
gh pr edit <PR-NUMBER> --add-reviewer username

# Merge PR (squash)
gh pr merge <PR-NUMBER> --squash

Important Notes

  • NEVER force push to main/master
  • Always analyze ALL commits in the branch, not just the latest
  • If there's a PR template at .github/pull_request_template.md, use it
  • Return the PR URL when done so user can access it

Now analyze the current branch and create an appropriate PR.