Create logically grouped, atomic git commits with well-formatted commit messages following best practices. Use this skill when you need to commit changes to a git repository with proper message formatting and atomic grouping.
Creates atomic git commits with proper message formatting. Analyzes recent git history to detect commit style (conventional or traditional), then groups related changes and crafts messages following best practices.
/plugin marketplace add abatilo/vimrc/plugin install abatilo-core@abatilo-pluginsThis skill is limited to using the following tools:
This skill helps you create well-structured, atomic git commits with properly formatted commit messages.
Use this skill when:
Based on the current git status and changes, create a set of logically grouped, atomic commits. Be specific with each grouping, and keep scope minimal. Leverage partial adds to make sure that multiple changes within a single file aren't batched into commits with unrelated changes.
Analyze Current State
git log --oneline -20) to understand:
feat:, fix:, docs:)Group Changes Logically
git add -p for partial adds when a file contains multiple logical changesCreate Commits
IMPORTANT: Before writing any commits, analyze the recent git history to determine the project's commit style:
feat:, fix:, docs:, chore:, refactor:, test:, style:, perf:, ci:, build:If the project uses conventional commits, follow this structure:
<type>[(optional scope)]: <description>
[optional body]
[optional footer(s)]
Common types:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Code style changes (formatting, missing semicolons, etc.)refactor: Code changes that neither fix bugs nor add featuresperf: Performance improvementstest: Adding or updating testsbuild: Changes to build system or dependenciesci: Changes to CI configurationchore: Other changes that don't modify src or test filesExamples:
feat: add user authenticationfix: resolve null pointer in login handlerdocs: update API documentationrefactor(auth): simplify token validation logicFollow these seven rules for excellent commit messages (adjust for conventional commits if used):
<subject: concise summary, imperative, capitalized, no period>
<body: explain the motivation for the change and contrast with previous behavior>
<footer: references to issues, breaking changes, etc.>
Good Examples (Traditional Style):
Refactor subsystem X for readabilityRemove deprecated methods from UserServiceFix null pointer exception in login handlerAdd user authentication middlewareGood Examples (Conventional Commits):
feat: add user authentication middlewarefix: resolve null pointer exception in login handlerrefactor: improve subsystem X readabilitychore: remove deprecated methods from UserServiceBad Examples:
fixed stuffChangeswipUpdate file.jsfeat added new feature (incorrect format - missing colon)git status to see current stategit diff HEAD to see all changesgit log --oneline -20 to analyze recent commit style
type: prefix patterns)git add -p if needed)git showgit status to verify nothing important was missedgit add -p for interactive staging when files contain multiple unrelated changes