> commit-messages

Generate clear, conventional commit messages from git diffs. Use when writing commit messages, reviewing staged changes, or preparing releases.

fetch
$curl "https://skillshub.wtf/TheDecipherist/claude-code-mastery/commit-messages?format=md"
SKILL.mdcommit-messages

Commit Message Skill

Generate consistent, informative commit messages following the Conventional Commits specification.

When to Use This Skill

  • User asks to "commit", "write a commit message", or "prepare commit"
  • User has staged changes and mentions commits
  • Before any git commit command

Process

  1. Analyze changes: Run git diff --staged to see what's being committed
  2. Identify the type: Determine the primary change category
  3. Find the scope: Identify the main area affected
  4. Write the message: Follow the format below

Commit Message Format

<type>(<scope>): <description>

[optional body]

[optional footer(s)]

Types

TypeDescriptionExample
featNew featurefeat(auth): add OAuth2 login
fixBug fixfix(api): handle null response
docsDocumentation onlydocs(readme): add setup instructions
styleFormatting, no code changestyle: fix indentation
refactorCode change, no new feature/fixrefactor(db): extract query builder
perfPerformance improvementperf(search): add result caching
testAdding/fixing teststest(auth): add login unit tests
buildBuild system changesbuild: update webpack config
ciCI configurationci: add GitHub Actions workflow
choreMaintenance taskschore(deps): update dependencies
revertRevert previous commitrevert: feat(auth): add OAuth2

Scope

The scope should be a noun describing the section of the codebase:

  • auth, api, db, ui, config
  • Feature names: search, checkout, dashboard
  • Or omit if change is broad

Subject Line Rules

  • Use imperative mood: "add" not "added" or "adds"
  • Don't capitalize first letter after colon
  • No period at the end
  • Max 72 characters total

Body (when needed)

  • Separate from subject with blank line
  • Explain what and why, not how
  • Wrap at 72 characters
  • Use bullet points for multiple changes

Footer (when needed)

  • BREAKING CHANGE: for breaking changes
  • Fixes #123 to close issues
  • Refs #456 to reference without closing

Examples

Simple feature

feat(search): add fuzzy matching support

Implement Levenshtein distance algorithm for typo tolerance
in search queries. Configurable via FUZZY_THRESHOLD env var.

Bug fix with issue reference

fix(cart): prevent duplicate items on rapid clicks

Add debounce to add-to-cart button and check for existing
items before insertion.

Fixes #234

Breaking change

feat(api)!: change response format to JSON:API

BREAKING CHANGE: API responses now follow JSON:API spec.
All clients need to update their parsers.

- Wrap data in `data` object
- Move metadata to `meta` object  
- Add `links` for pagination

Multiple related changes

refactor(auth): consolidate authentication logic

- Extract JWT handling to dedicated service
- Move session management from controller to middleware
- Add refresh token rotation

This prepares for the upcoming OAuth2 integration.

Output

When generating a commit message:

  1. Show the staged changes summary
  2. Propose the commit message
  3. Explain the type/scope choice if non-obvious
  4. Ask if the user wants to proceed or modify

┌ stats

installs/wk0
░░░░░░░░░░
github stars463
██████████
first seenMar 17, 2026
└────────────

┌ repo

TheDecipherist/claude-code-mastery
by TheDecipherist
└────────────

┌ tags

└────────────