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 commit message, stage changes, or split work into multiple commits.
Start a fresh conversation. Replace the highlighted placeholders.
Use the commit-work skill to inspect the current working-tree diff, propose logical commit boundaries, and draft Conventional Commit messages with a one- or two-sentence what/why summary for each. Do not stage or commit anything. Use `[scope rules or none]` for any required scopes or subject-length rules.
Required inputs
Whether one commit or multiple commits is preferred; multiple small commits is the documented default when unrelated changes exist
Required scopes or maximum subject length; `[scope rules or none]` is a placeholder
Suggested template by Skill Leaderboard, grounded in the linked source. Task evidence ↗
SKILL.md
name: commit-workdescription: "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 commit message, stage changes, or split work into multiple commits."
Commit 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 status
git 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 -p
To unstage a hunk/file: git restore --staged -p or git restore --staged <path>
Review what will actually be committed
git diff --cached
Sanity 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 summary
blank line
body (what/why, not implementation diary)
footer (BREAKING CHANGE) if needed
Prefer an editor for multi-line messages: git commit -v
Use references/commit-message-template.md if 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
Provide:
the final commit message(s)
a short summary per commit (what/why)
the commands used to stage/review (at minimum: git diff --cached, plus any tests run)