--- name: commit description: Create a well-formatted conventional commit disable-model-invocation: true --- # Commit ## Overview Create a well-formatted, conventional commit locally. **Do NOT push unless the user explicitly asks to push.** ## Steps ### 1. Format Changed Files Run [format command](./format.md) on all changed C++ files before staging. ### 2. Stage Changes ```bash git add ``` Or stage all changes: ```bash git add -A ``` Review what's staged: ```bash git diff --cached --stat ``` ### 3. Write Commit Message Use a temp file to avoid shell escaping issues (`output/` is gitignored): ```bash mkdir -p output/.cursor ``` Write the commit message to `output/.cursor/commit_msg.txt` following the [commit convention](../rules/commit-convention.mdc). ### 4. Commit ```bash git commit -F output/.cursor/commit_msg.txt rm -r output/.cursor ``` ### 5. Push (only if user explicitly requests) Only push when the user says "push", "commit and push", or similar. Otherwise, stop after step 4. ```bash git push ``` If the branch has no upstream yet: ```bash git push -u origin HEAD ```