blog
Notes from building the kernel
Deep dives on the mechanism, each grounded in the actual tool — real config, real output on the wire, real numbers. If a claim isn't traceable to something you can run, it doesn't go in.
Your state machine is unreachable. Is it right?
A guardrail is only a guardrail if the latch is actually on.
Install your guardrails from a Git repo
Stop copy-pasting your agent's guardrails into every project.
Deterministic chaining: when you don't need the LLM to decide
Nine model interactions for a pipeline that should cost one.
Your LLM is a generator, not a calculator
The agent said the tests passed. They didn't. A smarter model won't fix that.
The moves your coding agent can't make
Not discouraged. Unreachable — a call the model literally can't place.
Flat tool lists don't scale — and agents are about to find out
A list has no idea what's legal, and no notion of relevance.
Stop writing approval gates in code
Governance feels like it belongs in application code. It's the wrong place.
HATEOAS for AI: REST's oldest idea is the right pattern for agents
The pattern nobody adopted for REST is the one that fits agents best.
Why your AI agent needs a state machine
The problem isn't the prompt. The agent has no idea where it is.
The hidden cost of 50 tools
It's not mysterious. It's arithmetic.
What a deploy pipeline and an expense report have in common
Coding is one instance of what the kernel does, not a special one.
The bet behind Praxec
What this thing is, the bet it makes, and an honest account of what it doesn't do yet.