Evaluating AI Agents

Everyone evaluates the agent’s loop: its trajectory, its reliability, its tool calls. Almost nobody evaluates the artifact it produces, which is exactly where AI code fails.

Jul 15, 2026

Hardening the Harness

My sixteens Claude Code failure modes, fixed one at a time. Two principles: a guard that fails open is worse than none, and the bug is never in any docs.

Jul 14, 2026

Code, Context, and Me

A self-intro. I work on the controls around AI agents - what they can do, what stays human, and how the system fails when something slips. Here’s how I think, shown through the work, including its limits.

Jun 30, 2026

Using Hooks as Deterministic Guardrail

A rule stated in the markdown is typically followed, but when it’s not, that rule belongs in code that runs before the tool itself.

Jun 21, 2026

Debugging My Agent Guardrails

A guardrail that blocked the workflow it was meant to protect, and a permission rule that was silently dead. Both were bugs in my own config.

Jun 10, 2026

Auditing Agent Self-Truth

Context degradation, silent failure, and miscalibrated escalation look like three separate problems. They’re all the same instrumentation gap.

Jun 7, 2026

Fixing Common Failure Modes in LLM Extraction

Every prompt engineering technique exists because a specific failure mode forced it. Here’s the failure taxonomy, not the technique list.

May 12, 2026

Exploring Claude Code Configuration Stack

CLAUDE.md, path rules, skills, hooks, and headless CI each have their own post. Nobody writes about how they compose or what happens when the stack drifts.

Apr 20, 2026

Debugging Tool Misrouting in LLM Agents

Everyone says ‘fix your tool descriptions.’ Nobody shows how to diagnose which specific failure caused the misroute.

Apr 10, 2026

Protecting The Model's Context Window

stop_reason is six lines of code. The real engineering in agentic systems is protecting what goes into the model’s context window.

Apr 5, 2026