Commit changes to a project with git. Use this skill anytime the user requests for changes to be committed or you are committing changes agentically.
NEVER prefix the subject with a Conventional Commits type. No feat:, fix:, docs:, chore:, refactor:, style:, test:, ci:, build:, perf:, or any other type: prefix. Subjects that start with a type prefix are WRONG. Strip them.
Always write the commit message to a tempfile and pass it via git commit -F <file>. This avoids shell escaping issues with quotes, backticks, and special characters. Use a timestamped filename in ~/tmp/ (e.g. ~/tmp/commit-msg-$(date +%s%N).txt) to prevent collisions between concurrent agents. Delete the tempfile after the commit succeeds.
BREAKING CHANGE:Simplify serialize.h's exception handling
As exceptmask always included 'failbit', and setstate was always
called with bits = failbit, all it did was immediately raise an
exception. Get rid of those variables, and replace the setstate
with direct exception throwing (which also removes some dead
code).
git diff --staged to review changesgit add -p if neededfeat:, fix:, etc.)