SKILL.md
Create GitHub Pull Request
Create a draft pull request using gh CLI, following the project's pullrequesttemplate.md format.
Process
- Run these commands in parallel to understand the current state:
- git status to see all changes (never use -uall flag) - git branch --show-current to get current branch name - git log origin/main..HEAD --oneline to see commits that will be in the PR - git diff origin/main...HEAD --stat to see changed files summary
- Read the PR template from
.github/pullrequesttemplate.md
- Check if the current branch tracks a remote:
- If not, push with -u flag: git push -u origin <branch-name>
- 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/pullrequesttemplate.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