Creates git commits following the Conventional Commits specification (v1.0.0). Use this when the user asks to create a commit, make a commit, or when creating commits as part of a workflow.
This skill helps create git commits following the Conventional Commits specification v1.0.0.
When creating a commit using Conventional Commits, follow these steps:
Analyze the changes:
git status to see staged and unstaged filesgit diff to review the actual changesDetermine the commit type:
feat: A new feature (correlates with MINOR in SemVer)fix: A bug fix (correlates with PATCH in SemVer)docs: Documentation only changesstyle: Changes that don't affect code meaning (formatting, whitespace)refactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementtest: Adding or correcting testsbuild: Changes to build system or external dependenciesci: Changes to CI configuration files and scriptschore: Other changes that don't modify src or test filesDetermine the scope (optional but recommended):
api, parser, auth, ui, databasefeat(api):Check for breaking changes:
! before the colonfeat(api)!: or feat!:BREAKING CHANGE: footer with descriptionConstruct the commit message:
<type>[optional scope][!]: <description>
[optional body]
[optional footer(s)]
Follow these rules:
Token: value or Token #valueBREAKING CHANGE: footer must be uppercaseCreate the commit:
git commit -m "$(cat <<'EOF'
type(scope): description
Optional body explaining the changes in more detail.
This can span multiple lines.
BREAKING CHANGE: description of breaking change
Fixes: #123
EOF
)"
<type>[optional scope][!]: <description>
BREAKING CHANGE: <description> (for breaking changes)Fixes: #<issue-number>Refs: #<issue-number>Reviewed-by: <name>Co-authored-by: <name> <email>feat(auth): add OAuth2 login support
fix(parser): handle null values in JSON response
feat(api)!: redesign user authentication endpoints
The authentication flow has been completely redesigned to use
JWT tokens instead of session cookies. This provides better
scalability and supports mobile clients.
BREAKING CHANGE: POST /auth/login now returns a JWT token in the response body instead of setting a session cookie. Clients must include the token in the Authorization header for subsequent requests.
Refs: #456
docs(readme): update installation instructions
perf(database): optimize query for user search
Replaced N+1 query pattern with a single JOIN query,
reducing database calls from ~100 to 1 for typical searches.
Closes: #789
fix(ui): prevent memory leak in dashboard component
The chart component was not properly cleaning up event listeners
when unmounted, causing memory leaks in long-running sessions.
Fixes: #123
Reviewed-by: Jane Doe
Co-authored-by: John Smith <john@example.com>
chore: update dependencies to latest versions
refactor(database)!: migrate from MongoDB to PostgreSQL
BREAKING CHANGE: All database queries must be updated to use PostgreSQL syntax. The connection string format has changed.
! and BREAKING CHANGE: footer for clarityConventional Commits work with Semantic Versioning:
fix: type commits = PATCH release (0.0.X)feat: type commits = MINOR release (0.X.0)BREAKING CHANGE: (any type with !) = MAJOR release (X.0.0)If changes span multiple areas, consider:
revert: feat(api): add OAuth2 login support
This reverts commit abc123def456.
wip(feature): partial implementation of new dashboard
This specification enables:
git log --grep="^feat")wip, hotfix, or release