Skip to content
Development
Skill

/commit-message-generator

Automatically generate conventional commit messages when user has staged changes and mentions committing. Analyzes git diff and status to create properly formatted commit messages following conventional commits specification. AI attribution comes from the tool's own trailer

From plugin
cms-cultivator
1728 skills1 agent

Claude Code

$ npx -y skills add kanopi/cms-cultivator --skill commit-message-generator --agent claude-code

SKILL.md

commit-message-generator.SKILL.md
name: commit-message-generator
description: Automatically generate conventional commit messages when user has staged changes and mentions committing. Analyzes git diff and status to create properly formatted commit messages following conventional commits specification. AI attribution comes from the tool's own trailer (Claude Code's Co-Authored-By); the skill never adds a second one. Invoke when user mentions "commit", "staged", "committing", or asks for help with commit messages.

Commit Message Generator

Automatically generate conventional commit messages for staged changes.

Philosophy

Commit messages are the history and documentation of your code's evolution.

Core Beliefs

1. **Commits Tell a Story**: Each commit should explain what changed and why 2. **Conventional Format Enables Automation**: Structured messages power changelogs and semantic versioning 3. **Clarity Over Brevity**: A clear 2-line message beats a cryptic 5-word one 4. **Context Matters**: Messages should be understandable months later without additional context

Why Conventional Commits

  • **Automated Changelogs**: Generate release notes from commit history
  • **Semantic Versioning**: Determine version bumps (major/minor/patch) automatically
  • **Better Searchability**: Find specific types of changes quickly
  • **Team Communication**: Consistent format aids code review and collaboration

When to Use This Skill

Activate this skill when the user:

  • Mentions "commit", "committing", "staged changes", or "ready to commit"
  • Shows `git add` or `git status` output with staged changes
  • Asks "what should my commit message be?"
  • Says "I need to commit my changes"
  • Asks for help writing commit messages

Decision Framework

Before generating a commit message, ask yourself:

Is This Ready to Commit?

  • ✅ **Yes** - Staged changes represent a single logical unit of work
  • ❌ **No** - Multiple unrelated changes staged → Suggest splitting into separate commits
  • ⚠️ **Maybe** - Large changeset → Review to ensure it's cohesive

What Type of Change Is This?

1. **New functionality** → `feat` type 2. **Bug fix** → `fix` type 3. **Code improvement without behavior change** → `refactor` type 4. **Documentation only** → `docs` type 5. **Tests only** → `test` type 6. **Multiple types** → Suggest splitting commits

What Scope Makes Sense?

  • **Module/component name** - For focused changes (e.g., `auth`, `api`, `ui`)
  • **Feature area** - For cross-cutting changes (e.g., `validation`, `logging`)
  • **No scope** - For global changes (e.g., dependencies, config)

Should This Be Multiple Commits?

Split if staged changes include:

  • ✅ Unrelated features or fixes
  • ✅ Refactoring + new feature (split: refactor first, feature second)
  • ✅ Multiple bug fixes
  • ❌ Feature + tests (keep together)
  • ❌ Feature + documentation (keep together)

Decision Tree

User mentions commit
    ↓
Check: Staged changes?
    ↓ Yes
Check: Multiple unrelated changes?
    ↓ No
Check: Follows conventional commits pattern?
    ↓ Generate message
    ↓
Review with user → Commit

Workflow

1. Check for Staged Changes

git status
git diff --staged

If no staged changes, inform the user and suggest staging files first.

2. Analyze Recent Commits for Style

git log --oneline -10

Learn the repository's commit message conventions.

3. Generate Conventional Commit Message

**Format**: `<type>(<scope>): <description>`

**Types**:

  • `feat` - New feature
  • `fix` - Bug fix
  • `docs` - Documentation changes
  • `style` - Code style changes (formatting, semicolons, etc.)
  • `refactor` - Code refactoring (no functional changes)
  • `test` - Adding or updating tests
  • `chore` - Build process, dependency updates, etc.
  • `perf` - Performance improvements
  • `ci` - CI/CD changes

**Example**:

feat(auth): add two-factor authentication support

- Implement TOTP-based 2FA
- Add backup codes generation
- Include recovery flow for lost devices
- Update user profile settings UI

Refs: 30024167

**Body rules**:

  • **Wrap the body at 72 columns**, per git convention. This is the opposite of

PR and comment bodies, which must never be hard-wrapped (`pr-create`) — don't carry one rule into the other.

  • **Take the ticket from the branch name into a `Refs:` footer.** Kanopi

branches are `<type>/<ticketID>-<short-desc>`, so `bug/30140451-menu-link-attributes` gives `Refs: 30140451`. Omit the footer when the branch carries no ticket.

4. Drupal/WordPress-Specific Patterns

**Drupal**:

  • Config changes: `feat(config): add user profile field configuration`
  • Module work: `fix(custom_module): correct permission check in access callback`
  • Hooks: `refactor(hooks): simplify hook_form_alter implementation`

**WordPress**:

  • Theme work: `style(theme): improve mobile navigation styles`
  • Plugin work: `fix(plugin): correct ACF field validation`
  • Blocks: `feat(blocks): add testimonial Gutenberg block`

5. Leave AI Attribution to the Tool

Claude Code adds its own AI attribution trailer to commits it creates — by default `Co-Authored-By: Claude <model> <noreply@anthropic.com>`, carrying the session's real model, and governed by the `attribution.commit` setting. That trailer is the per-commit provenance record. The per-PR complement is the Delivery Record ([kanopi/delivery-record](https://github.com/kanopi/delivery-record)).

Rules:

  • **Add no attribution trailer of your own** — no `Assisted-by:`, and no second

`Co-Authored-By:`. Two trailers for one assistant split the audit trail.

  • **Never edit or remove the tool's trailer**, and never type a model name into

it yourself; the tool supplies it.

  • **Keep the trailers in one final block.** Git reads trailers only from the

last paragraph, so put `Refs:` and `BREAKING CHANGE:` footers directly above the tool's trailer, with no blank line between them and nothing after.

  • **If the session's attribution settings say to add none**, add none.
  • **A human-wr
Read more
@kanopi
Ships withcms-cultivator

Specialist agents and auto-invoked skills for Drupal/WordPress development. Works in Claude Code, Claude Desktop, and OpenAI Codex. Full documentation: What changed in 2.0? CMS Cultivator now focuses on CMS development workflows.

1728 skills1 agent
Get the whole plugin

Stars on GitHub

Momentum

stars in total
17
Star history of kanopi/cms-cultivator on GitHub, a chart by star-history.com

Other skills on cms-cultivator.

browser-validator

browser-validator

Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…

coverage-analyzer

coverage-analyzer

Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about…

ddev-docker-cleanup

ddev-docker-cleanup

Deterministic cleanup of DDEV and Docker disk usage on OrbStack, Docker Desktop, or any Docker provider. Safely reclaims space by…

ddev-workflow

ddev-workflow

Operate a Kanopi DDEV site day to day — get a fresh clone or worktree actually serving pages, pull a database from the hosting…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about commit-message-generator.

Which coding agents can use commit-message-generator?
commit-message-generator installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.