skills/skill-scancommitpush/SKILL.md
Scan repo for all changes, group them into logical commits with conventional messages, and push to GitHub. Use when the user says "commit", "push", or invokes /commit. Does NOT create a pull request.
npx skillsauth add hasna/skills skill-scancommitpushInstall 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.
Scan the entire repository for changes, group them into logical commits, write high-quality commit messages, and push to GitHub. This skill does NOT create a pull request.
Verify git repo: Run git rev-parse --git-dir. If not a git repo, stop and inform the user.
Check for merge conflicts: Run git diff --name-only --diff-filter=U. If any files listed, stop: "There are unresolved merge conflicts in: [list]. Please resolve them before committing."
Check current branch: Run git branch --show-current. Note the branch name. If detached HEAD, warn the user and ask whether to proceed.
Check remote: Run git remote -v. If no remote configured, stop: "No git remote configured. Add one before pushing."
Check upstream: Run git rev-parse --abbrev-ref @{upstream} 2>/dev/null. If no upstream, you'll need git push -u origin <branch> later.
Run git status (never use -uall flag). Note staged changes, unstaged modifications, and untracked files.
Run git diff --stat for unstaged modification summary.
Run git diff --cached --stat for staged change summary.
If NO changes exist (nothing staged, unstaged, or untracked): "Working tree is clean. Nothing to commit." Stop.
Detect sensitive files and EXCLUDE from commits:
.env, .env.* (environment files)*.pem, *.key, *.p12 (private keys)credentials.json, service-account*.json.secrets/, secrets/Warn: "Found potentially sensitive files that will NOT be committed: [list]. Add them to .gitignore if needed."
Do NOT create one giant commit. Analyze changes and group them into logical, atomic commits.
By feature/functionality: Changes implementing a single feature or fixing a single bug go together.
By type of change:
By scope/area: Changes in unrelated parts of the codebase → separate commits.
Single-file changes: A lone modified file unrelated to others → own commit.
For each changed file ask:
When in doubt, split into smaller commits. Small atomic commits are always better than large unfocused ones.
For each logical group, commit in dependency order (foundational changes first):
Stage files: git add <file1> <file2> ... — use specific paths, NEVER git add . or git add -A.
Write commit message:
<type>: <concise summary in imperative mood>
<optional body explaining WHY, not WHAT>
Co-Authored-By: Claude <[email protected]>
| Type | When |
|------|------|
| feat | New feature or capability |
| fix | Bug fix |
| refactor | Code restructuring, no behavior change |
| docs | Documentation only |
| test | Adding or updating tests |
| chore | Config, dependencies, build, CI |
| style | Formatting, whitespace, linting |
| perf | Performance improvement |
Rules:
Create commit using HEREDOC:
git commit -m "$(cat <<'EOF'
<type>: <summary>
<optional body>
Co-Authored-By: Claude <[email protected]>
EOF
)"
Verify: git log --oneline -1 to confirm.
Repeat for each group.
If no upstream: git push -u origin <branch>. Otherwise: git push.
Handle failures:
NEVER force push unless the user explicitly requests it.
Committed and pushed to <branch>:
1. <hash> <type>: <summary> (N files)
2. <hash> <type>: <summary> (N files)
...
Total: X commits, Y files changed
Remote: origin/<branch>
| Situation | Action | |-----------|--------| | No changes | "Working tree is clean. Nothing to commit." Stop. | | Only staged changes | Commit staged as-is, push | | Only untracked files | Evaluate each, stage appropriate ones, commit, push | | Hundreds of files | Still group logically, create more commits | | Binary files | Include in commit, note in summary | | Submodule changes | Commit pointer update separately | | Pre-commit hook fails | Report failure, do NOT use --no-verify. Fix the issue, create NEW commit. | | Branch behind remote | Warn, suggest pull/rebase | | Detached HEAD | Warn, ask before proceeding | | Empty commit would result | Skip that group, no --allow-empty |
git add . or git add -A — always stage specific files--no-verify to skip hookstools
Generate hosted voiceover variants and short jingles
tools
Generate premium video highlight packages with clip plans, captions, thumbnails, chapter markers, social copy, edit decisions, and manifest metadata.
testing
Generate high-quality articles using parallel AI agents. Supports research, writing, and optional cover image generation. Write single articles or batch process multiple topics with configurable parallelism.
testing
Generate videos using OpenAI Sora, Minimax Hailuo, Gemini Veo, or Seedance through the hosted Skills runtime with provider-cost pricing.