commit-work
"Create high-quality git commits: review/stage intended changes, split into logical commits, and write clear commit messages (including Conventional Commits). Use when the user asks to commit, craft a
SKILL.mdcommit-work/SKILL.md
GitHubCommit work
Goal
Make commits that are easy to review and safe to ship:
only intended changes are included
commits are logically scoped (split when needed)
commit messages describe what changed and why
Inputs to ask for (if missing)
Single commit or multiple commits? (If unsure: default to multiple small commits when there are unrelated changes.)
Commit style: Conventional Commits are required.
Any rules: max subject length, required scopes.
Workflow (checklist)
Inspect the working tree before staging
git statusgit diff(unstaged)If many changes:
git diff --stat
Decide commit boundaries (split if needed)
Split by: feature vs refactor, backend vs frontend, formatting vs logic, tests vs prod code, dependency bumps vs behavior changes.
If changes are mixed in one file, plan to use patch staging.
Stage only what belongs in the next commit
Prefer patch staging for mixed changes:
git add -pTo unstage a hunk/file:
git restore --staged -porgit restore --staged <path>
Review what will actually be committed
git diff --cachedSanity checks:
no secrets or tokens
no accidental debug logging
no unrelated formatting churn
Describe the staged change in 1-2 sentences (before writing the message)
"What changed?" + "Why?"
If you cannot describe it cleanly, the commit is probably too big or mixed; go back to step 2.
Write the commit message
Use Conventional Commits (required):
type(scope): short summaryblank line
body (what/why, not implementation diary)
footer (BREAKING CHANGE) if needed
Prefer an editor for multi-line messages:
git commit -vUse
references/commit-message-template.mdif helpful.
Run the smallest relevant verification
- Run the repo's fastest meaningful check (unit tests, lint, or build) before moving on.
Repeat for the next commit until the working tree is clean
Deliverable
Anti-Patterns & Safety Warnings
| Avoid | Why | Instead |
|-------|-----|---------|
| Vague Commit Messages | Context is lost, hard to track changes | Write clear what/why summaries |
| Committing Unfinished Code | Breaks build, creates noise | Use git stash or save in temporary branch |
| Unresolved Conflict Markers | Committing <<<<<<< corrupts code | Run search check before staging |
| Accidental Secrets | Credentials leak risk | Scan staged lines before commit |
| Raw Commit Lists | Cryptic output, ignores context | Summarize outcomes human-readably |
Git Recovery & Verification Failures
If compilation or tests fail immediately after committing, run:
git reset HEAD~1
This moves the changes back to unstaged while preserving your code edits.
References & Templates
MANDATORY: If staging a complex feature with multi-paragraph messages, you MUST read commit-message-template.md for layout guidelines.
Do NOT load external commit guidelines if creating standard short bugfix messages.