name: commit description: Stage all changes and commit with appropriate message, showing changed files and edits. Use when you need to create a git commit.
Automatically stage all changes and commit with an appropriate message based on the changes made. Shows a summary of what files were changed and how.
Steps
Show current status before staging:
git status --porcelainStage all changes:
git add .Get changed files for analysis:
git diff --cached --name-onlyGet detailed change summary:
git diff --cached --statAnalyze changes to create commit message:
- Read the changed files to understand the scope of changes
- Look for spec files in
specs/directory that might be related to these changes - Focus on the main functional changes rather than minor refactoring
- Create a concise, descriptive commit message following conventional commit format
- Consider these patterns:
feat: add new featurefix: resolve bug in componentrefactor: reorganize utility functionsdocs: update documentationchore: update dependencies
Commit the changes:
git commit -m "Generated commit message"Show commit summary:
git show --stat --oneline HEAD
Analysis Guidelines
Commit Message Format
- Use conventional commit format:
type: description - Keep it concise and descriptive
- Focus on what the change accomplishes, not how it was done
- Use imperative mood: "add" not "added"
Change Analysis Priority
- Spec files: New/modified files in
specs/indicate major features - Core functionality: API endpoints, UI components, database schemas
- Configuration: Build, dependency, or environment changes
- Documentation: README, AGENT.md, or other doc updates
- Refactoring: Code reorganization without functional changes
Example Output
Files staged for commit:
M apps/web/src/components/TaskList.tsx
A specs/task-filters.md
M packages/ui/src/Button.tsx
D apps/web/src/old-component.tsx
Changes summary:
apps/web/src/components/TaskList.tsx | 15 ++++++++++++---
specs/task-filters.md | 42 +++++++++++++++++++++++++++++++++++++++
packages/ui/src/Button.tsx | 8 ++++----
apps/web/src/old-component.tsx | 23 -----------------------
4 files changed, 58 insertions(+), 26 deletions(-)
Committed: feat: add task filtering functionality
[main abc1234] feat: add task filtering functionality
4 files changed, 58 insertions(+), 26 deletions(-)
Error Handling
- If no changes to commit: "No changes to commit"
- If commit fails: Show the specific git error
- If unable to analyze changes: Use generic commit message with timestamp
File Status Symbols
When showing git status, these symbols indicate:
M= ModifiedA= Added (new file)D= DeletedR= RenamedC= Copied??= Untracked