Back to thoughts
Lesson
Thắng Đoàn
Thắng Đoàn

I used hooks as guardrails but never asked what happens when the hook itself fails. Turns out the default was: the action runs anyway. The safety net had a hole exactly where I never looked. Now I audit every guardrail by asking what it does on error, not just what it blocks when it works.

How I stop failed hooks from breaking my Claude Code runs