Skills vs hooks: guidance or guarantees
A skill guides what Claude does; a hook runs a command at a fixed point every time. When a rule needs a guarantee rather than a good chance of being followed.
A skill makes the right behaviour very likely. A hook makes a check certain. Knowing which a rule needs saves a lot of frustration.
| Skill | Hook | |
|---|---|---|
| Nature | Instructions Claude follows | A command that always runs |
| Guarantee | High likelihood | Every time, at a fixed point |
| Good for | Judgement: layout, tone, structure | Checks: format, lint, forbidden paths |
Our own no-em-dash rule shows both halves: the writing guidance says not to use them, and a mechanical check fails the build if one appears. The guidance gets the work right most of the time; the check catches the rest. Other comparisons are in skills vs subagents and skills vs slash commands.
Questions
What is a hook in Claude Code?
A command configured to run automatically at a point in Claude Code's lifecycle, such as before or after a tool is used. It runs every time, whatever the model decides.
When should a rule be a hook rather than a skill?
When breaking it is unacceptable and it can be checked by a command: formatting, a banned file path, a test that must pass.
Can a skill and a hook work together?
Yes. The skill explains the standard so the work starts right; the hook checks it so nothing slips through.