Conventional Commits
Write concise, conventional commit messages based on the current diff.
Format
<type>(<scope>): <subject>
<body> # optional, explain the "why"
<footer> # optional, e.g. "BREAKING CHANGE: ..." or issue refs
Types
feat— new featurefix— bug fixdocs— documentation onlystyle— formatting, no logic changerefactor— code change that neither fixes a bug nor adds a featureperf— performance improvementtest— adding/updating testsbuild— build system or external dependenciesci— CI configurationchore— other maintenance
Rules
- Subject is imperative, present tense, no trailing period (e.g. "add", not "added" or "adds").
- Keep the subject under 72 characters.
- Include
scopeonly when it clarifies the affected area. - Body explains why, not what — the diff already shows what.
- Separate subject from body with a blank line.
Workflow
- Read the diff:
git diff(staged) orgit diff HEAD. - Identify the single primary intent — pick one
type. - Draft the message, then apply the rules above.
- Output only the final message in a fenced code block for easy copy-paste.
