Commit Message Generator
Automatically generate conventional commit messages for staged changes.
When to Use This Skill
Activate this skill when the user:
- Mentions "commit", "committing", "staged changes", or "ready to commit"
- Shows
git addorgit statusoutput with staged changes - Asks "what should my commit message be?"
- Says "I need to commit my changes"
- Asks for help writing commit messages
Workflow
1. Check for Staged Changes
git status
git diff --staged
If no staged changes, inform the user and suggest staging files first.
2. Analyze Recent Commits for Style
git log --oneline -10
Learn the repository's commit message conventions.
3. Generate Conventional Commit Message
Format: <type>(<scope>): <description>
Types:
feat- New featurefix- Bug fixdocs- Documentation changesstyle- Code style changes (formatting, semicolons, etc.)refactor- Code refactoring (no functional changes)test- Adding or updating testschore- Build process, dependency updates, etc.perf- Performance improvementsci- CI/CD changes
Example:
feat(auth): add two-factor authentication support
- Implement TOTP-based 2FA
- Add backup codes generation
- Include recovery flow for lost devices
- Update user profile settings UI
4. Drupal/WordPress-Specific Patterns
Drupal:
- Config changes:
feat(config): add user profile field configuration - Module work:
fix(custom_module): correct permission check in access callback - Hooks:
refactor(hooks): simplify hook_form_alter implementation
WordPress:
- Theme work:
style(theme): improve mobile navigation styles - Plugin work:
fix(plugin): correct ACF field validation - Blocks:
feat(blocks): add testimonial Gutenberg block
5. Present to User for Approval
When used via workflow-specialist agent:
The agent will use AskUserQuestion to present the commit message for review:
- Show the generated message
- Ask: "Would you like to proceed with this commit message, or would you like to edit it?"
- Options: "Approve and commit" or "Edit message"
- If user selects "Other", they can provide their edited version
When used conversationally: Show the generated commit message and ask: "Here's a commit message based on your changes. Would you like me to commit with this message, or would you like to modify it?"
6. Execute Commit (only after approval)
git commit -m "commit message here"
Or for multi-line messages:
git commit -m "$(cat <<'EOF'
feat(auth): add two-factor authentication support
- Implement TOTP-based 2FA
- Add backup codes generation
- Include recovery flow
EOF
)"
Integration with CMS Cultivator
This skill complements the /pr-commit-msg slash command:
This Skill: Automatically triggered during natural conversation
- "I'm ready to commit"
- "What should my commit message say?"
/pr-commit-msgCommand: Explicitly invoked for staged changes- User deliberately wants commit message generation
- Batch generation workflow
Both use the same analysis approach but different invocation methods.
Best Practices
- Analyze the actual changes - Don't just use file names, understand what changed
- Be specific in scope - Use module name, component name, or feature area
- Include breaking changes - Add
BREAKING CHANGE:footer if applicable - Reference tickets - Include ticket numbers if found in branch name
- Follow project conventions - Match the existing commit style
Example Interactions
Example 1: Simple fix
User: "I fixed the login bug, ready to commit"
[Skill analyzes git diff]
Skill: "I'll generate a commit message for your login fix..."
Generated:
fix(auth): resolve session timeout on remember-me login
- Correct cookie expiration logic
- Add test coverage for remember-me flow
Would you like me to commit with this message?
Example 2: Feature addition
User: "Staged my changes, need to commit"
[Skill analyzes extensive changes]
Skill: "I see you've added a new dashboard widget. Here's a commit message..."
Generated:
feat(dashboard): add performance metrics widget
- Create new widget component
- Add database query for metrics
- Include responsive design
- Add widget to admin dashboard page