SuperAPI AI Directory

git-commit

Coding & development

View repository

Updated 10-15 21:47

About this skill

Git Commit Messages

Write commit messages following the Conventional Commits specification.

Format

<type>(<scope>): <description>

[optional body]

[optional footer(s)]

Types

Type Purpose
feat New feature
fix Bug fix
docs Documentation only
style Code style (formatting, no logic change)
refactor Code change that neither fixes a bug nor adds a feature
perf Performance improvement
test Adding or correcting tests
build Build system or external dependencies
ci CI configuration
chore Maintenance tasks
revert Reverts a previous commit

Rules

  1. Use imperative mood in description ("add feature" not "added feature")
  2. Do not end description with a period
  3. Keep description under 72 characters
  4. Separate subject from body with a blank line
  5. Use the body to explain intent, nuances, gotchas, or background behind the change — not a paraphrase of the diff

Breaking Changes

Add ! after type/scope or include BREAKING CHANGE: in footer:

feat(api)!: remove deprecated endpoints

BREAKING CHANGE: The /v1/users endpoint has been removed.

Scope

Optional. Use to specify area of change (e.g., api, ui, auth, db).

Branch Naming

When creating a new branch, name it <type>/<kebab-description> using the same types as commit messages (e.g., feat/add-user-auth, fix/broken-symlinks).

Exception: when the environment has already assigned a branch (e.g., claude/... branches in Claude cloud sandbox sessions), keep it — never rename it or create a differently named branch to match this convention.

Identity, Signing and Attribution

Git identity and commit signing are configured by the environment (gitconfig on developer machines, a SessionStart hook in cloud sandboxes) — leave both to it:

  1. The message describes the change only: no Co-Authored-By, no "Generated with" lines, no session links or model names.
  2. Let git resolve the author from config — commit without --author or -c user.name=.../-c user.email=....
  3. Let git resolve signing from config — commit without -S, --gpg-sign or --no-gpg-sign, and leave signing-related config as it is.