How I work with agents.

A loop, not a magic incantation. Each step exists because I've felt the cost of skipping it.

01

Frame the change

Before any model sees a prompt, I write what I'm trying to do, who it's for, and what "done" looks like. Two or three paragraphs in a scratchpad. If I can't write it down clearly, I'm not ready to ask an agent to do it.

Markdownscratchpadlinear
02

Scout the codebase

I let Claude Code read first and write later. The first session is always exploratory — list files, summarize modules, draft a plan with file paths attached. The output of this step is a written plan, not code.

Claude Coderipgreptree
03

Tighten the scaffold

Most agent failures are environment failures. I make sure types, tests, lints and CI run locally before the first edit, so the agent can self-correct against ground truth instead of vibes.

pre-commitvitestmypybiome
04

Edit in small, reversible turns

One feature, one branch, one commit per coherent change. The agent moves at the speed of the verifier; if I can't roll a turn back in one keystroke I've made it too big.

git worktreejujutsu
05

Verify, then trust

Tests for the happy path. Property-based or fuzz tests for the boundary. A human reading of anything touching auth, money, or destructive state. Trust scales after verification, never before.

hypothesisfast-check
06

Capture the recipe

If a workflow worked once, I write it down as a skill or recipe so the next session starts further along. Over time these compound into agent-eng.

agent-engClaude skills

None of this is rocket science. It's just the part most demos skip — and the part that turns a flashy autocomplete into something you'd actually let near production code.