9 min

Write it down once

Most of what makes Claude Code work for me isn't prompting, it's a few files I wrote once: a plan-mode habit, a /simplify pass welded onto /commit, a hook that won't let me hand-write a commit, and a CLAUDE.md that's mostly scar tissue.

AI Tooling
7 min

Documentation for the you who forgot

I came back to a project after 14 months and found two notes I'd left myself, in the same file, in the same voice, and one of them saved me 40 minutes and the other cost me an hour and a half.

Documentation AI
7 min

srcset, revisited

The exact bug I wrote about in 2018, on a site built last year, by a competent team, with a modern pipeline. Which tells you which parts of this got fixed in eight years.

Images Responsive Performance
16 min

It said it was working

Porting a Claude Code safety tool from Linux to macOS turned into six weeks of discovering that nearly every failure mode on the new platform was silent, and that the tool's own adversarial test suite was the only reason I could see any of them.

Security Tooling
8 min

The junior and the agent

Eight months into their first job, they fixed in 40 minutes a bug that would have taken me two days at that stage. Then they couldn't tell me why the fix worked.

AI Careers
8 min

Stop and ask me

Three Claude skills cover the whole life of a Shopify client repo at work, and after writing all three I'm fairly sure the steps are the least valuable thing in them. The value is the four or five places where the runbook is told to refuse.

AI Shopify
6 min

What an RSS feed is for

Somebody who has been building websites for two years asked me what the orange icon in the footer did, and I gave an answer that was mostly about 2007, which was no use to them at all.

Culture
9 min

The repo with no code in it

Our template for new Shopify projects ships zero theme code, and the useful part turned out not to be the scaffolding at all but the taxonomy underneath it: which files the template owns, which the client owns, and which ones nobody should have shipped in the first place.

Shopify Tooling
6 min

The blogroll

I found a writer I now read constantly because of a link at the bottom of somebody else's post, and it took me a day to work out why that felt unusual, which is that almost nothing reaches me that way any more.

Culture
6 min

Style queries

Five surface variants, four child elements, and 20 selectors that existed only to tell a child which parent it was in. Style queries delete the whole grid of them. That isn't quite the same as saying you needed them.

CSS
9 min

Whoever gets there

The alignment people and the stay-ahead-of-China people are both right. Inconvenient. I still land on keeping our foot down while building the safeguards into the same motion.

AI Culture
9 min

Fail closed

How our Shopify theme deploys went from someone running a push command on a laptop to one repo of reusable GitHub Actions workflows, and the backup-cleanup bug that had to get wrong three times before I stopped trying to be clever about it.

Shopify Tooling