Choosing Is the Work
An agent can hand me three working versions of the same feature in the time it used to take me to write one. All three pass the tests. One adds a small abstraction “for flexibility”, one inlines everything, one introduces a new retry helper next to the two we already have. Nothing in the diff tells me which to merge. That decision used to be buried inside the act of writing. Now it is the main part left.
Two skills do that choosing, and they are not the same. Judgment is knowing what an acceptable answer has to satisfy: the constraints, the failure modes, the parts of the system this change must not touch. Taste is knowing which of the acceptable answers fits this codebase, this team, and the person who will read it in a year. Judgment rules out the wrong answers. Taste picks among the right ones.
Writing code used to filter our options for us. Every alternative cost hours, so we only built the ones we could already defend. That filter is gone. The agent produces plausible code by default, and plausible is close to the median of everything it has seen. Each default is reasonable on its own. Accept enough of them and the system starts to drift: a third way to fetch data, a config flag nobody asked for, an abstraction that exists because the model reaches for one when it sees a pattern twice. The next prompt reads that code as context, and the drift becomes the style.
Taste grows from comparison. You see two solutions to the same problem, live with one of them, and learn what the other would have cost. Agents make the first half cheap: you can now see five versions of anything in a minute. The second half still takes time. The versions you only looked at teach you little. The one you accepted without comparing teaches you nothing.
Before I accept a change, I try to say in one sentence why this version and not another. If the only reason I can give is that it works, I have not chosen yet; I have accepted. I also keep a short list of things I rejected and why: the helper I deleted, the dependency I refused, the abstraction I inlined back. That list is taste written down. It is also the most useful thing I can put in the agent’s context next time.