Git commit message convention and commit workflow. Use this skill whenever the user asks to commit, write commit messages, or review staged changes for committing. Also trigger when the user says /commit, "commit this", "make a commit", or any variation of requesting a git commit.
Write commit messages as a single line starting with an imperative English verb (capitalized), followed by a concise summary. No conventional commit prefixes (feat:, fix:, etc.). No message body unless explicitly requested.
Example:
Update rainbow-delimiters settings to prevent highlighting of HTML tags in React
Add manage=off rule to yabairc
Fix LSP config of TypeScript
Make 's' key toggleable in which-key settings
Set colorscheme to tokyonight and remove unused files
Choose the verb that best describes the nature of the change, not just "what files changed":
| Verb | When to use |
|---|
| Add | New code, tests, examples, documents |
| Implement | Significant new functionality (class, module, feature) |
| Remove | Deleting unnecessary code or files |
| Use | Switching to a specific tool, library, or approach |
| Simplify | Reducing complexity in existing code |
| Fix | Correcting broken or incorrect behavior |
| Refactor | Restructuring code without changing behavior |
| Make | Changing existing behavior |
| Allow | Enabling a feature or capability |
| Improve | Performance, compatibility, accessibility enhancements |
| Update | Version bumps, dependency updates, resource revisions |
| Correct | Typos, naming, grammatical fixes |
| Ensure | Guaranteeing a certain behavior or state |
| Prevent | Blocking undesired actions or behaviors |
| Avoid | Circumventing or working around issues |
| Move | Relocating code within the project |
| Rename | Changing names of variables, files, functions |
| Verify | Adding validation or condition checks |
| Set | Minor value changes (config values, flags) |
| Pass | Parameter or argument handling changes |
If none fit, pick the closest. Off-table verbs require explicit justification — state which table rows you considered and why each failed. "Reads naturally" is not sufficient reason.
git status and git diff to understand all changesverb → table row text (e.g., Move → "Relocating code within the project") or verb → OFF-TABLE: <why every table verb fails>. Presenting messages without this annotation violates the skill.Co-Authored-By trailers or any attribution lines to commit messages. GitHub parses these as contributors, polluting the repo's contributor list.git filter-repo.