| name | pr |
| description | Create a pull request with a well-crafted description. Use when the user finished work on a branch and wants to open a PR, or asks to create a pull request. |
| argument-hint | [--draft] [--base <branch>] |
Help me create a pull request with a well-crafted description.
Arguments
$ARGUMENTS
--draft or -d: Create as draft PR
--base <branch>: Specify base branch (default: main)
- Examples:
/pr --draft, /pr --base develop
Jira Configuration
Read Jira config from the project's CLAUDE.md if present (look for a
## Jira section with Base URL and Ticket Pattern). If absent, prefer
the mcp__claude_ai_Atlassian__* tools (which return canonical URLs from
the API), or ask the user. Do not assume any specific organisation's URL.
- Common ticket patterns:
[A-Z]+-\d+ (e.g. ABC-123, PROJ-456), #123, GH-123
Steps
Step 1: Understand current state
git branch --show-current
git log origin/main..HEAD --oneline
git diff origin/main..HEAD --stat
Step 2: Analyze all commits being included
- Read each commit message
- Look at the actual changes with
git diff origin/main..HEAD
- Identify the main themes and purpose
Step 3: Check for related context
- Look for ticket/issue numbers in branch name or commits
- Check if there are related specs in
specs/ directory
- Note any breaking changes or migrations
Step 4: Extract Jira context from branch name
Extract ticket ID from branch name patterns:
feature/BIL-123-description → BIL-123
fix/BIL-456-bug-fix → BIL-456
BIL-789/some-feature → BIL-789
If Jira MCP is available (mcp__plugin_atlassian_atlassian__getJiraIssue):
- Fetch ticket summary, description, acceptance criteria
- Extract linked issues and epic context
- Auto-populate "Related Issues" section in PR with ticket details
If Jira MCP is NOT available but ticket ID found:
- Add a Jira link to the PR body using the project CLAUDE.md base URL:
Related: [TICKET-ID](<base_url>/TICKET-ID)
- If no base URL is configured, include the ticket ID as plain text and note:
"Jira base URL not configured in project CLAUDE.md - add manually if needed"
Step 5: Check for PR template
Search for PR templates in order:
.github/PULL_REQUEST_TEMPLATE.md
.github/PULL_REQUEST_TEMPLATE/default.md
.github/pull_request_template.md
docs/pull_request_template.md
If template found:
- Use template as base structure for PR body
- Merge Jira context and commit analysis into template sections
- Fill in template placeholders where possible
If no template found:
- Use default structure (see Step 6)
Step 6: Generate PR description
Default structure (if no template):
## Summary
<1-3 bullet points explaining what this PR does and why>
## Changes
<Grouped list of significant changes>
## Testing
<How this was tested or how reviewers should test>
## Notes for Reviewers
<Any context that helps review: focus areas, known issues, follow-ups>
## Related Issues
- [TICKET-ID](<base_url>/TICKET-ID) - {summary from Jira if available}
Step 7: Ask for confirmation before creating
- Show the proposed title and description
- Confirm the base branch (usually main)
- If Jira ticket found, confirm linking is correct
- Ask if ready to create
Step 8: Create the PR (only when confirmed)
gh pr create --title "<title>" --body "<body>"
Output
Present the PR title and description for review, then create when approved.
Return the PR URL when complete.