Instructions to an agent are suggestions that it usually follows. A hook is something else: a script that runs every time, no matter what the agent thinks. That is why we use hooks for what must never happen.
The most common example is a hook that looks for passwords and keys before anything is saved. If it finds a secret, the change is stopped. Another hook runs the tests before a commit, so that broken code never reaches the repository.
Hooks are our most important protection against agents leaking secrets. They are included when we set up agentic development for a team.