How much work was left when the agent wrote all the code
YT Music Album Sorter is a small Chrome extension I built for myself. It lets you arrange the albums you've saved in YouTube Music, putting them in an order you choose and grouping them into named sections. I wrote about why I wanted this in an earlier article. Building it was also an experiment. An agent would write all the code, and I would not read any of it.
That rule held. I haven't read a single line of the generated code. What I did instead turned out to be far more than I expected.
The experiment
I'd been experimenting with AI coding tools, and this looked like an easy, self-contained app. I'd never built a Chrome extension. I wanted to find out how I could judge the quality of what we made while handing over the implementation.
The agent removed a considerable part of the challenge of learning the Google Cloud setup and how to prepare an extension for publishing. It wrote the store listing and generated the icons. I uploaded the ZIP file to the Chrome extension dashboard by hand.
But the first version was a long way from being ready to release. I've spent a lot of time using the app, testing it, suggesting changes and polishing the design.
The startup screen
The startup screen was one place where using the app showed me what still needed work. It asks whether to synchronise sort settings across browsers and computers or keep them in this browser. On the agent's first attempt, that prompt was just lost on the screen. Nothing made it clear that the user was being asked to choose anything. I saw it immediately, and I could see that a user who didn't would get stuck.
There was also more on the screen than needed to be there. It showed the name of the file where the sort settings were stored, which the user has no reason to know. And it asked the user to initiate synchronisation manually, a step the app could handle automatically.
Behind that screen sat a design decision the agent and I had worked through together. I wanted the sort order to follow the user between browsers and machines, and I didn't know what the options were. Finding that out would have taken me a long time. The agent laid out several possibilities that I could evaluate from the user's perspective.
An earlier approach required a cloud drive folder to be set up on the user's computer. That felt clunky for an app intended to arrange some albums. Using Google Drive directly avoided that requirement. Users grant permission during onboarding, and the app handles the file storage.
The local-or-sync choice is now clearer. The app remembers the answer and, if the user chooses to sync, does so automatically when the sort order changes or an album is added. There is less for the user to read and less for them to do.
What I had underestimated
Sometimes I pointed out a problem and the agent suggested the fix. Sometimes I suggested the fix and asked the agent for its view. What worked was the combination of my intuition about what a user would appreciate and the agent's knowledge of what was possible. We arrived at improvements through that discussion.
Even with that help, it hasn't felt quick or easy. It doesn't feel like the one-shot application building I sometimes hear about on YouTube.
What I had underestimated was how much experience goes into a first draft when I write it myself. I accommodate subtle user interactions without really thinking about them. It's only when I watch somebody or something else address the same problem that I notice that's not how I would have done it, and that there was a decision there at all.
davis@stephen.net
This is such an interesting take on Coding in AI. Reassuring in someways that skill is still required. Interesting challenge as a coder to let go of reading all code completely.