See how a minor change to your commit message style can make you a better programmer.
Format: <type>(<scope>): <subject>
<scope>
is optional
feat: add hat wobble
^--^ ^------------^
| |
| +-> Summary in present tense.
|
+-------> Type: chore, docs, feat, fix, refactor, style, or test.
More Examples:
feat
: (new feature for the user, not a new feature for build script)fix
: (bug fix for the user, not a fix to a build script)docs
: (changes to the documentation)style
: (formatting, missing semi colons, etc; no production code change)refactor
: (refactoring production code, eg. renaming a variable)test
: (adding missing tests, refactoring tests; no production code change)chore
: (updating grunt tasks etc; no production code change)
References:
@nicholaswmin Great points!
I agree that simplicity is essential, and processes shouldn’t be added without a good reason. While Conventional Commits offers a broad set of keywords to provide flexibility, it's worth considering whether a smaller, more essential subset could cover most cases without unnecessary overhead.
That said, it's important to recognize that Semantic Commit, as it stands today, may not be useful for all types of projects. There’s no silver bullet in software engineering—it’s up to each team to evaluate what truly adds value to their workflow. Dismissing the project as "cargo cult programming" might be unfair; we risk misjudging its real purpose or, worse, falling into a Dunning-Kruger effect, where a lack of deeper understanding leads to oversimplified conclusions.
I believe discussions like these are valuable for refining tools, but at the same time, sometimes debates about tooling create more noise than the tools themselves—lots of talk, little action. Personally, I prefer to focus on building rather than overanalyzing.
Thanks for the exchange of ideas!