If you attack a developer, bear the consequences. Willingly download malware from an attacker's server that changes its domain every few days wasn't on my 2026 bingo card, but here we are. https://richardkovacs.dev/blog/reverse-engineering-malware-with-my-ai-agent
Richard Kovacs
Richard Kovacs
@richardkovacs.dev
Full-stack developer & security trainer by day, working on side projects by night | Posting about both | Building fyzz.chat
637 followers88 following184 posts
Prompts are suggestions. Hooks are guarantees. When your agent violates a rule, instead of thinking "I should add this to CLAUDE.md" you should ask the following question: How can I prevent/ensure this behavior with a deterministic hook? Then sit back and relax. You did it.
I don't start new TypeScript projects without klint anymore. Guaranteeing architecture rules in agent hooks is just too powerful. Try it here, it's open source: https://klint.dev
Most of the above have nothing to do with coding. If you only code with Claude Code, you miss about 94,6% of its entire feature set. If you want Your Claude to do the same, install PAL around it. https://github.com/kovrichard/portable-agent-layer
For me, hooks are the thing that turned vibe coding into agentic engineering. CLAUDE.md is good, but it is often ignored. It is essentially just a suggestion. But hooks are always there, and they are deterministic. I build all of my agentic tooling around hooks.