Back to Skills

generating-commits

verified

Generates Conventional Commits messages, then commits changes. Use when the user says "commit", "git commit", or asks to commit changes, wants to create a commit, or when work is complete and ready to commit.

View on GitHub

Marketplace

sabertaz

sabertazimi/claude-code

Plugin

sabertaz

Repository

sabertazimi/claude-code

skills/generating-commits/SKILL.md

Last Verified

January 21, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/sabertazimi/claude-code/blob/main/skills/generating-commits/SKILL.md -a claude-code --skill generating-commits

Installation paths:

Claude
.claude/skills/generating-commits/
Powered by add-skill CLI

Instructions

# Generating Commits

Generate Conventional Commits messages and commit changes.

## When to Use This Skill

Activate this skill when:

- The user types "commit" or "git commit" (with or without slash command)
- The user says "commit this" or "let's commit"
- The user asks to create a commit message
- Work is complete and ready to commit
- The user mentions committing or pushing changes

## Critical Rules

**MUST NEVER** add co-author or mention Claude Code in commit messages

## Workflow

### 1. Check Project Preferences

Read `CLAUDE.md` for commit preferences.
**Priority**: Project preferences override default Conventional Commits.
Look for sections mentioning:

- Commit format/style guidelines
- Type values (allowed types and their meanings)
- Scope requirements (required/optional/omitted)
- Body requirements (required/optional/omitted)

If no preferences defined in the project, fall back to standard Conventional Commits.

### 2. Gather Context

Collect information about the current git state:

```bash
# Current git status
git status

# Current git diff (staged changes)
git diff --staged

# Recent commits for context
git log --oneline -10

# Current branch
git branch --show-current
```

**Edge case**: If `git diff --staged` output is empty (no staged changes), prompt the user to stage files first using `git add <files>`. Do not proceed with commit until files are staged.

### 3. Generate Message Candidates

Analyze the diff content to understand the nature and purpose of the changes.
Generate 3 commit message candidates based on the changes:

- Each candidate should be concise, clear, and capture the essence of the changes
- Follow Conventional Commits format, **with project preferences taking priority** (type, scope, body requirements)

**Format:**

```gitcommit
type(scope): concise subject line describing what changed

[Summary of the modifications]
```

### 4. Execute Commit

**IMPORTANT: Do not use `git add -A` or `git add .`**
Commit only the files that are

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
2486 chars