Writing

Posts on building AI tooling, shipping product, and the craft of PM work.

Playbooks

Frameworks, teardowns, and arguments from building agents and PM tooling.

The dashboard builds itself

A weekend prototype: an analytics agent that writes the SQL, runs it, and draws a dashboard in a design system I built, on the fly. What generative UI is, and where the boundary has to go.

Whack-a-mole is the wrong game

Building AI agents keeps surfacing problems I already worked through making games. Two of them, and the fix that worked for both.

Ultracode Ate My Harness

I spent maybe a month building a five-agent harness. Then Claude Code shipped dynamic workflows that do the orchestration for free, so I raced my harness against one. On correctness they tied. The only edge my harness kept was its rubric, and a rubric is a prompt.

What I've Learned Building Agents

A year of building AI agents, four rules of thumb I keep coming back to, and the one that ties the other three together.

The Persona Trap

Most agent-design advice tells me to give my agents personas. The research says don't. Or at least, not the way most agent tooling assumes.

Skills or Subagents

Every agent I build hits the same fork in the road. New capability needed. Should it run in the agent's context or in its own?

The Multi-Agent Default Is Don't

The first thing most PMs want to do with agents is build a team of them. The research mostly says don't. Here's when that's right, and when it isn't.

Autobots: An Agent Harness

Anthropic published the Planner/Generator/Evaluator pattern for long-running app development. My harness inherits the pattern and adds a Plan-Critic, an adjudicating Lead, and the engagement layer that keeps me looped in.

Scaffolding for Claude Code

Four pieces of scaffolding I've built around Claude Code to turn one-off sessions into consistent work. A docs tree, a dotfiles repo, a skills layer, and a preview loop.

Field Notes

Firsthand notes on what the work actually feels like right now.

Context Monkey

Some days I feel like Claude's context monkey. The way I do my PM work has shifted, and I haven't fully sat with what it means.

Two Sessions, One Inbox

I'm not an engineer, so I don't know what I don't know until I shoot myself with a footgun. Last week: two Claude sessions, one inbox, and a race I didn't see coming.

Slack Agent Side Quest

I solo-built an AI Slack agent for my team this year and didn't write a single line of code. A year ago that sentence would've been an oxymoron.