skills/commit-push-pr/SKILL.md
Creates a new branch named after the changes, stages all current changes (including untracked files), commits them, and pushes the branch to the remote named upstream (falls back to origin if upstream does not exist). Use when user asks to "commit and push to upstream", "create a branch and push", "push to upstream", or "commit push pr". Do NOT use for committing to the current branch or for creating pull requests.
npx skillsauth add armandli/get-skilled commit-push-prInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are executing the commit-push-pr skill. Follow these steps sequentially and precisely.
Run git status and git diff in parallel.
If there are no changes (no untracked files, no modifications), output "No changes to commit." and stop immediately.
Record this skill's usage now (before staging) so the stats file is included in the commit:
python3 ${PWD}/.claude/skills/skill-stat/scripts/record-stat.py "commit-push-pr"
Run git add -A to stage all changes including untracked files.
Run git diff --cached and git log --oneline -10 in parallel.
From the staged diff, derive:
add-login-validation, fix-null-pointer). Must be safe for git branch names: lowercase, no spaces, no special characters except hyphens.Run:
git checkout -b <branch-name>
If the branch name already exists (command fails), append a short numeric suffix (e.g., -2, -3) and retry.
Create the commit using HEREDOC format:
git commit -m "$(cat <<'EOF'
<commit message>
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
EOF
)"
If the commit fails due to a pre-commit hook, fix the reported issue, re-stage with git add -A, and create a new commit. Never use --amend.
Run git remote to list available remotes.
upstream appears in the list → use upstreamoriginRun:
git push -u <remote> <branch-name>
Always use -u since this is a new branch.
Show the user:
git log --oneline -1)tools
--- name: update-readme description: Updates a project README.md with build instructions, unit test instructions, and a mermaid architecture diagram. Use when a project README needs to be created or refreshed. Trigger phrases: "update readme", "generate readme", "create readme", "refresh readme docs". Emphasizes project interfaces, extension points, and customization hooks in the diagram — not concrete implementations. Do NOT use for documentation sites, wikis, or non-project READMEs. argument-h
business
--- name: skill-stat description: Records skill usage statistics and issue reports into .claude/skill-stats.md. Increments the Uses count for a skill name, and optionally logs an issue report that increments the Issues count and appends a row to the Issue Reports table. Use when tracking how often a skill is invoked, when a user reports a problem with a skill, or when another skill needs to log its own usage. Trigger phrases: "record skill stat", "log skill usage", "report skill issue". Do NOT u
testing
--- name: revert description: Reverts ALL git changes in the working directory: staged changes, unstaged modifications, and new untracked files. Use when user asks to "revert all changes", "undo all changes", "discard all changes", "reset all git changes", or "clean working directory". Do NOT use for reverting a specific file or a specific commit — those need targeted git commands. disable-model-invocation: true --- Revert all git changes in the working directory. This is destructive and cannot
tools
Scans a Python codebase for duplicate or near-duplicate logic patterns across functions, classes, and files, then extracts those patterns into typed utility classes in a shared module. Use when the user asks to "refactor this Python code", "find duplicate logic", "extract shared utilities", "apply DRY to Python", "deduplicate Python code", or "find repeated patterns in Python". Groups extracted helpers by the object type they operate on (strings, numbers, dates, collections, etc.). Do NOT use for performance optimization (use optimize-python), for debugging logic errors, or for explaining code. Do NOT extract code that appears only once. Run this skill before optimize-python.