When asked to commit code, follow these steps:
Arguments
check(default): Lint, build, and test the code at step 3, after the prose pass. Stop if any checks fail.force: Skip the check step and commit directly.
Steps
Run these bash commands in parallel to understand the current state:
git statusto see all untracked filesgit diff HEADto see both staged and unstaged changesgit log --oneline -10to see recent commit messages for style consistency
Run the prose pass over the diff: Skill tool with skill="prose-pass". Apply its cuts before staging anything. Do not skip this, however small the diff.
Unless invoked with
force, lint, build, and test the code (lint-build-test). This runs after the prose pass because that pass may rename an identifier or drop a comment lint requires. Stop if any checks fail.If you are on the
mainbranch, create a new feature branch usinggit branchand switch to it.Analyze all changes and draft a commit message:
- Summarize the nature of the changes (new feature, enhancement, bug fix, refactoring, test, docs, etc.)
- Use the conventional commit format:
type(scope): description - Keep the first line under 72 characters
- Do not commit files that likely contain secrets (.env, credentials.json, etc.)
Stage and commit the changes:
- Add relevant files using
git add - Use a plain string for the commit message (do not use HEREDOCs).
- Add relevant files using
Report the results including:
- The commit hash
- The commit message