Commit current work
Instructions
- Check Status: Run the following commands to understand the current state:
- git status --short - git diff --stat - git log --oneline -3
- Analyze Changes:
- Review the output to understand what has changed. - If git diff doesn't provide enough info (e.g., new files), read the files or use your working memory. - Determine if the work should be split into multiple logical commits.
- Stage Changes:
- New/modified files: git add <file1> <file2>... - Deleted files: git add -u <path> (plain git add fails on paths no longer on disk) - Mixed (new + deleted): combine both commands, or use git add -u for deletions then git add for new files
- Commit:
- For each logical change, write a commit message in the following format: - Short title description (< 80 characters) - 2~3 bullet points (< 80 characters) with a quick description - For single-line messages: git commit -m "subject line" - For multi-line messages (sandbox-safe, NEVER use heredoc): mkdir -p "$TMPDIR" && printf '%s\n' "subject line" "" "- bullet 1" "- bullet 2" > "$TMPDIR/commit_msg.txt" && git commit -F "$TMPDIR/commit_msg.txt"
Important Notes
- Prepend
GIT_EDITOR=trueto all git commands you run, especially the ones looking at diffs, to avoid blocking. - If you're at the start of the session, use subagents to summarize changes made by others if needed.
- Only commit work when instructed or when a task is complete.
Optional: Ask me if I would like to push the commit.