2.9 KiB
2.9 KiB
description: Generate conventional commit message from staged changes
argument-hint: [type] [scope] [--breaking]
allowed-tools: Bash(git:*)
model: haiku
Context
Current git status:
!git status
Staged changes:
!git diff --cached --stat
Diff details:
!git diff --cached
Recent commits for style reference:
!git log -5 --oneline
Instructions
Analyze the staged changes and create a commit message following this structure:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Commit Types
Use these standard types based on the changes:
- feat: New feature for the user (correlates to MINOR in semantic versioning)
- fix: Bug fix for the user (correlates to PATCH)
- docs: Documentation only changes
- style: Changes that don't affect code meaning (white-space, formatting, missing semi-colons)
- refactor: Code change that neither fixes a bug nor adds a feature
- perf: Code change that improves performance
- test: Adding missing tests or correcting existing tests
- build: Changes to build system or external dependencies
- ci: Changes to CI configuration files and scripts
- chore: Other changes that don't modify src or test files
- revert: Reverts a previous commit
Requirements
- Type: MUST be one of the types above
- Scope: OPTIONAL, indicates what part of codebase is affected (e.g.,
parser,api,ui) - Description: REQUIRED, short summary in present tense, lowercase, no period at end
- Body: OPTIONAL, provides additional context. Use when:
- Changes are non-trivial
- Multiple files or concerns are affected
- Implementation details would help reviewers
- Footer: OPTIONAL, used for:
- Breaking changes:
BREAKING CHANGE: <description> - Issue references:
Fixes #123,Closes #456 - Co-authors:
Co-authored-by: Name <email>
- Breaking changes:
Breaking Changes
If changes include breaking changes, indicate via:
- Add
!after type/scope:feat(api)!: remove deprecated endpoints - OR add footer:
BREAKING CHANGE: API v1 endpoints removed
Best Practices
- Keep description under 50 characters when possible
- Use imperative mood: "add feature" not "added feature" or "adds feature"
- Don't capitalize first letter of description
- No period at end of description
- Separate body from description with blank line
- Wrap body at 72 characters
- Explain what and why, not how
- Reference issues and PRs in footer
Output Format
Provide the commit message in a code block that can be copied directly. Include explanation of your choices below the commit message.
Arguments:
- If $ARGUMENTS provided, use them as guidance (e.g., "/commit feat auth" suggests feat type with auth scope)
- If "--breaking" flag present, ensure breaking change is indicated
- Otherwise, analyze changes automatically
Generate the commit message now.