Skip to content
Back to skills

Commit Push Pr

ASecurity

Full git workflow — creates branch, commits, pushes, and creates or updates a PR with summary and test plan.

  • 76 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
devopsbashgit

Security analysis

A100/100

Scanned May 27, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Commit Push Pr?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Commit Push Pr
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sneg55-commit-push-pr/badge)](https://www.skillsdirectory.com/skills/sneg55-commit-push-pr)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.