
commit-pr
by eriknovak
Home project
SKILL.md
name: commit-pr description: Create a conventional commit, push to remote, and create a pull request. Use when the user wants to commit, push, and create a PR in one go, or says "commit and create PR" or "make a pull request". user-invocable: true allowed-tools:
- Read
- Bash(git:*)
- Bash(gh:*)
- Grep
- Glob
Git Commit, Push, and Create Pull Request
This skill creates a commit following Conventional Commits, pushes to remote, and creates a pull request using GitHub CLI (gh).
Prerequisites
- GitHub CLI (gh) must be installed and authenticated
- Repository must have a GitHub remote
- User must have push access to the repository
Workflow
-
Check repository state:
- Run git status -sb to see current branch and changes
- Verify we're not on main/master branch (don't create PR from main)
- Check if remote exists and is a GitHub repository
-
Review changes:
- Run git diff or git diff --staged to see what will be committed
- Check git log origin/main..HEAD to see existing commits on the branch
-
Stage files if needed: If no files are staged, ask which files to stage
-
Create commit:
- Analyze changes to determine type (feat, fix, chore, etc.)
- Write conventional commit message
- Show proposed message for approval
- Create commit using git commit
-
Push to remote:
- Check if branch tracks a remote
- Use git push or git push -u origin for new branches
- Verify push succeeded
-
Create pull request:
- Determine base branch (usually main/master)
- Generate PR title from commit message(s)
- Create PR body with:
- Summary of changes
- List of commits if multiple
- Any relevant context
- Use gh pr create --title "..." --body "..."
- Optionally add labels, reviewers, etc.
-
Show result: Display the PR URL and confirm success
Commit Message Format
Follow Conventional Commits specification:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore
Pull Request Format
Title: Use the commit message description (or summarize if multiple commits)
Body:
## Summary
Brief description of what this PR does
## Changes
- List of key changes
- From commit messages
## Type
feat/fix/chore/etc (from conventional commit type)
Closes #issue-number (if applicable)
Examples
Single Commit PR
# Check status
git status -sb
# Stage and commit
git add .
git commit -m "feat(auth): add password reset functionality"
# Push
git push -u origin feature/password-reset
# Create PR
gh pr create \
--title "feat(auth): add password reset functionality" \
--body "## Summary
Add password reset functionality with email verification.
## Changes
- Add password reset endpoint
- Implement email verification flow
- Add password reset UI components
## Type
feat"
Multiple Commits PR
# If branch has multiple commits, summarize them
gh pr create \
--title "feat(dashboard): improve user dashboard" \
--body "## Summary
Multiple improvements to user dashboard.
## Changes
- feat(dashboard): add data visualization widgets
- fix(dashboard): resolve loading state issues
- refactor(dashboard): improve component structure
## Type
feat"
Important Notes
- Branch check: Never create PR from main/master branch
- GitHub CLI: Verify gh is installed with gh --version
- Authentication: Check gh auth status if PR creation fails
- Base branch: Default to main, but check the repository's default branch
- Draft PRs: Can add --draft flag if changes aren't ready for review
- Labels: Can add --label flag if repository uses labels
- Reviewers: Can add --reviewer flag to request reviews
- No attribution: Do NOT include "Generated with Claude Code" or "Co-Authored-By" lines in commit messages
Error Handling
- Not on GitHub: If remote is not GitHub, inform user and skip PR creation
- On main branch: Warn user and suggest creating a feature branch first
- No commits: If branch has no new commits vs main, inform user nothing to PR
- gh not installed: Provide installation instructions
- Not authenticated: Run gh auth login to authenticate
- Push fails: Fix push issues before attempting PR creation
- PR already exists: If PR exists for branch, show existing PR URL
Advanced Options
Can extend the gh pr create command with:
- --draft: Create draft PR
- --label : Add labels
- --reviewer : Request reviews
- --assignee : Assign PR
- --milestone : Add to milestone
- --base : Specify base branch (if not main)
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon
