commit-all
Batch-commit all uncommitted changes grouped by relevance. Use when multiple accumulated changes need committing. Invoked by saying "commit all" or "commit everything".
SKILL.mdexamples/glitch-payment-gateway/v1.1/codex/generated/.agents/skills/commit-all/SKILL.md
GitHubCommit All Uncommitted Changes
Stage, commit, and push all uncommitted changes — grouped by relevance so each commit is cohesive.
Branch Safety (BLOCKING GATE)
- Check the current branch — run
git branch --show-current. - If on
masterormain— STOP immediately. Do not stage, commit, or push. - Stay on the current branch. Never switch branches.
Steps
1. Assess All Changes
git status --short
git diff --stat
2. Group Changes by Relevance
Cluster files into commit batches based on:
- Feature/module area
- Change type (docs, config, source)
- Logical coupling
Target 1–5 batches. If all related, one batch is fine.
3. For Each Batch — Present 3 Commit Message Options
Before committing each batch:
- List the files in the batch
- Present 3 numbered commit message options (concise → descriptive)
- Wait for the user to pick
4. Stage and Commit Each Batch
git add <explicit-file-paths>
git commit -m "<type>(<scope>): <subject>" -m "<body>"
Never use git add . or git add -A. Always explicit paths.
5. Push
After all batches committed:
- Ask: "All batches committed. Ready to push to
<branch>?" - Wait for explicit approval before pushing.
Commit Message Rules
Same rules as the $commit skill:
- Subject:
<type>(<scope>): <summary>— under ~80 chars - Types:
feat,fix,refactor,docs,style,data,config,chore - Body: 2–3
-mflags max, end withFiles:list - 3 options per batch — user picks.
Rules
- Never stage without showing batch contents first.
- Never combine unrelated changes.
- Never skip the 3-option presentation.
- One commit per batch, one push at the end.
- Always ask for explicit user approval.