| name | smart-commit |
| description | Generate intelligent, semantic commit messages following conventional commits format. Use when you have staged changes ready to commit and want well-structured messages with proper type, scope, and issue references. |
Skill: smart-commit
Purpose: Generate intelligent, semantic commit messages following conventional commits format.
When to use this Skill
Use this Skill when:
- You have staged changes ready to commit.
- You want a well-structured commit message.
- You need to follow conventional commits format.
- You want to link commits to issues or PRs.
Workflow
1. Analyze staged changes
Before generating a commit message:
git status --short
git diff --cached --stat
git diff --cached
Identify:
- Files added, modified, or deleted.
- Nature of changes (feature, fix, docs, refactor, etc.).
- Scope of changes (which module or component).
2. Determine commit type
Choose the appropriate type:
| Type | Description |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation only |
style |
Formatting, no code change |
refactor |
Code restructuring, no behavior change |
test |
Adding or updating tests |
chore |
Maintenance, dependencies, build |
perf |
Performance improvement |
ci |
CI/CD changes |
3. Identify scope
Determine the affected area:
- Module name (e.g.,
auth,api,ui). - Component name (e.g.,
button,modal). - File or directory (e.g.,
readme,config).
4. Write commit message
Follow the format:
<type>(<scope>): <subject>
[body]
[footer]
Rules:
- Subject: imperative mood, lowercase, no period, max 50 chars.
- Body: explain what and why, wrap at 72 chars.
- Footer: reference issues, breaking changes.
5. Validate message
Check:
- Type is valid.
- Scope is meaningful.
- Subject is clear and concise.
- Body explains context if needed.
- Footer references issues if applicable.
Examples
Feature commit
feat(auth): add OAuth2 support for Google login
Implement OAuth2 flow with PKCE for enhanced security.
Adds login button and callback handler.
Closes #123
Bug fix commit
fix(api): handle null response in user endpoint
The endpoint was throwing when user data was missing.
Now returns 404 with appropriate error message.
Fixes #456
Documentation commit
docs(readme): add installation instructions
Include step-by-step setup guide and troubleshooting section.
Refactoring commit
refactor(utils): extract validation helpers
Move repeated validation logic to shared utility module.
No functional changes.
Breaking changes
For breaking changes, add BREAKING CHANGE: in footer:
feat(api)!: change user endpoint response format
BREAKING CHANGE: User response now includes nested profile object.
Migration guide available in docs/migration.md
Multi-line bodies
Use heredoc for complex messages:
git commit -m "$(cat <<'EOF'
feat(plugin): add smart-commit skill
- Analyze staged changes semantically
- Generate conventional commit messages
- Support breaking change notation
- Include issue references
Closes #789
EOF
)"
Integration
With code-review
- Make changes.
- Run
code-reviewto check quality. - Fix any issues.
- Stage changes.
- Use
smart-committo generate message. - Commit.
With autonomous-ci
- Complete implementation.
- Stage changes.
- Use
smart-committo commit. - Use
autonomous-cito verify.
Checklist
Before committing:
- All changes are staged.
- Commit type is correct.
- Scope is meaningful.
- Subject is clear.
- Body explains context (if needed).
- Issues are referenced (if applicable).
- Breaking changes are noted (if applicable).