| name | Commit Message Generator |
| description | Generate clear, conventional, and meaningful commit messages following best practices and conventional commit standards |
Commit Message Generator
Purpose
Generate high-quality commit messages that:
- Follow conventional commit format
- Clearly describe changes
- Provide useful context
- Aid in changelog generation
- Support semantic versioning
When to Use
Invoke this skill when:
- User needs help writing commit messages
- Reviewing staged changes for commit
- Creating standardized team commit messages
- Generating changelog entries
- Teaching commit message best practices
Instructions
Step 1: Analyze the Changes
Examine the git diff to understand:
- Scope of change: What files/modules affected
- Type of change: Feature, fix, refactor, docs, etc.
- Impact: Breaking change or not
- Why: The reason for the change
Step 2: Determine Commit Type
Choose the appropriate conventional commit type:
- feat: New feature
- fix: Bug fix
- docs: Documentation only
- style: Formatting, missing semicolons, etc.
- refactor: Code change that neither fixes a bug nor adds a feature
- perf: Performance improvement
- test: Adding or updating tests
- build: Changes to build system or dependencies
- ci: CI configuration changes
- chore: Other changes that don't modify src or test files
- revert: Reverting a previous commit
Step 3: Identify Scope (Optional)
Determine the scope (area of codebase):
- Component name:
auth,api,ui - Module name:
parser,validator - Feature name:
login,checkout
Step 4: Write the Subject Line
Create a subject line that:
- Starts with type and optional scope:
type(scope): - Uses imperative mood: "add" not "added" or "adds"
- Is no longer than 50-72 characters
- Does not end with a period
- Clearly describes WHAT changed
Step 5: Add Body (if needed)
Include a body for complex changes:
- Explain WHY the change was made
- Describe the previous behavior
- Explain the new behavior
- Justify your approach
- Wrap at 72 characters
Step 6: Add Footer (if needed)
Add footer for:
- Breaking changes:
BREAKING CHANGE: description - Issue references:
Closes #123, Fixes #456 - Co-authors:
Co-authored-by: Name <email>
Examples
Simple Feature Addition
feat(auth): add password reset functionality
Implements password reset via email token. Users can now request
a password reset link that expires after 1 hour.
- Add /reset-password endpoint
- Implement email token generation
- Add reset form UI
Closes #142
Bug Fix
fix(api): resolve null pointer exception in user validation
The validator was not checking for null email values before
processing, causing crashes when users submitted empty forms.
Previous behavior: Crash on null email
New behavior: Return validation error message
Fixes #234
Breaking Change
feat(api)!: change authentication to JWT tokens
BREAKING CHANGE: Session-based auth is replaced with JWT tokens.
Clients must now include 'Authorization: Bearer <token>' header
instead of cookie-based sessions.
Migration guide:
1. Update API client to use Authorization header
2. Remove session cookie handling
3. Implement token refresh logic
Closes #567
Documentation Update
docs(readme): add installation instructions for Windows
Added step-by-step Windows installation guide including:
- Node.js version requirements
- Common PATH configuration issues
- WSL2 setup recommendations
Refactoring
refactor(parser): extract validation logic to separate module
Improves code organization and testability by moving validation
rules into dedicated validator module. No functional changes.
- Create validator.ts module
- Move validation rules from parser.ts
- Update tests to reflect new structure
Conventional Commit Format
<type>[(optional scope)][!]: <description>
[optional body]
[optional footer(s)]
Type + Scope Examples
feat(auth): ...
fix(api): ...
docs(readme): ...
style(button): ...
refactor(parser): ...
perf(query): ...
test(auth): ...
build(deps): ...
ci(github): ...
chore(release): ...
Subject Line Templates
Features
feat: add [feature]feat(scope): implement [functionality]feat: support [capability]feat: enable [feature]
Fixes
fix: resolve [issue]fix(scope): correct [problem]fix: prevent [error]fix: handle [edge case]
Refactoring
refactor: extract [component]refactor: simplify [logic]refactor: reorganize [structure]refactor: rename [element] to [new name]
Documentation
docs: add [documentation]docs: update [section]docs: improve [content]docs: fix typo in [location]
Best Practices
Subject Line
- Imperative mood: "add" not "added" or "adds"
- No period: at the end
- Length: 50 characters ideal, 72 max
- Capitalize: First letter after type
- Specific: What changed, not how
Body
- Wrap: at 72 characters
- Explain WHY: not what (what is in the diff)
- Context: Provide background
- Bullet points: OK for listing changes
- Blank line: Between subject and body
General
- Atomic commits: One logical change per commit
- Test: Ensure tests pass before committing
- Review: Read the diff before writing message
- Consistent: Follow team conventions
- Meaningful: Help future developers (including you)
Common Mistakes to Avoid
- Vague messages: ❌ "fix stuff" → ✅ "fix: resolve login timeout issue"
- Past tense: ❌ "added feature" → ✅ "add feature"
- Too long: ❌ 100+ character subject lines
- Too generic: ❌ "update code" → ✅ "refactor(auth): extract validation logic"
- No context: ❌ "fix bug" → ✅ "fix(api): handle null values in user input"
Scope Suggestions by Project Type
Frontend
ui,component,layout,style,form,nav,header,footer
Backend
api,auth,db,model,controller,middleware,service
Full Stack
client,server,shared,config,types,utils
DevOps
ci,cd,docker,k8s,deploy,monitoring,logging
Templates for Complex Scenarios
Multiple Related Changes
feat(api): add user profile management endpoints
Implements CRUD operations for user profiles including:
- GET /users/:id/profile - Fetch profile
- PUT /users/:id/profile - Update profile
- POST /users/:id/profile/avatar - Upload avatar
- DELETE /users/:id/profile/avatar - Remove avatar
All endpoints include proper authentication and authorization.
Closes #123, #124, #125
Dependency Update
build(deps): upgrade React from 17.0.2 to 18.2.0
Major version update with breaking changes in:
- Concurrent rendering API
- Automatic batching behavior
- SSR changes
Updated all components to use new createRoot API.
All tests passing with new version.
BREAKING CHANGE: Requires Node.js >= 14.0.0
Emergency Hotfix
fix(security): patch XSS vulnerability in comment rendering
SECURITY: User-submitted comments were not properly sanitized,
allowing script injection attacks.
Solution: Implement DOMPurify sanitization on all user content
before rendering.
Severity: High
Affected versions: 1.0.0 - 1.2.3
Fixed in: 1.2.4
CVE-XXXX-XXXXX
Output Format
<type>(<scope>): <subject>
<body paragraph 1>
<body paragraph 2>
<footer>
Related Skills
git-workflow-guide: For overall git workflowschangelog-generator: For creating changelogs from commitspr-description-generator: For pull request descriptionssemantic-versioning: For version bumping based on commits