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.
npx claudepluginhub mbensch/mb-ai-tools --plugin pr-toolsThis skill uses the workspace's default tool permissions.
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.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Provides patterns for autonomous Claude Code loops: sequential pipelines, agentic REPLs, PR cycles, de-sloppify cleanups, and RFC-driven multi-agent DAGs. For continuous dev workflows without intervention.
Applies NestJS patterns for modules, controllers, providers, DTO validation, guards, interceptors, config, and production TypeScript backends with project structure and bootstrap examples.
.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'