| name | commit |
| description | Stage all changes and commit them to the current branch with a generated message. |
| argument-hint | [optional guidance about the message or what changed] |
| disable-model-invocation | true |
| model | opus |
| effort | medium |
| allowed-tools | Bash(git add *) Bash(git commit *) Bash(git status *) Bash(git diff *) Bash(git log *) |
Stage everything in the working tree, write a commit message from the actual diff, and commit to the current branch. Do all of it in one pass; do not stop to ask for approval of the message.
$ARGUMENTS, if present, is guidance about intent or emphasis. It tells you why the change was made or what to foreground. It is not the literal message text.
Gather context
Run these together:
git status to see the shape of the change
git diff HEAD to read what actually changed
git log -10 --format='%s%n%n%b' to learn this repo's conventions
Read the diff. The message has to come from what the code does, not from the filenames.
The log read is not optional. Every repo has its own habits, and this repo's recent history is the authority on them. Where its conventions conflict with the defaults below, the repo wins.
If the tree is clean, say so and stop. Do not create an empty commit.
Stage
git add -A.
Write the message
Subject: imperative, sentence case, completing "This commit will…". No conventional-commits prefix, no scope, no trailing period, no emoji.
Body: blank line after the subject, hard-wrapped at about 72 characters. Explain why, and specifically the causal story: what was wrong, why it mattered, what the change removes or unblocks. Cite concrete specifics; a number or a named failure mode carries more than a restatement of the diff. The diff already says what changed, so the body is for what the diff cannot show.
Prose paragraphs by default. Use bullets only when the commit genuinely is a list of independent cleanups. A bare subject with no body is fine for self-explanatory work; a body that only paraphrases the subject is worse than no body.
No em dashes. Use semicolons, commas, or periods.
Do not add Co-Authored-By or session trailers.
Commit
Pass a multi-line message with a heredoc:
git commit -F - <<'EOF'
Subject line here
Body here.
EOF
Commit to the current branch. Never create or switch branches, and never --amend unless asked.
If the commit fails or a pre-commit hook rejects it, report what happened. Do not retry with --no-verify.
Report
Print the subject line and the short SHA.