- name
- commit
- description
- Commit local changes without pushing.
- disable-model-invocation
- true
# Commit — Local Commit Only
Commits local changes to the current branch. Does not push or create a PR.
## Instructions
- **NEVER** push. This skill only creates local commits.
- All user-facing text must use the language the user has been using in the
conversation. Do not default to English.
---
## Stage & Commit
Run `git status --porcelain` and inspect the output:
- **No output** → no local changes. Inform the user and stop.
- **Staged changes exist, no unstaged changes** → proceed directly to commit.
- **Staged changes exist, unstaged changes also exist** → ask the user: commit
only the staged files (**partial**), or stage everything (**full**)?
If **partial**: skip staging (files are already staged).
If **full**: run `git add -A` first.
- **No staged changes, unstaged changes exist** → run `git add -A` to stage
everything, then commit.
Read the staged diff (`git diff --cached`) and generate a commit message
following the project's commit conventions. If no convention is found, default
to a concise English message under 120 characters ending with a period, with no other punctuation, focusing on user-perceivable changes.
Commit, then output a single line in the format:
`已提交 {short_hash}:{commit message}`
If the user chose **partial**, also inform them that unstaged changes remain
and were not included in this commit.
View on GitHub