home / skills / avvale / aurora-front / commit-pr

commit-pr skill

/.claude/skills/commit-pr

This skill automates committing changes and creating a GitHub pull request, saving time by handling messaging and PR content.

npx playbooks add skill avvale/aurora-front --skill commit-pr

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
5.1 KB
---
name: commit-pr
description: >
  Commit, push changes, and create a Pull Request on GitHub.
  Trigger: User runs /commit-pr command.
disable-model-invocation: true
---

## When to Use

- User explicitly runs `/commit-pr` command
- User asks to "commit and create a PR"
- User wants to submit changes for review

---

## Prerequisites

- `gh` CLI must be installed and authenticated
- Repository must be hosted on GitHub

```bash
# Verify gh is available and authenticated
gh auth status
```

---

## Execution Flow

### Step 1: Execute Commit Flow

First, execute the full `/commit` workflow:

1. Analyze changes (`git status`, `git diff`)
2. Generate commit message (Conventional Commits)
3. Stage and commit
4. Push to remote

See `.claude/skills/commit/SKILL.md` for details.

### Step 2: Gather PR Context

```bash
# 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:

```markdown
## 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

```bash
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:**
- `--base <branch>` - Target branch (default: main)
- `--draft` - Create as draft PR
- `--label <label>` - Add labels
- `--assignee @me` - Assign to self
- `--reviewer <user>` - Request review

### Step 5: Verify and Report

```bash
# 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 |
|-------------|------------------|
| `feat` | Add ISBN validation to book creation |
| `fix` | Fix token refresh race condition |
| `refactor` | Extract validation logic to service |
| `docs` | Update API documentation |
| `test` | 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

```markdown
## 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
```bash
# 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

```bash
# 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
```

Overview

This skill commits local changes, pushes the branch to GitHub, and creates a Pull Request using the GitHub CLI when the /commit-pr command is run. It automates commit message generation (Conventional Commits), gathers PR context, and formats a clear PR title and body. The skill reports the commit, branch, PR number, URL, and readiness status after completion.

How this skill works

It runs a commit workflow that inspects git status and diffs, generates a Conventional Commit message, stages and commits changes, and pushes the branch. Then it determines base and head branches, summarizes commits and diffs, generates a PR title and structured body (Summary and Test plan), and invokes gh pr create with optional flags. It checks for existing PRs and handles common edge cases like an unpushed branch or missing gh authentication.

When to use it

  • You run the /commit-pr command to submit changes for review
  • You want a Conventional Commit and a well-structured PR created automatically
  • You need a ready-to-review PR with a testing checklist included
  • You prefer using the GitHub CLI (gh) to create PRs from the terminal
  • You want the workflow to detect existing PRs and avoid duplicates

Best practices

  • Ensure gh CLI is installed and authenticated (gh auth status) before running
  • Keep commits focused to produce a concise PR title from a single commit when possible
  • Include 1–3 bullet points in the Summary focusing on WHAT and WHY
  • Provide a clear Test plan with manual steps and edge-case checks
  • Use --base, --draft, --label, --assignee, and --reviewer flags when needed

Example use cases

  • Finish a small feature branch and create a PR with a Conventional Commit title
  • Fix a bug, run /commit-pr to push and open a PR with a testing checklist
  • Submit refactor changes and include scope in the PR title for reviewers
  • Create a draft PR for work-in-progress using the --draft flag
  • Detect and open the existing PR for the current branch instead of creating a duplicate

FAQ

What prerequisites are required?

gh must be installed and authenticated and the repository must be hosted on GitHub.

What happens if a PR already exists for this branch?

The skill checks gh pr list --head <branch> and will show the existing PR link instead of creating a new one.