name: pr description: Push branch and create a GitHub PR following the bashdep PR template user-invocable: true argument-hint: "[#issue]" disable-model-invocation: true allowed-tools: Bash, Read, Grep, Glob
Create Pull Request
Push the current branch and open a PR using the project's PR template.
IMPORTANT: This skill MUST be used for ALL pull request creation — even when the user just says "create pr" without
/pr. Never create a PR without following these steps.
Current Branch Context
- Branch: !
git branch --show-current - Commits: !
git log main..HEAD --oneline 2>/dev/null - Changed files: !
git diff main..HEAD --stat 2>/dev/null
Arguments
$ARGUMENTS— Issue reference (optional, e.g.,#42or42). If provided, the PR Background section links to it.
Instructions
-
Review the branch context above — commits and changed files are already loaded.
-
MANDATORY: Update
CHANGELOG.md— Read it and check the## Unreleasedsection. If the changes from this branch aren't already listed there, you MUST update it before pushing. Do NOT skip. Do NOT proceed without verifying.- Add entries under the appropriate subsection
(
### Added,### Changed,### Fixed,### Removed) - Reference the issue number where applicable (e.g.,
(#123)) - Commit the update:
git add CHANGELOG.md && git commit -m "docs: update changelog"
- Add entries under the appropriate subsection
(
-
Verify quality gate locally before pushing:
make pre_commit/runThe pre-commit hook (if installed) runs the same checks. If it fails, read the output, fix the underlying issue, commit the fix, then retry. Do NOT use
--no-verifyto bypass. -
Push branch:
git push -u origin HEAD -
Generate PR title:
- If
$ARGUMENTScontains an issue number, fetch the issue title:gh issue view <number> --json title -q '.title' - Format:
<type>(<scope>): <short description>(conventional commit style, under 70 chars) - Derive the type from the branch prefix
(
feat/→ feat,fix/→ fix,docs/→ docs)
- If
-
Create PR using the structure from
.github/PULL_REQUEST_TEMPLATE.md:gh pr create --title "<title>" --assignee @me --body "$(cat <<'EOF' ### 🔗 Ticket <Related #<issue-number>, or "n/a"> ## 🤔 Background <1-2 sentences: motivation and context for the changes> ## 💡 Goal <One sentence: the outcome this PR delivers> ## 🔖 Changes - <bullet 1: what changed and why> - <bullet 2> - <bullet 3> (optional) ## 🖼️ Screenshots n/a EOF )"MANDATORY: Always follow the template structure (
🔗 Ticket→🤔 Background→💡 Goal→🔖 Changes→🖼️ Screenshots). Never use a different format.Assignee: Always assign to
@me.Issue linking: Use
Related #<n>in the Ticket section.Closes #<n>/Fixes #<n>are fine in commit bodies if the user wants auto-close, but keep the PR template's prose form.Body guidelines:
- Background: 1-2 sentences of context (the why)
- Goal: a single sentence framing the outcome
- Changes: 2-4 short bullets focused on what + why
- No file lists, no code snippets, no class names in the body
- Drop the
🖼️ Screenshotssection content for non-UI changes (replace withn/a)
-
Report the PR URL to the user.
Example Usage
/pr
/pr #42
/pr 15
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.