Claude-skill-registry generating-commits
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.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/generating-commits" ~/.claude/skills/majiayu000-claude-skill-registry-generating-commits && rm -rf "$T"
skills/data/generating-commits/SKILL.mdGenerating 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:
# 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:
type(scope): concise subject line describing what changed [Summary of the modifications]
4. Execute Commit
IMPORTANT: Do not use
or git add -A
Commit only the files that are already staged and understood.git add .
Select best candidate, explain reasoning of your choice, then commit with heredoc (for multi-line messages):
git commit -m "$(cat <<'EOF' type(scope): subject line [modifications summary] EOF )"
Important Notes
- Use heredoc for multi-line commits - Ensures proper formatting
- Be specific in summaries
- Think about the reader - someone explaining this code repository in 6 months
- No co-authors - Never add "Co-Authored-By" or mention Claude Code