From pr-tools
Create a pull request with consistent formatting, branch naming, and Jira integration. Use when the user asks to create a PR, push and open a PR, or submit their changes for review. Handles branch naming, PR title, description, and respects repo-specific templates.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pr-tools:create-prThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. **Repo PR template** -- if `.github/pull_request_template.md` (or variants) exists, use it as the description structure. Fill in every section meaningfully or remove sections that don't apply. Never leave template placeholder text.
.github/pull_request_template.md (or variants) exists, use it as the description structure. Fill in every section meaningfully or remove sections that don't apply. Never leave template placeholder text.Use AskUser to ask:
"Do you have a Jira ticket for this PR? If so, provide the ticket key (e.g. PROJ-1234). Leave blank if none."
Do NOT skip this question. The answer drives branch naming and PR title.
Before creating the PR, check for templates and conventions:
# Check for PR templates
ls .github/pull_request_template.md .github/PULL_REQUEST_TEMPLATE.md .github/PULL_REQUEST_TEMPLATE/ 2>/dev/null
# Check for AGENTS.md
ls AGENTS.md 2>/dev/null
If a template exists, read it and use it as the description structure.
If a Jira ticket was provided:
PROJ-1234/short-description-of-change
If no Jira ticket:
type/short-description-of-change
Where type is one of: feat, fix, refactor, chore, ci, docs, test.
Rules:
If a Jira ticket was provided:
type: short description [PROJ-1234]
If no Jira ticket:
type: short description
Conventional commit prefixes: feat, fix, refactor, chore, ci, docs, test. Use optional scope in parentheses when it adds clarity (e.g. feat(inventory): add incomplete listings query [CARS-31271]).
Rules:
Use this format when the repo has no PR template:
## Summary
[One paragraph. What this PR does and why. Reference the Jira ticket naturally if one exists.]
## Changes
[Grouped by logical category. Use sub-headers for large PRs. Be specific about what was added, changed, or removed. Mention new files/modules by path when it helps the reviewer navigate.]
## Testing
[How the changes were verified. Include test results, commands run, and manual verification steps. Example:]
- All tests pass (`mix test` / `npm test` / `pytest` etc.)
- Linter/formatter clean
- Manual verification: [describe what was checked]
Optional sections -- include only when relevant:
## Jira -- link to the ticket (e.g. https://yourorg.atlassian.net/browse/PROJ-1234)## Migration / Deployment Notes -- if there are env var changes, feature flags, or ordering concerns## Screenshots -- for UI changesWhen a repo template exists, follow these rules:
https://yourorg.atlassian.net/browse/PROJ-1234safe-pr-workflow skill to verify the branch is safe to pushgh pr createWhen the repo has a PR template, use --fill or --body to provide the filled-in template. Do not use --fill alone as it only uses the commit messages.
gh pr create --base main --title "feat: description [PROJ-1234]" --body "filled description"
If the default branch is not main, detect it:
gh repo view --json defaultBranchRef -q '.defaultBranchRef.name'
npx claudepluginhub mbensch/mb-ai-tools --plugin pr-toolsCreates pull requests with clear descriptions and test plans. Analyzes branch changes, detects ticket references, and runs code review before PR creation.
Creates GitHub pull requests with formatted descriptions, labels, issue references, draft mode, reviewers, and base branch selection from pushed branches. Use for 'create PR' or 'submit for review'.
Creates GitHub pull requests from branch changes using git analysis and gh CLI, with conventional commit titles and standardized templated descriptions including summary, changes, testing, and checklists.