PluginBench
Skill
Pass
Audit score 90

commit-work

softaworks/agent-toolkit

Create high-quality git commits with logical scoping, staged changes, and Conventional Commits format.

What is commit-work?

This skill helps you craft clean, reviewable commits by inspecting changes, splitting work into logical units, staging only intended changes, and writing clear Conventional Commits messages. Use it when you need to commit code, write commit messages, stage changes selectively, or organize work across multiple commits.

  • Inspect working tree and diff to understand all pending changes
  • Split changes into logical commit boundaries (feature vs refactor, backend vs frontend, etc.)
  • Stage changes selectively using patch staging for mixed files
  • Review staged changes before committing to catch secrets, debug code, or unrelated formatting
  • Write Conventional Commits messages with type, scope, and body
  • Run verification checks (tests, lint, build) before finalizing commits

How to install commit-work

npx skills add https://github.com/softaworks/agent-toolkit --skill commit-work
Claude Code
Cursor
Windsurf
Cline

How to use commit-work

  1. 1.Run `git status` and `git diff` to inspect all pending changes
  2. 2.Decide whether to create one commit or multiple commits based on change relatedness
  3. 3.Use `git add -p` for patch staging to include only intended changes in the next commit
  4. 4.Run `git diff --cached` to review exactly what will be committed
  5. 5.Write a Conventional Commits message following the format: `type(scope): summary` with optional body and footer
  6. 6.Run the repo's fastest verification (unit tests, lint, or build)
  7. 7.Repeat the staging and commit process for remaining changes until the working tree is clean

Use cases

Good for
  • Splitting a file with mixed feature and refactor changes into separate commits
  • Staging only production code changes while leaving test updates for a follow-up commit
  • Writing a multi-line commit message that explains both what changed and why
  • Reviewing staged changes to ensure no debug logging or secrets are included
  • Organizing a series of unrelated changes (dependency bump, formatting, feature) into distinct commits
Who it's for
  • Developers maintaining clean git history
  • Teams using Conventional Commits for automated changelog generation
  • Code reviewers who benefit from logically scoped, well-described commits
  • Anyone working on projects with strict commit message standards

commit-work FAQ

What if I have many unrelated changes in the working tree?

Inspect with `git diff --stat` first, then plan commit boundaries by splitting feature vs refactor, backend vs frontend, formatting vs logic, tests vs prod code, and dependency bumps vs behavior changes. Use patch staging (`git add -p`) to separate mixed changes within a single file.

Do I have to use Conventional Commits?

Yes, Conventional Commits are required by this skill. The format is `type(scope): short summary` with an optional body and footer. This enables automated changelog generation and clear commit history.

How do I undo staging if I included the wrong changes?

Use `git restore --staged -p` for interactive unstaging of hunks, or `git restore --staged <path>` to unstage an entire file.

What should I do if I cannot describe a staged commit cleanly?

The commit is likely too big or contains mixed concerns. Go back, unstage, and re-plan the commit boundaries into smaller, more focused units.

Should I use an editor for commit messages?

Yes, prefer `git commit -v` for multi-line messages so you can see the diff while writing. For single-line commits, the command line is fine.

Full instructions (SKILL.md)

Source of truth, from softaworks/agent-toolkit.


name: commit-work description: "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)

  1. Inspect the working tree before staging
    • git status
    • git diff (unstaged)
    • If many changes: git diff --stat
  2. 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.
  3. 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>
  4. Review what will actually be committed
    • git diff --cached
    • Sanity checks:
      • no secrets or tokens
      • no accidental debug logging
      • no unrelated formatting churn
  5. 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.
  6. 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.
  7. Run the smallest relevant verification
    • Run the repo's fastest meaningful check (unit tests, lint, or build) before moving on.
  8. 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)