.claude/skills/commit-and-push/SKILL.md
Stage all changes, commit with an auto-generated message, and push to the remote.
npx skillsauth add poitch/Ciel commit-and-pushInstall 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.
Stage all current changes, create a commit, and push to the remote branch.
git status
If there are no staged or unstaged changes and no untracked files, inform the user there is nothing to commit and stop.
Run these in parallel to understand what will be committed:
git diff
git diff --cached
git log --oneline -5
Get the list of modified and new Python files, then activate the venv and run ufmt format on them:
source venv/bin/activate && git diff --name-only --diff-filter=ACMR HEAD -- '*.py' | xargs -r ufmt format
If no Python files were changed, skip this step.
git add -A
If the user provided a message as $ARGUMENTS, use that exactly.
Otherwise, analyze the staged diff to write a concise commit message:
Create the commit. Always use a HEREDOC to pass the message:
git commit -m "$(cat <<'EOF'
<commit message here>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
EOF
)"
If the commit fails (e.g. pre-commit hook), inform the user and stop. Do NOT retry with --no-verify.
Push to the current branch's remote tracking branch:
git push
If there is no upstream branch yet, use:
git push -u origin HEAD
If the push fails (e.g. rejected due to remote changes), inform the user and stop. Do NOT force push.
Show the user:
development
Wait for Copilot code review to complete, then address any review comments.
development
Pull all file comments from the current GitHub pull request and address them by making code changes.
data-ai
Squash-merge the current PR, delete the branch, and switch back to main.
data-ai
Create a new branch from main, commit all changes, push, and open a pull request.