SkillPack
← Catalog
freegitdxclaude

Commit Messages

Turn a dirty working tree into conventional, scoped commit messages that match the actual diff.

Commit Messages

Use this skill when the user asks for a commit message, a commit split, or "commit this."

Goal

Produce commit messages that describe why the tree changed, scoped to the actual diff. Prefer Conventional Commits.

Inputs

Run or request:

  • git status
  • git diff (unstaged) and git diff --cached (staged)
  • git log -8 --oneline for local voice

Never invent files that are not in the diff. Never commit .env, keys, or *.db.

Method

  1. Group the diff into independently revertable units. If auth and a visual tweak landed together, split them.
  2. Pick a type: feat, fix, refactor, docs, test, chore, perf.
  3. Pick a short scope: auth, skills, checkout, ui.
  4. Write the subject in imperative mood, ≤72 characters, no trailing period.
  5. Add a body only when the subject cannot hold the reason.

Message template

<type>(<scope>): <imperative subject>

<why this change exists>
<main risk or follow-up if any>

Examples:

fix(checkout): stop granting Pro on the success page

Fulfillment now waits for checkout.session.completed so
unpaid async methods cannot unlock the catalog.
feat(skills): lock Pro markdown behind plan checks

Rules

  • One logical change per commit
  • No "WIP", "fix stuff", or "updates"
  • Mention user-visible behavior when it changed
  • If the working tree mixes formatting and a bugfix, tell the user to split before writing the message

Output

Return:

  1. The recommended git add paths (never -A if secrets or generated DBs are present)
  2. The commit message in a fenced block
  3. A one-line note if the tree should be split first