Claude-skill-registry commit-pr
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/commit-pr" ~/.claude/skills/majiayu000-claude-skill-registry-commit-pr && rm -rf "$T"
manifest:
skills/data/commit-pr/SKILL.mdsource content
When to Use
- User explicitly runs
command/commit-pr - User asks to "commit and create a PR"
- User wants to submit changes for review
Prerequisites
CLI must be installed and authenticatedgh- Repository must be hosted on GitHub
# Verify gh is available and authenticated gh auth status
Execution Flow
Step 1: Execute Commit Flow
First, execute the full
/commit workflow:
- Analyze changes (
,git status
)git diff - Generate commit message (Conventional Commits)
- Stage and commit
- Push to remote
See
.claude/skills/commit/SKILL.md for details.
Step 2: Gather PR Context
# Get current branch git branch --show-current # Get base branch (usually main) git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@' # Get all commits in this branch (not in base) git log origin/main..HEAD --oneline # Get full diff against base git diff origin/main...HEAD --stat
Step 3: Generate PR Content
Title: Based on the commit message or branch purpose
- If single commit: Use commit message as title
- If multiple commits: Summarize the feature/fix
Body: Structured summary using this template:
## Summary <1-3 bullet points describing the changes> ## Test plan - [ ] <Testing checklist items> --- Generated with [Claude Code](https://claude.ai/code)
Step 4: Create Pull Request
gh pr create --title "<title>" --body "$(cat <<'EOF' ## Summary - <change 1> - <change 2> ## Test plan - [ ] <test item 1> - [ ] <test item 2> --- Generated with [Claude Code](https://claude.ai/code) EOF )"
Optional flags:
- Target branch (default: main)--base <branch>
- Create as draft PR--draft
- Add labels--label <label>
- Assign to self--assignee @me
- Request review--reviewer <user>
Step 5: Verify and Report
# Get PR URL gh pr view --web
Output Format
After successful execution, display:
Commit: <hash> <type>(<scope>): <subject> Branch: <branch-name> -> main PR: #<number> <title> URL: https://github.com/<org>/<repo>/pull/<number> Status: Ready for review
PR Title Guidelines
| Commit Type | PR Title Example |
|---|---|
| Add ISBN validation to book creation |
| Fix token refresh race condition |
| Extract validation logic to service |
| Update API documentation |
| Add unit tests for book handler |
Rules:
- Capitalize first letter
- No period at end
- Be descriptive but concise
- Include scope if helpful
PR Body Guidelines
Summary Section
- 1-3 bullet points
- Focus on WHAT and WHY
- Link to issues if applicable:
Closes #123
Test Plan Section
- List manual testing steps
- Note any automated tests added
- Include edge cases to verify
Example Body
## Summary - Add ISBN-10 and ISBN-13 validation in CreateBookHandler - Implement checksum verification for both formats - Add descriptive error messages for invalid ISBNs Closes #234 ## Test plan - [ ] Create book with valid ISBN-10 - [ ] Create book with valid ISBN-13 - [ ] Verify error for invalid checksum - [ ] Verify error for malformed ISBN --- Generated with [Claude Code](https://claude.ai/code)
Edge Cases
PR Already Exists
# Check if PR exists for current branch gh pr list --head $(git branch --show-current)
If PR exists, show link instead of creating new one.
Branch Not Pushed
The commit flow handles this automatically with
git push -u origin <branch>.
No GitHub Remote
Error: Repository doesn't have a GitHub remote. This command requires a GitHub-hosted repository.
gh Not Authenticated
Error: GitHub CLI not authenticated. Run: gh auth login
Commands Reference
# GitHub CLI gh auth status # Check authentication gh pr create --title "..." --body "..." # Create PR gh pr list --head <branch> # Check existing PRs gh pr view --web # Open PR in browser gh pr view --json url # Get PR URL # Git context git branch --show-current # Current branch git log origin/main..HEAD --oneline # Commits in branch git diff origin/main...HEAD --stat # Changes summary
Related Skills
- commit: Base commit and push workflow
- conventional-commits: Commit message format
Workflow Example
User: /commit-pr Claude: 1. [Runs git status, git diff] 2. [Analyzes changes] 3. [Generates commit message] Committing: feat(library/book): add ISBN validation 4. [git add . && git commit] 5. [git push -u origin feature/isbn-validation] Pushed to origin/feature/isbn-validation 6. [Generates PR content] 7. [gh pr create] Commit: a1b2c3d feat(library/book): add ISBN validation Branch: feature/isbn-validation -> main PR: #42 Add ISBN validation to book creation URL: https://github.com/org/repo/pull/42 Status: Ready for review