pr · git:20260408.a08708c · 2026-04-08 · sha256 af8acf0b3fd3ba5c
pr git:20260408.a08708cA
Immutable. This exact content never changes and is served at /api/v1/blob/af8acf0b3fd3ba5c.
---
name: pr
description: Create a pull request with auto-generated summary from commits, following conventional commit conventions. Use when creating PRs.
allowed-tools: Bash
user-invocable: true
arguments:
- name: title
description: Optional PR title. If omitted, auto-generate from commits.
required: false
---
# PR
Create a pull request with a well-structured summary.
## Steps
1. **Gather context**:
- Detect the default branch: `gh repo view --json defaultBranchRef -q .defaultBranchRef.name`
- Get all commits since divergence: `git log <default>..HEAD --oneline`
- Get the full diff: `git diff <default>...HEAD --stat`
- Check if the branch is pushed: `git rev-list @{u}..HEAD --count 2>/dev/null`
2. **Push if needed**: If there are unpushed commits, run `git push -u origin HEAD`.
3. **Generate PR content**:
- **Title** (if not provided): Derive from commits. If single commit, use its message. If multiple, summarize the theme (under 70 chars).
- **Body**: Use this format:
```
## Summary
- <bullet points derived from commits, grouped by type>
## Test plan
- [ ] <derived from what changed, e.g., "CI passes", "manual test of X">
```
4. **Create PR**: Run `gh pr create --title "<title>" --body "<body>"` using a HEREDOC for the body.
5. **Report**: Show the PR URL.
## Rules
- Never create a PR if there are no commits ahead of the default branch.
- If a PR already exists for this branch, show its URL instead of creating a duplicate.
- Keep the title under 70 characters.
- Group commits by type (feat, fix, chore, etc.) in the summary.