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 GitHubsabertazimi/claude-code
sabertaz
skills/generating-commits/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/sabertazimi/claude-code/blob/main/skills/generating-commits/SKILL.md -a claude-code --skill generating-commitsInstallation paths:
.claude/skills/generating-commits/# 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