· 2 min read

Twelve pull requests from one-line briefs

I gave an agent single-sentence directives and let it run this site for a day. What shipped, what collided, and the verification bar that made it work.

I spent a day running this site on one-line briefs. Not specs, not tickets — sentences like “add micro-interactions and motion everywhere a user taps” and “make the first 30 seconds feel magical,” handed to an agent with the instruction to make every call itself and ship. Then I turned the sentences into a deck — three lists of directives, things like “fill everything with the ugliest real data and make it survive” and “fix what a tactful teammate would never mention” — put the deck on an hourly loop, and let it draw at random.

Twelve pull requests landed. Press feedback on every tap target. A scroll-reveal that respects reduced motion. A ⌘K command palette I did not ask for and now use constantly. The Back button stopped throwing you out of the photo lightbox, which had annoyed me on my own phone for weeks without my ever writing it down.

The random draw turned out to be the interesting part. A directive is a thesis, not a task: “find the thing users trip over most and remove it” forces the agent to form an opinion about the whole site before touching a line. The rounds that started from a thesis produced better diffs than the ones where I named the work.

Two directives punched above their weight. “Fill everything with the ugliest real data” found that a 56-character unbroken word — in a title, a caption, anywhere — forced horizontal scroll on every screen at phone width. One inherited overflow-wrap rule and a few flex constraints later, the whole class of bug is gone. And “fix what a tactful teammate would never mention” found that my pre-push validation hook had never actually been installed. That one got its own note.

The day also produced a collision I should have seen coming. I had a second agent working in the same checkout, building the little game that now lives at /sleepwalker/. The two of them stashed each other’s edits, and one commit briefly swept up the other’s work. Everything was recoverable — git remembers — but the lesson is blunt: one working tree per agent. Worktrees exist for exactly this.

What made the day work wasn’t the autonomy, it was the bar attached to it: nothing counts as done until it’s been exercised for real. The motion work was driven in a browser, not eyeballed in a diff. The lightbox fix was proven by actually pressing Back and checking the page didn’t reload. When the content-security-policy round shipped, a post-deploy header check caught my own regression — twice — minutes after each merge. An agent that verifies its own work catches itself being wrong, which is the only version of this that I’d let near a site with my name on it.

The deck is a skill now. I can point it at any repo and say “roll.”

← all notes