skilluse avatar

commit

Generate Conventional Commits 1.0.0 compliant messages. Use when the user says "commit", "create com

作者 skilluse|オープンソース

Conventional Commits Generator

Generate commit messages following the Conventional Commits 1.0.0 specification.

Commit Message Structure

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Instructions

When the user asks to commit changes:

  1. Analyze the changes by running:

    • git status to see all modified/added/deleted files
    • git diff --staged to see staged changes
    • git diff to see unstaged changes
    • git log -5 --oneline to match the repository's commit style
  2. Determine the commit type (REQUIRED):

    TypeDescriptionSemVer
    featNew featureMINOR
    fixBug fixPATCH
    docsDocumentation only-
    styleFormatting, no code change-
    refactorCode change, no feature/fix-
    perfPerformance improvement-
    testAdding/updating tests-
    buildBuild system or dependencies-
    ciCI configuration-
    choreOther changes-
  3. Identify breaking changes:

    • Append "!" after type/scope for breaking changes: "feat!:" or "feat(api)!:"
    • Add "BREAKING CHANGE:" footer for detailed explanation
    • Breaking changes trigger MAJOR version bump
  4. Write the commit message:

    • Description MUST immediately follow the colon and space
    • Description is a short summary in imperative mood
    • Body MUST begin one blank line after description
    • Footers MUST begin one blank line after body
  5. Stage and commit:

    • Stage relevant files with git add
    • Create commit with the generated message
    • Show git status after to confirm success
    • DO NOT add any Claude Code references, co-author tags, or "Generated with" footers

Specification Rules

  • Type MUST be a noun (feat, fix, etc.)
  • Scope MUST be a noun in parentheses describing codebase section
  • Description MUST use imperative mood ("add" not "added")
  • Body is free-form, may have multiple paragraphs
  • Footer token MUST use - instead of spaces (except BREAKING CHANGE)
  • BREAKING CHANGE MUST be uppercase
  • NEVER include AI-generated markers, Claude Code references, or Co-Authored-By: Claude footers

Examples

Feature with breaking change footer

feat: allow provided config object to extend other configs

BREAKING CHANGE: `extends` key in config file is now used for extending other config files

Breaking change with !

feat(api)!: send an email to the customer when a product is shipped

Breaking change with exclamation mark and footer

chore!: drop support for Node 6

BREAKING CHANGE: use JavaScript features not available in Node 6.

Simple docs change (no body)

docs: correct spelling of CHANGELOG

Feature with scope

feat(lang): add Polish language

Fix with multi-paragraph body and footers

fix: prevent racing of requests

Introduce a request id and a reference to latest request. Dismiss
incoming responses other than from latest request.

Remove timeouts which were used to mitigate the racing issue but are
obsolete now.

Reviewed-by: Z
Refs: #123

Revert commit

revert: let us never again speak of the noodle incident

Refs: 676104e, a215868

Footer Formats

Footers follow git trailer format:

  • Token: value or Token #value
  • Common footers: Refs:, Closes:, Reviewed-by:, Co-authored-by:
  • BREAKING CHANGE: description for breaking changes

Interactive Mode

If changes are complex or ambiguous, ask the user:

  • Which files to include in the commit
  • What type of change this represents
  • If there are breaking changes
  • If they want to split into multiple commits (encouraged by spec)