Context
- •Staged diff: !
git diff --staged - •Branch: !
git branch --show-current - •Recent commits: !
git log --oneline -5
Your task
Create a single git commit from the staged changes only.
Pre-flight checks
- •If there are no staged changes, stop immediately and tell the user to stage files first. Do nothing else.
- •Never run
git add. Never rungit push. Only commit what is already staged.
Commit message format
Follow Conventional Commits (https://www.conventionalcommits.org/en/v1.0.0/):
code
<type>(<optional scope>): <description> [optional body]
Types:
- •feat – new capability
- •fix – bug fix
- •docs – documentation only
- •refactor – restructuring without functional change
- •test – test creation or modification
- •chore – routine maintenance (including dependencies)
- •build – build system or external dependencies
- •perf – performance improvement
- •ci – CI/CD changes
Append ! after the type/scope for breaking changes (e.g. feat!: change API response format).
Rules
- •Infer the correct type from the diff.
- •Write a concise description (lowercase, imperative mood, no period).
- •Add a body only when the diff is non-trivial and the "why" isn't obvious from the description.
- •Body: wrap at 72 characters, explain why not what.
- •Match the style and tone of the recent commits shown above.
- •Use a HEREDOC to pass the message to
git commit -m. - •Do not send any text besides the tool calls.