Creates professional git commits following conventional-commits format. Trigger: When creating commits, after completing code changes, when user asks to commit.
type(scope): description-n flag unless user explicitly requests itgit push --force or git push -f (destructive, rewrites history)type(scope): concise description
- Key change 1
- Key change 2
- Key change 3
| Type | Use When |
|---|---|
feat |
New feature or functionality |
fix |
Bug fix |
docs |
Documentation only |
chore |
Maintenance, dependencies, configs |
refactor |
Code change without feature/fix |
test |
Adding or updating tests |
perf |
Performance improvement |
style |
Formatting, no code change |
| Scope | When |
|---|---|
api |
Changes in api/ |
ui |
Changes in ui/ |
sdk |
Changes in prowler/ |
mcp |
Changes in mcp_server/ |
skills |
Changes in skills/ |
ci |
Changes in .github/ |
docs |
Changes in docs/ |
| omit | Multiple scopes or root-level |
# GOOD - Concise and clear
feat(api): add provider connection retry logic
fix(ui): resolve dashboard loading state
chore(skills): add Celery documentation
docs: update installation guide
# BAD - Too specific or verbose
feat(api): add provider connection retry logic with exponential backoff and jitter (3 retries max)
chore(skills): add comprehensive Celery documentation covering 8 topics
fix(ui): fix the bug in dashboard component on line 45
# GOOD - High-level changes
- Add retry mechanism for failed connections
- Document task composition patterns
- Expand configuration reference
# BAD - Too detailed
- Add retry with max_retries=3, backoff=True, jitter=True
- Add 6 subsections covering chain, group, chord
- Update lines 45-67 in dashboard.tsx
Analyze changes
git status
git diff --stat HEAD
git log -3 --oneline # Check recent commit style
Draft commit message
Present to user for confirmation
Execute commit
git add <files>
git commit -m "$(cat <<'EOF'
type(scope): description
- Change 1
- Change 2
EOF
)"
Single file changed?
āā Yes ā May omit body, title only
āā No ā Include body with key changes
Multiple scopes affected?
āā Yes ā Omit scope: `feat: description`
āā No ā Include scope: `feat(api): description`
Fixing a bug?
āā User-facing ā fix(scope): description
āā Internal/dev ā chore(scope): fix description
Adding documentation?
āā Code docs (docstrings) ā Part of feat/fix
āā Standalone docs ā docs: or docs(scope):
# Check current state
git status
git diff --stat HEAD
# Standard commit
git add <files>
git commit -m "type(scope): description"
# Multi-line commit
git commit -m "$(cat <<'EOF'
type(scope): description
- Change 1
- Change 2
EOF
)"
# Amend last commit (same message)
git commit --amend --no-edit
# Amend with new message
git commit --amend -m "new message"