Github pr
Create standardised GitHub pull requests using the gh CLI. Use when the user wants to create a PR, open a pull request, submit changes for review, or says things like "PR this", "open a PR", or "submit for review". Enforces conventional commit titles, structured body templates, labels, and reviewers.From its SKILL.md
npx -y skills add forjd/agent-skills --skill github-prAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 8 commands, including `git branch --show-current` and 7 more.
SKILL.md
4.6 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
GitHub PR Creation
Create well-structured pull requests using gh pr create with consistent formatting and conventions.
Prerequisites
ghCLI is installed and authenticated- Current directory is a git repository
- Changes are committed and on a feature branch (not
mainormaster)
Workflow
1. Check prerequisites
# Determine branches
current_branch=$(git branch --show-current)
base_branch=${BASE_BRANCH:-$(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name')}
printf 'current=%s base=%s\n' "$current_branch" "$base_branch"
If the current branch matches the default/base branch, stop before pushing and ask the user to create a feature branch first.
Once on a feature branch, ensure it is pushed to remote:
git push -u origin HEAD
2. Determine PR type
Infer the type from the branch name prefix:
| Prefix | Type | Label |
|---|---|---|
feat/, feature/ | Feature | enhancement |
fix/, bugfix/ | Bugfix | bug |
hotfix/ | Hotfix | bug, priority: critical |
chore/, refactor/, docs/, test/ | Chore | chore |
If the branch name doesn't match a known prefix, ask the user what type of PR this is.
3. Generate PR title
Convert the branch name to a conventional commit-style title:
feat/add-user-auth→feat: add user authfix/login-crash→fix: login crashhotfix/null-pointer→fix: null pointer
Replace hyphens with spaces. Drop the prefix category from the branch name. Capitalise only where appropriate.
If the branch has a single commit, prefer the commit message as the title instead.
4. Fill the PR body
Read the matching template from assets/ and fill it in based on the changes:
- Feature → assets/feature.md
- Bugfix → assets/bugfix.md
- Hotfix → assets/hotfix.md
- Chore → use the feature template
To understand what changed, run:
# See commits on this branch
base_branch=${BASE_BRANCH:-$(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name')}
git log --oneline "$base_branch"..HEAD
# See the full diff
git diff "$base_branch"...HEAD --stat
git diff "$base_branch"...HEAD
Fill in the template sections with concrete details from the diff. Remove HTML comments. Do not leave placeholder text.
5. Set reviewers
If a CODEOWNERS file exists, read it to identify who should review:
cat .github/CODEOWNERS 2>/dev/null || cat CODEOWNERS 2>/dev/null || cat docs/CODEOWNERS 2>/dev/null
Parse CODEOWNERS conservatively. GitHub accepts usernames and team slugs as reviewers, but not email addresses or comments. If ownership is broad, ambiguous, or path-specific in a way that does not clearly match the diff, ask the user who should review.
Before creating the PR, verify requested labels exist:
gh label list --limit 200 --json name --jq '.[].name'
Only pass labels that exist. If the intended label is missing, ask whether to omit it or create it. Use the --reviewer flag only with validated usernames or team slugs; ask the user when reviewers are ambiguous.
6. Create the PR
gh pr create \
--title "feat: add user auth" \
--body "$(cat <<'EOF'
## Summary
Added user authentication using OAuth2...
## Changes
- Added auth middleware
- Created login/logout endpoints
## Test Plan
- Ran full test suite
- Manual testing against staging
## Checklist
- [x] Changes are scoped to the feature described above
- [x] Tests added or updated
- [x] No unrelated changes included
EOF
)" \
--label "enhancement" \
--reviewer "username"
Always use a heredoc for the body to preserve formatting.
7. Report back
After creating the PR, show the user:
- The PR URL
- Title and labels applied
- Who was assigned to review
Conventions
- One PR per feature/fix — don't bundle unrelated changes
- Keep diffs small — if the diff is large (>500 lines), suggest splitting
- Draft PRs — use
--draftif the work is still in progress - Base branch — default to the repository default branch from
gh repo view; use--baseif targeting a different branch
What ships with it: 3 files
1.4 KB alongside SKILL.md
assets/
- bugfix.md492 B
- feature.md416 B
- hotfix.md557 B