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.