Context-engineering-kit git:create-pr
Create pull requests using GitHub CLI with proper templates and formatting
git clone https://github.com/NeoLabHQ/context-engineering-kit
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeoLabHQ/context-engineering-kit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/git/skills/create-pr" ~/.claude/skills/neolabhq-context-engineering-kit-git-create-pr && rm -rf "$T"
plugins/git/skills/create-pr/SKILL.mdHow to Create a Pull Request Using GitHub CLI
This guide explains how to create pull requests using GitHub CLI in our project.
Important: All PR titles and descriptions should be written in English.
Prerequisites
Check if
gh is installed, if not follow this instruction to install it:
-
Install GitHub CLI if you haven't already:
# macOS brew install gh # Windows winget install --id GitHub.cli # Linux # Follow instructions at https://github.com/cli/cli/blob/trunk/docs/install_linux.md -
Authenticate with GitHub:
gh auth login
Pre-flight Checks
Before creating a PR, check for uncommitted changes:
- Run
to check for uncommitted changes (staged, unstaged, or untracked files)git status - If uncommitted changes exist, use the Skill tool to run the
command first:git:commitSkill: git:commit - This ensures all your work is committed before creating the PR
Creating a New Pull Request
-
First, prepare your PR description following the template in @.github/pull_request_template.md
-
Use the
command to create a new pull request:gh pr create --draft# Basic command structure gh pr create --draft --title "✨(scope): Your descriptive title" --body "Your PR description" --base mainFor more complex PR descriptions with proper formatting, use the
option with the exact PR template structure:--body-file# Create PR with proper template structure gh pr create --draft --title "✨(scope): Your descriptive title" --body-file .github/pull_request_template.md --base main
Best Practices
-
Language: Always use English for PR titles and descriptions
-
PR Title Format: Use conventional commit format with emojis
- Always include an appropriate emoji at the beginning of the title
- Use the actual emoji character (not the code representation like
):sparkles: - Examples:
✨(supabase): Add staging remote configuration🐛(auth): Fix login redirect issue📝(readme): Update installation instructions
-
Description Template: Always use our PR template structure from @.github/pull_request_template.md:
-
Template Accuracy: Ensure your PR description precisely follows the template structure:
- Don't modify or rename the PR-Agent sections (
andpr_agent:summary
)pr_agent:walkthrough - Keep all section headers exactly as they appear in the template
- Don't add custom sections that aren't in the template
- Don't modify or rename the PR-Agent sections (
-
Draft PRs: Start as draft when the work is in progress
- Use
flag in the command--draft - Convert to ready for review when complete using
gh pr ready
- Use
Common Mistakes to Avoid
- Using Non-English Text: All PR content must be in English
- Incorrect Section Headers: Always use the exact section headers from the template
- Adding Custom Sections: Stick to the sections defined in the template
- Using Outdated Templates: Always refer to the current @.github/pull_request_template.md file
Missing Sections
Always include all template sections, even if some are marked as "N/A" or "None"
Additional GitHub CLI PR Commands
Here are some additional useful GitHub CLI commands for managing PRs:
# List your open pull requests gh pr list --author "@me" # Check PR status gh pr status # View a specific PR gh pr view <PR-NUMBER> # Check out a PR branch locally gh pr checkout <PR-NUMBER> # Convert a draft PR to ready for review gh pr ready <PR-NUMBER> # Add reviewers to a PR gh pr edit <PR-NUMBER> --add-reviewer username1,username2 # Merge a PR gh pr merge <PR-NUMBER> --squash
Using Templates for PR Creation
To simplify PR creation with consistent descriptions, you can create a template file:
- Create a file named
with your PR templatepr-template.md - Use it when creating PRs:
gh pr create --draft --title "feat(scope): Your title" --body-file pr-template.md --base main