| name | pr |
| description | Create a feature branch, commit changes, push, and open a PR against iopsystems/llm-perf |
Create a PR from the current uncommitted changes. Handles branching, committing, pushing, and opening the PR against the upstream repo.
Arguments
The skill accepts an optional branch name argument:
- If provided, use it as the branch name (e.g.,
/pr fix-socket-perms)
- If not provided, generate a descriptive kebab-case branch name from the changes
Steps
-
Verify prerequisites:
- Working directory must have uncommitted changes (staged or unstaged)
- Must not already be on a feature branch with unpushed commits for a different change
git status
git diff
git diff --staged
If there are no changes, stop and tell the user.
-
Analyze the changes:
- Read the diff to understand what changed
- Check recent commit messages for style conventions:
git log --oneline -10
-
Create feature branch:
-
Stage and commit:
- Stage the relevant changed files by name (avoid
git add -A)
- Write a commit message following the repo's conventional commit style (
type(scope): description)
- Common types:
feat, fix, refactor, chore, docs, test
- Include
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> trailer
- Use a HEREDOC for the commit message
-
Push to origin:
git push -u origin <branch-name>
-
Open PR against upstream:
- The upstream repo is
iopsystems/llm-perf
- The fork remote is
origin (determine the owner from git remote -v)
- Use
gh pr create with --repo iopsystems/llm-perf and --head <fork-owner>:<branch-name>
gh pr create \
--repo iopsystems/llm-perf \
--head <fork-owner>:<branch-name> \
--title "<conventional commit style title>" \
--body "$(cat <<'EOF'
## Summary
<1-3 bullet points describing the changes>
## Test plan
<bulleted checklist of testing done or needed>
Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
-
Report the PR URL to the user.
Notes
- Keep PR titles under 70 characters
- PR title should follow the same conventional commit format as the commit message
- If
cargo clippy, cargo test, or cargo fmt --check haven't been run yet during this session, run them before committing
- Never force push or amend existing commits
- The fork owner can be determined from the origin remote URL (e.g.,
git@github.com:brayniac/llm-perf -> brayniac)