git-pr-createlisted
Install: claude install-skill pivoshenko/pivoshenko.ai
# Create PR
Open GitHub PR for current branch. No confirm.
## Flow
1. Parallel:
- `git status`
- `git branch --show-current`
- `git log <base>..HEAD --oneline` (`<base>` = user-named, else `main`, fallback `master`)
- `git diff <base>...HEAD`
- check repo PR template: `.github/PULL_REQUEST_TEMPLATE.md`, `.github/pull_request_template.md`, `docs/PULL_REQUEST_TEMPLATE.md`, root `PULL_REQUEST_TEMPLATE.md` (first match wins)
2. 0 commits ahead -> stop. Tell user: nothing to PR; commit first via `git-commit`.
3. Not pushed / behind -> `git push -u origin <branch>`.
4. Read **all** branch commits (not just latest). Draft title + body.
- Template found -> fill that template's structure (preserve headings, checklist items, comment placeholders).
- No template -> use [fallback body](#fallback-body-template) below.
5. Derive labels (always pass `--label`):
- Map title `<type>` -> label: `feat`->`enhancement`, `fix`->`bug`, `docs`->`documentation`, `test`->`tests`, `perf`->`performance`, `refactor`->`refactor`, `build`->`build`, `ci`->`ci`, `chore`->`chore`.
- Breaking change in commits/body -> add `breaking-change`.
- Verify labels exist: `gh label list --json name -q '.[].name'`. Drop any missing; never auto-create.
- At least 1 label required -> if all dropped, fall back to `chore`. If `chore` also missing, surface to user and stop.
6. Heredoc body so markdown survives shell:
```bash
gh pr create --title "feat(auth): add oauth login flow" --l