Skip to main content
skill CX Codex

commit-push-pr · sneg55 — Claude Code skill: what it does, how to install

Automates Git delivery by creating a feature branch, committing changes, pushing upstream, and opening or updating a GitHub pull request.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sneg55/agent-starter --skill commit-push-pr -a claude-code
Open on GitHub

What commit-push-pr does

The skill handles repetitive Git delivery steps in one pass. It starts by inspecting the repository via git status, diffing changes against the default branch, and checking existing pull requests with gh pr view. If the working tree sits on main or master, the agent branches off into a username/feature-name branch.

Next, it batches modifications into a single commit explaining the intent behind the changes, pushes to the remote, and calls gh to create or update the PR. Every generated pull request includes a brief summary alongside a verification checklist. Safety safeguards block interactive flags, force-pushes, config overrides, and accidental commits of sensitive files like .env or credentials.json.

Without an authenticated gh CLI binary in your environment, the workflow stops before creating the pull request.

What it helps with

  • branch off main without manual Git steps
  • write a concise commit explaining why changes were made
  • push local work to the remote repository
  • generate or update a GitHub PR with a test plan checklist

Example prompts for the agent

  • Commit these changes and open a pull request
  • Run commit-push-pr to ship my branch and prepare a test plan
  • Push my edits and update the existing pull request

How to install commit-push-pr

1Skills CLI (Vercel)

npx skills add sneg55/agent-starter --skill commit-push-pr -a claude-code

2Manually: put the files in place

~/.claude/skills/commit-push-pr/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/commit-push-pr/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about commit-push-pr

How to install commit-push-pr in Claude Code?

Run npx skills add sneg55/agent-starter --skill commit-push-pr -a claude-code. The file will be saved to ~/.claude/skills/commit-push-pr/SKILL.md.

What does commit-push-pr do?

It inspects your working directory diff, creates a branch, commits changes, pushes them upstream, and opens or updates a PR via GitHub CLI.

What tools are required for commit-push-pr?

You need Git and an authenticated GitHub CLI (gh) accessible in your environment.

Source text

SKILL.md · MIT
---
name: commit-push-pr
description: Full git workflow - creates branch, commits, pushes, and creates or updates a PR with summary and test plan.
user_invocable: true
allowed-tools:
  - Bash(git checkout --branch:*)
  - Bash(git checkout -b:*)
  - Bash(git add:*)
  - Bash(git status:*)
  - Bash(git push:*)
  - Bash(git commit:*)
  - Bash(gh pr create:*)
  - Bash(gh pr edit:*)
  - Bash(gh pr view:*)
  - Bash(gh pr merge:*)
---

# Commit, Push, and Open PR

## Context

Gather this context first:
- `git status`
- `git diff HEAD`
- `git branch --show-current`
- `git diff main...HEAD` (or default branch)
- `gh pr view --json number 2>/dev/null || true`

## Git Safety Protocol

- NEVER update the git config
- NEVER run destructive/irreversible git commands (like push --force, hard reset, etc) unless the user explicitly requests them
- NEVER skip hooks (--no-verify, --no-gpg-sign, etc) unless the user explicitly requests it
- NEVER run force push to main/master, warn the user if they request it
- Do not commit files that likely contain secrets (.env, credentials.json, etc)
- Never use git commands with the -i flag (like git rebase -i or git add -i) since they require interactive input which is not supported

## Task

Analyze ALL changes that will be included in the pull request - look at ALL commits from `git diff main...HEAD`, not just the latest commit.

Based on the changes:

### 1. Create branch (if on main/master)
Use the format `username/feature-name`:
```
git checkout -b username/descriptive-feature-name
```

### 2. Create a single commit
Use heredoc syntax for the message:
```
git commit -m "$(cat <<'EOF'
Commit message here.
EOF
)"
```
- Follow the repo's commit message style (check `git log --oneline -10`)
- Focus on "why" not "what"
- Keep it concise (1-2 sentences)

### 3. Push the branch
```
git push -u origin HEAD
```

### 4. Create or update PR
Check if a PR already exists (from the `gh pr view` output above).

**If PR exists** - update it:
```
gh pr edit --title "Short title" --body "$(cat <<'EOF'
## Summary
<1-3 bullet points>

## Test plan
- [ ] Test item 1
- [ ] Test item 2
EOF
)"
```

**If no PR** - create one:
```
gh pr create --title "Short, descriptive title" --body "$(cat <<'EOF'
## Summary
<1-3 bullet points>

## Test plan
- [ ] Test item 1
- [ ] Test item 2
EOF
)"
```

**Rules:**
- Keep PR titles under 70 characters. Use the body for details.
- Summary should be 1-3 bullet points covering WHAT changed and WHY
- Test plan should be a checklist of verification steps

### 5. Return the PR URL

Do all of the above in a single message using multiple tool calls. Return the PR URL when done.

© sneg55 · MIT · sneg55/agent-starter

Similar skills

All skills for Git and GitHub →

commit-push-pr by other authors comes first.

From the same set8

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor