New to Claude Skills? Learn how to install them →

davila7 on GitHub

Git Commit Helper

Free

Generate clear, descriptive commit messages from git diffs.

Get this skill

Free · Opens the source repo

What Git Commit Helper does

Git Commit Helper is a bash-based tool designed to assist developers in crafting meaningful commit messages by analyzing staged changes within a Git repository. By leveraging the git diff --staged command, this skill helps users generate commit messages that adhere to the conventional commits format, ensuring clarity and consistency across project histories. This is particularly useful for teams that follow strict commit message guidelines or for individual developers looking to improve their commit practices.

The skill operates by first reviewing the staged changes in the repository, allowing users to identify the type of changes made, such as features, fixes, or refactors. It then suggests a commit message format that includes a type, scope, and description, along with optional body and footer sections. By following the structured format, developers can communicate the purpose of their changes effectively, which is beneficial for both current team members and future contributors who rely on commit history for context.

Git Commit Helper is ideal for developers who want to maintain high-quality commit messages without the hassle of manually composing them each time. It serves as an interactive assistant that not only prompts users to consider the significance of their changes but also reinforces best practices in commit message writing. This skill is particularly advantageous in collaborative environments where clear communication is essential for project success.

However, while Git Commit Helper streamlines the commit message generation process, it may not be suitable for users who prefer a more freeform approach to writing messages or those who do not follow conventional commit standards. It is also less effective for larger projects where commit messages may need to encompass more complex narratives or detailed explanations beyond the suggested format.

When to use it

Use this tool when preparing to commit changes in a Git repository and needing assistance in formulating a clear commit message.

When not to use it

Avoid using this skill if you prefer writing commit messages in a freeform style or if your project does not adhere to conventional commit standards.

What you can build with it

Creating a Feature Commit

When adding a new feature to your application, use the Git Commit Helper to generate a clear commit message that describes the addition.

Fixing a Bug

After resolving a bug, leverage the skill to produce a concise commit message that explains the fix and its impact.

Refactoring Code

When refactoring, utilize the Git Commit Helper to ensure your commit messages accurately reflect the changes made and maintain clarity.

How to install Git Commit Helper

View source

1. Install with the skills CLI

npx skills add davila7/claude-code-templates/git-commit-helper --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by davila7

Git Commit Helper

Quick start

Analyze staged changes and generate commit message:

# View staged changes
git diff --staged

# Generate commit message based on changes
# (Claude will analyze the diff and suggest a message)

Commit message format

Follow conventional commits format:

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

[optional body]

[optional footer]

Types

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes (formatting, missing semicolons)
  • refactor: Code refactoring
  • test: Adding or updating tests
  • chore: Maintenance tasks

Examples

Feature commit:

feat(auth): add JWT authentication

Implement JWT-based authentication system with:
- Login endpoint with token generation
- Token validation middleware
- Refresh token support

Bug fix:

fix(api): handle null values in user profile

Prevent crashes when user profile fields are null.
Add null checks before accessing nested properties.

Refactor:

refactor(database): simplify query builder

Extract common query patterns into reusable functions.
Reduce code duplication in database layer.

Analyzing changes

Review what's being committed:

# Show files changed
git status

# Show detailed changes
git diff --staged

# Show statistics
git diff --staged --stat

# Show changes for specific file
git diff --staged path/to/file

Commit message guidelines

DO:

  • Use imperative mood ("add feature" not "added feature")
  • Keep first line under 50 characters
  • Capitalize first letter
  • No period at end of summary
  • Explain WHY not just WHAT in body

DON'T:

  • Use vague messages like "update" or "fix stuff"
  • Include technical implementation details in summary
  • Write paragraphs in summary line
  • Use past tense

Multi-file commits

When committing multiple related changes:

refactor(core): restructure authentication module

- Move auth logic from controllers to service layer
- Extract validation into separate validators
- Update tests to use new structure
- Add integration tests for auth flow

Breaking change: Auth service now requires config object

Scope examples

Frontend:

  • feat(ui): add loading spinner to dashboard
  • fix(form): validate email format

Backend:

  • feat(api): add user profile endpoint
  • fix(db): resolve connection pool leak

Infrastructure:

  • chore(ci): update Node version to 20
  • feat(docker): add multi-stage build

Breaking changes

Indicate breaking changes clearly:

feat(api)!: restructure API response format

BREAKING CHANGE: All API responses now follow JSON:API spec

Previous format:
{ "data": {...}, "status": "ok" }

New format:
{ "data": {...}, "meta": {...} }

Migration guide: Update client code to handle new response structure

Template workflow

  1. Review changes: git diff --staged
  2. Identify type: Is it feat, fix, refactor, etc.?
  3. Determine scope: What part of the codebase?
  4. Write summary: Brief, imperative description
  5. Add body: Explain why and what impact
  6. Note breaking changes: If applicable

Interactive commit helper

Use git add -p for selective staging:

# Stage changes interactively
git add -p

# Review what's staged
git diff --staged

# Commit with message
git commit -m "type(scope): description"

Amending commits

Fix the last commit message:

# Amend commit message only
git commit --amend

# Amend and add more changes
git add forgotten-file.js
git commit --amend --no-edit

Best practices

  1. Atomic commits - One logical change per commit
  2. Test before commit - Ensure code works
  3. Reference issues - Include issue numbers if applicable
  4. Keep it focused - Don't mix unrelated changes
  5. Write for humans - Future you will read this

Commit message checklist

  • Type is appropriate (feat/fix/docs/etc.)
  • Scope is specific and clear
  • Summary is under 50 characters
  • Summary uses imperative mood
  • Body explains WHY not just WHAT
  • Breaking changes are clearly marked
  • Related issue numbers are included

Frequently asked questions about Git Commit Helper

Similar skills