Install
openclaw skills install commit-pushcommit and push all local changes to remote repo
openclaw skills install commit-pushCommit all local changes following Conventional Commits format and push to remote.
Complete in order. Do not run the next action until the Pass condition is satisfied (use command output as evidence, not memory).
git status, git diff, and git diff --cached are consistent with your one-sentence description of what changed (or you recorded that there is nothing to commit).type(scope): description (or type: description if omitting scope) that matches the change set you intend to ship.git add, git diff --cached --stat (and spot-check git diff --cached if needed) shows only the paths you meant to include; adjust staging before committing if not.git branch -vv, git remote -v); then push.git status is clean and git status -sb shows the branch is up to date with its configured upstream (no unexpected unpushed commits left for this task).Run these commands in parallel to understand the changes:
# See all untracked and modified files
git status
# See staged and unstaged changes
git diff
git diff --cached
# See recent commit messages for style reference
git log --oneline -10
Review the changes and determine:
Type: What kind of change is this?
feat - New feature or capabilityfix - Bug fixdocs - Documentation onlyrefactor - Code restructure without behavior changetest - Adding or updating testschore - Maintenance, dependency updatesperf - Performance improvementci - CI/CD changesScope: Which component is affected?
git log for patterns)Breaking: Does this break backward compatibility? If yes, add ! after scope.
Format:
type(scope): description
[optional body explaining why, not what]
[optional footer with issue references]
Rules:
Closes #123 or Fixes #456Satisfy Gates 1–3 before git commit; satisfy Gate 4 before git push; satisfy Gate 5 after push.
# Stage all changes (or selectively stage)
git add -A
# Gate 3: confirm staged set before committing
git diff --cached --stat
# Commit with message (use HEREDOC for multi-line)
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
)"
# Push to remote
git push
# Simple feature
git commit -m "feat(api): add pagination support to list endpoints"
# Bug fix with body
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
)"
# Breaking change
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
)"
After pushing, satisfy Gate 5: run git status and git status -sb and confirm a clean tree and upstream sync (or an expected ahead/behind you can explain, e.g. fork workflow).