trending
Joe Degler

17h ago

Hooks don't just have to be blockers

I think there's a lot of depth in the way you can actually set up sophisticated workflows using hooks. This reaches from simple, human-centered improvements to fully automated, keyword-controlled agentic pipelines.

One of the more core issues about agent workflows is that it's hard to programmatically enforce behaviour in an environment where you're not sure what the output is. A colleague of mine set up an in-depth keyword system, forcing claude to end his turns starting with a keyword. These keywords mapped to certain stages or actions that took part in the flow - such as "PLANNED", "IMPLEMENTED", "DONE" etc. - If that keyword was missing, clooks would throw an error reminding the agent to stick to the keywords. And if that keyword was present, more complex logic could be run. "DONE" could lead into a hook starting normal and E2E tests, confirming that what was just implemented passed all existing and new tests.

Joe Degler

13h ago

Clooks - Claude Code hooks that don't break silently

Clooks is a TypeScript hook runtime for Claude Code - because wiring shell commands into JSON and hoping every guardrail behaves isn't good enough. If a hook crashes, the action can still slip through, risky command and all. Clooks gives you typed context, reusable config, clear execution order, and team-wide guardrails that live in your repo. Write the hook once. If it breaks, the agent stops.