Git Conventional Commit
Write commit messages in Conventional Commits format and ensure checks passed before commit.
Required Format
type(scope)!: short imperative summary
Optional body explains why and impact. Optional footer includes ticket links and breaking changes.
Type Selection
Use this default mapping:
-
feat : user-visible behavior or capability
-
fix : bug fix
-
refactor : internal change with no behavior change
-
perf : measurable performance improvement
-
test : test-only updates
-
docs : documentation-only updates
-
build : dependency/build pipeline changes
-
ci : CI configuration changes
-
chore : maintenance that does not fit above
See ./references/conventional-types.md for examples.
Process
-
Confirm git-run-checks passed for the staged slice.
-
Read staged diff: git diff --cached .
-
Pick the narrowest type and accurate scope.
-
Keep subject line under 72 chars and in imperative mood.
-
Add body only when it adds decision context.
-
Use !
- BREAKING CHANGE: footer for incompatible changes.
Optional Helper Script
Use ./scripts/compose-conventional-commit.sh to draft a message skeleton.
Boris-Inspired Operating Rules
-
Prefer precision over verbosity.
-
Explicitly state assumptions when scope is ambiguous.
-
Keep semantic history clean so reviews and bisects stay fast.
Claude Mapping (Optional)
- If project uses slash commands, expose /commit-msg to call the helper script.