Skip to content

categories /

Development

Every agent run is a sample

Run a coding agent twenty times on the same task and you get several different outcomes. Reliability lives in the shape of that distribution, and specs, hooks and retries reshape it. A way to read the shape, a lens on what interventions do to it, and 400 runs of Claude Code on a small Laravel app.

Where should this rule live? Claude Code hooks in a Laravel app

A line in CLAUDE.md is advice that Claude follows most of the time. A hook is a script that runs every time. Five hooks for a Laravel app (Pint, migrations, destructive Artisan commands, Pest, session context), written partly as Artisan commands, and for each one the other places the same rule could live.

Five reasons to write a test, with Pest 5

TDD, regression, characterization, acceptance and smoke tests can look identical in a Pest file. What separates them is the reason they were written, and that reason decides how you read them, name them, and whether you can delete them. A field guide with one running example in Pest 5.

Without evals, every change is a guess

Why an AI agent needs evals before its next prompt or model change, what makes an agent harder to evaluate than a single LLM call, and the task, run and grade loop every eval is built on.