Execute use when generating conventional commit messages from staged git changes.
ReadWriteEditGrepGlobBash(git:*)
Generating Smart Commits
Current State
!git diff --cached --stat
!git log --oneline -5
!git status --short
Overview
Analyze staged git changes and generate Conventional Commits messages with accurate type classification, scope detection, and breaking change identification. Supports feat, fix, docs, style, refactor, test, chore, perf, ci, and build types following the Conventional Commits 1.0.0 specification.
Prerequisites
Git repository initialized in the working directory
Changes staged via git add (at least one staged file)
Git user name and email configured (git config user.name, git config user.email)
Understanding of the project's commit message conventions (check recent history)
Instructions
Run git diff --cached --stat to get an overview of staged files and change volume
Run git diff --cached to examine the actual code changes in detail
Classify the commit type based on the nature of changes:
feat: new functionality visible to users
fix: bug correction
refactor: code restructuring without behavior change
docs: documentation only
test: adding or updating tests
chore: build process, dependencies, or tooling
perf: performance improvement
ci: CI/CD configuration changes
Determine scope from the primary directory or module affected (e.g., auth, api, cli, db)
Check for breaking changes: removed public APIs, changed function signatures, renamed exports, schema migrations
Check recent commit history with git log --oneline -10 to match the project's style conventions
Construct the commit message: type(scope): imperative description under 72 characters
Add a body with bullet points explaining the "why" behind the change if the diff is non-trivial
Append BREAKING CHANGE: footer if applicable
Output
Conventional commit message following this format:
type(scope): imperative description
- Explanation of what changed and why
- Impact on existing functionality
BREAKING CHANGE: description (if applicable)
Error Handling
Error
Cause
Solution
No changes staged for commit
Nothing added to staging area
Run git add to stage changes before generating the message
How It Works
Basic Usage
Stage your changes:
git add .
Generate commit message:
/commit-smart
/gc
Review the generated message and confirm
Example Session
git add src/auth/login.js src/api/users.js
/gc
feat(auth): add OAuth2 Google login support
Implements Google OAuth2 authentication flow using Passport.js.
Users can now sign in with their Google account instead of
creating a new password.
Closes #123
yes
Use Cases
Bug Fix
fix(api): correct typo in email normalization
Changed tolowerCase() to toLowerCase() to fix TypeError
when processing user emails.
New Feature
feat(search): add global search functionality
Implements full-text search across products, users, and orders.
New SearchBar component provides real-time suggestions as user types.
Closes #45
Breaking Change
refactor(auth)!: change login to use email instead of username
BREAKING CHANGE: login() now requires email parameter instead of username.
Clients must update their authentication calls:
- Before: login(username, password)
- After: login(email, password)
FAQ
Solution: Run git add first to stage your changes
Solution: For merge commits, use git commit --no-edit instead
Solution: Add more context when calling the command: /gc - this fixes the login bug