The Four Claude Code Hooks I Run on Every Project
Four Claude Code hooks I run, plus a decoder for hook errors: Stop hook error: JSON validation failed, denied by PreToolUse hook, No such file or directory.
We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
Writing · Tag
31 posts on AI tools, page 2 of 3. Or browse the full writing index →
Four Claude Code hooks I run, plus a decoder for hook errors: Stop hook error: JSON validation failed, denied by PreToolUse hook, No such file or directory.
Where TDD with Claude Code actually holds up in an Elixir/Phoenix codebase (ExUnit async, mix precommit, Ecto.Multi idempotency) and where it breaks.
The CLAUDE.md entries that actually earned their place on a real project: mistake-driven rules, not a speculative template you copy once and forget.
My team's $200 AI coding seats consume $1,800–$3,500 of API-priced tokens a month. The 10–17x arbitrage nobody prices in, and how to budget for it.
I open-sourced the AI operating system I run daily: a git-versioned markdown vault, cross-repo wiring, and a nightly ingest loop. Fifteen minutes to set up.
Your accumulated agent memory is a bet on one vendor's format. Build a portable, git-versioned knowledge layer any agent can read instead.
The Claude Code plugins that earn a permanent slot in my stack, sorted by what they actually change: my process, my domain expertise, or just friction.
An homage to Peter Welch's Programming Sucks, updated for agents: a genius intern with amnesia, hallucinated packages, and a closet that eats your auth layer.
A markdown knowledge base your AI agent reads and maintains: the three-layer architecture, the ingest/query/lint loop, and the rules that stop it rotting.
A CLAUDE.md is executable tribal knowledge: the onboarding doc you never wrote for humans, finally read by something that acts on it.
Eight failure patterns I see running AI coding agents daily: the confident wrong answers, the lost context, and the bugs they reliably ship.
The Hex packages I install on day one of a new Elixir project in 2026, what each one earns its place doing, and the ones I dropped along the way.