home / skills / davila7 / claude-code-templates / commit-work

This skill helps you create clean, conventional commits by guiding staging, splitting changes, and crafting informative messages.

This is most likely a fork of the commit-work skill from softaworks
npx playbooks add skill davila7/claude-code-templates --skill commit-work

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
2.4 KB
---
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)

Overview

This skill helps you create high-quality git commits for the Claude Code CLI repository. It guides inspection of changes, stages only intended hunks, splits work into logical commits, and produces clear Conventional Commit messages. The output includes final commit message(s), short summaries, and the staging/review commands used.

How this skill works

I inspect the working tree and unstaged diffs to identify logical commit boundaries, recommend patch staging for mixed changes, and run a cached-diff review before committing. I then craft Conventional Commit-formatted messages (type(scope): summary) with a concise body explaining what changed and why, and suggest minimal verification commands to run.

When to use it

  • You ask me to commit current work or craft commit messages for Claude Code changes.
  • You need to split a large or mixed set of edits into multiple logical commits.
  • You want Conventional Commits enforced for history and changelog tooling.
  • You want a checklist to verify no secrets, debug logs, or unrelated churn are included.
  • You want the exact git commands to stage, review, and run quick checks before commit.

Best practices

  • Prefer multiple small commits for unrelated changes; default to splitting when unsure.
  • Always inspect git status and unstaged diffs before staging (git status, git diff).
  • Use interactive/patch staging (git add -p) when files contain mixed concerns.
  • Describe staged changes in one line (what + why) before writing the message.
  • Follow Conventional Commits: type(scope): short summary, blank line, body, footer if needed.
  • Run the fastest meaningful verification (unit tests, lint) after staging and before moving on.

Example use cases

  • Split a file that contains both formatting changes and behavior fixes into two commits: chore(format): ... and fix(<scope>): ....
  • Stage only backend API changes while leaving frontend edits unstaged using git add -p.
  • Compose a Conventional Commit for a dependency upgrade with a clear body explaining why it was updated.
  • Verify there are no secrets or debug logs before committing code that configures or monitors Claude Code.
  • Prepare multiple commits for a feature and its corresponding tests, each with focused messages and short summaries.

FAQ

What commit types should I use for this repo?

Use Conventional Commit types such as feat, fix, chore, docs, refactor, test, and perf. Include a scope when it clarifies the area (e.g., feat(cli): ...).

How do I split mixed changes in a single file?

Use git add -p to interactively stage hunks. If hunks are mixed, edit the file to isolate changes or use git restore to unstage and rework.