Claude-skill-registry commit-push-pr
Validate code, commit, push, and create PR if needed
git clone https://github.com/majiayu000/claude-skill-registry
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-push-pr" ~/.claude/skills/majiayu000-claude-skill-registry-commit-push-pr && rm -rf "$T"
skills/data/commit-push-pr/SKILL.mdValidated Commit, Push, and PR
This skill ensures code quality, commits, pushes, and creates a PR if one doesn't exist.
Process
Step 1: Run Formatting Check
cd backend && cargo fmt --check
If this fails, run
cargo fmt to auto-fix, then re-check.
Step 2: Run Clippy Lints
cd backend && cargo clippy --workspace --all-targets --all-features -- -D warnings
If clippy fails, fix the issues before proceeding. Do NOT commit code with clippy warnings.
Step 3: Run Tests
cd backend && cargo test --workspace
If tests fail, fix the failing tests before proceeding. Do NOT commit code with failing tests.
Step 4: Check for Changes
git status
Review what will be committed. If there are no changes to commit, skip to Step 8 (PR creation).
Step 5: Stage Changes
git add -A
Step 6: Create Commit
Ask the user for a commit message, or generate one based on the changes.
IMPORTANT: Never include:
- "Generated with Claude Code"
- "Co-Authored-By: Claude"
- Any AI/Claude attribution
Step 7: Push to Remote
git push origin HEAD
If push fails due to upstream changes:
git pull --rebase origin HEAD && git push origin HEAD
Step 8: Check for Existing PR
gh pr list --head $(git branch --show-current) --state open
If a PR already exists for this branch, inform the user and provide the PR URL. Done.
Step 9: Create PR (if none exists)
Get the current branch and base branch:
CURRENT_BRANCH=$(git branch --show-current)
Create the PR:
gh pr create --title "PR title here" --body "$(cat <<'EOF' ## Summary - Brief description of changes ## Test plan - [ ] Tests pass - [ ] Lints pass EOF )"
PR Title: Generate from the commit message or ask user.
PR Body: Include:
- Summary of changes (2-3 bullet points)
- Test plan checklist
Do NOT include "Generated with Claude Code" or similar.
Step 10: Report Success
Provide the PR URL to the user.
Failure Handling
If ANY step fails (fmt, clippy, or tests):
- Stop immediately
- Report the failure to the user
- Do NOT proceed to commit
- Help fix the issues if requested
Quick Reference
# Full validation cd backend && cargo fmt --check && cargo clippy --workspace --all-targets --all-features -- -D warnings && cargo test --workspace # Check for existing PR gh pr list --head $(git branch --show-current) --state open # Create PR gh pr create --title "Title" --body "Body"