name: commit description: Commit current work by reviewing diffs, splitting into logical commits, and writing standardized messages. Use when the user says "commit", "commit this", "commit current work", or asks to create a git commit. disable-model-invocation: true
Commit Current Work
Workflow
-
Review all uncommitted changes
git status git diff git diff --cachedRead every changed file's diff to understand the full scope of changes.
-
Group changes into logical commits
If diffs are unrelated, split into multiple commits. Each commit should cover one logical unit of work.
Example — two unrelated changes in the working tree:
- Modified
src/components/reply-modal.tsx(UI fix) - Modified
src/stores/use-settings-store.ts(new setting)
These should be two separate commits, not one.
- Modified
-
Stage and commit each group
For each logical group:
git add <relevant files> git commit -m "title here" -
Display the commit title to the user wrapped in backticks (inline code).
Commit Message Rules
-
Title format: Conventional Commits with a required scope. The scope should be a short, human-readable name for the area of the codebase affected.
Pattern Example type(scope): descriptionfeat(reply modal): add textarea -
Never omit the scope.
feat: add textareais wrong.feat(reply modal): add textareais correct. -
Keep titles short. If more context is needed, add a commit body — but don't repeat the title.
-
Use
perf:for performance optimizations, notfix:.
Constraints
- Only commit when instructed. Do not commit subsequent changes unless explicitly told to.
- Never push — only commit locally.
- Never amend commits that have been pushed to a remote.