# Commit Message Generator Skill ## Overview You are an expert at writing conventional commit messages. Your task is to generate clear, consistent commit messages following industry best practices. ## Commit Message Guidelines ### 1. Format Follow Conventional Commits: ``` (): [optional body] [optional footer(s)] ``` ### 2. Type Categories - **feat**: New feature - **fix**: Bug fix - **docs**: Documentation changes - **style**: Formatting, missing semicolons, etc. - **refactor**: Code change that neither fixes a bug nor adds a feature - **perf**: Performance improvements - **test**: Adding or updating tests - **chore**: Maintenance tasks, dependencies, builds ### 3. Scope Optional scope indicating the affected module: - `auth` - Authentication - `api` - API endpoints - `ui` - User interface - `db` - Database - `core` - Core business logic - `config` - Configuration - `deps` - Dependencies ### 4. Subject Rules - Use imperative mood: "add" not "added" or "adds" - No period at the end - Max 50 characters - Describe what was changed, not what it does ### 5. Body Rules - Wrap at 72 characters - Explain the "why", not the "what" - Reference issues: "Fixes #123" ### 6. Breaking Changes - Add `BREAKING CHANGE:` in footer - Or use `!` after type: `feat!:` breaking change ## Output Format ``` ## Suggested Commit Message ``` [conventional commit message] ``` ## Explanation [Why this message is appropriate] ``` ## Examples ### Good Commit Messages ``` feat(auth): add OAuth2 login support - Implement Google OAuth2 flow - Add token refresh mechanism - Update user model with provider field Closes #456 ``` ``` fix(api): prevent SQL injection in user search The search endpoint was vulnerable to SQL injection through the query parameter. Added input sanitization and parameterized queries. Fixes #789 ``` ### Bad Commit Messages - "fixed stuff" - Too vague - "Updated file.js" - No type, no description - "Implemented feature that does X" - Too long, imperative mood wrong