PostToolUse on an editing tool records the blob id of the written file for attribution and takes a working-tree snapshot; on a
git commit it writes the session note. UserPromptSubmit records the intent once per session and prints nothing.
Output contract: exit 0 allows the call; exit 2 blocks it and Claude Code feeds stderr back to the model as the reason. gitvow never writes to stdout from a hook.
Settings entries
gitvow install merges these into settings.json:
gitvow hook prefix, so install is idempotent and uninstall removes only these.