Generate a git commit message following Conventional Commits format, auto-detecting project conventions
Generate a single-line git commit message for modified/uncommitted changes following Conventional Commits, adapted to the project's specific conventions when detected.
.[a-z0-9]Before generating the message, check for project-specific commit conventions:
Look for config files (check in order, stop at first match):
commitlint.config.{js,cjs,mjs,ts} or .commitlintrc.*.czrc or cz.jsonpyproject.toml — look for [tool.commitizen] sectionpackage.json — look for "commitizen" or "commitlint" keys.changeset/config.jsonCLAUDE.md or .claude/settings.json for any commit message guidanceIf conventions are found, adapt the format below to match (custom types, scopes, prefixes, etc.)
If no config is found, use standard Conventional Commits as described below.
git diff --staged --name-status to check staged changes firstgit diff --name-status to identify modified files (ignore untracked)git diff --staged (or git diff if nothing staged) to understand actual changesgit branch --show-current to get the current branch name — extract any issue/ticket ID if present (e.g., feat/PROJ-123-description → PROJ-123)git log --oneline -5 to see recent commit style for consistency<type>[optional scope]: [optional ticket] <description>
feat — new featurefix — bug fixdocs — documentation onlystyle — formatting, no code changerefactor — neither fix nor featureperf — performance improvementtest — adding/updating testsbuild — build system or dependenciesci — CI configurationchore — maintenance, tooling, otherauth, api, cli, db)PROJ-123, #123, GH-45)feat(api): [PROJ-123] add endpointOutput ONLY the commit message, nothing else. No explanation, no alternatives.
feat(auth): [PROJ-123] add OAuth2 token refresh flow