precommit hook