| name | commit-push |
| description | commit and push all local changes to remote repo |
| disable-model-invocation | true |
Commit and Push
Commit all local changes following Conventional Commits format and push to remote.
Step 1: Gather Context
Run these commands in parallel to understand the changes:
git status
git diff
git diff --cached
git log --oneline -10
Step 2: Analyze Changes
Review the changes and determine:
-
Type: What kind of change is this?
feat - New feature or capability
fix - Bug fix
docs - Documentation only
refactor - Code restructure without behavior change
test - Adding or updating tests
chore - Maintenance, dependency updates
perf - Performance improvement
ci - CI/CD changes
-
Scope: Which component is affected?
- Examine the changed files and determine the appropriate scope
- Use consistent scope names within the project (check
git log for patterns)
- (omit scope for cross-cutting changes)
-
Breaking: Does this break backward compatibility? If yes, add ! after scope.
Step 3: Write Commit Message
Format:
type(scope): description
[optional body explaining why, not what]
[optional footer with issue references]
Rules:
- Use imperative mood: "add feature" not "added feature"
- Keep first line under 72 characters
- Focus on why in the body, the diff shows what
- Reference issues:
Closes #123 or Fixes #456
Step 4: Stage, Commit, and Push
git add -A
git commit -m "$(cat <<'EOF'
type(scope): description
Optional body explaining the motivation.
Closes #123
Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
git push
Examples
git commit -m "feat(api): add pagination support to list endpoints"
git commit -m "$(cat <<'EOF'
fix(auth): handle token expiration during long requests
The previous implementation did not account for tokens expiring
during the processing of long-running requests.
Fixes #42
Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
git commit -m "$(cat <<'EOF'
feat!(api): change response format for user endpoints
BREAKING CHANGE: The `status` field is now an object with `state` and
`message` properties instead of a plain string.
Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
Step 5: Verify
After pushing, run git status to confirm the working tree is clean and the branch is up to date with remote.