| name | commit |
| description | Check git status, group changes logically, and propose conventional commits |
| disable-model-invocation | false |
| user-invocable | true |
| allowed-tools | Read, Grep, Glob, Bash(git *), Bash(gh *) |
| model | haiku |
| effort | medium |
| context | fork |
| agent | general-purpose |
$ARGUMENTS
Rules
- NEVER CHAIN COMMANDS
- NEVER USE BASH TO CAT OR ECHO TO WRITE COMMIT MESSAGES — pass messages directly via
git commit -m so no human approval is needed
- NEVER add Co-Authored-By or any authorship attribution to commit messages
- DO NOT USE COMMANDS THAT NEED HUMAN APPROVAL
Process
- Run
git status
- List in memory the untracked files
- List in memory the staged changes
- List in memory the unstaged modifications
- Run
git log --oneline -20 to read recent commit messages. Use this context to understand the codebase evolution, naming conventions, and commit style.
- Group related files into logical units of work. List each group and its files only.
- Order the groups by dependency — foundational changes first, dependent changes after.
- For each group, in order, stage the files and commit following this exact structure:
<commit_format>
type(scope): imperative description (max 50 chars)
If multiple changes warrant it, add a bullet list body:
type(scope): imperative description (max 50 chars)
- change one
- change two
- change three
Default to a single-line commit when possible.
</commit_format>
Commit each group in order, do not ask permission.