justin․searls․co

The Generative Creativity Spectrum

This is a copy of the Searls of Wisdom newsletter delivered to subscribers on October 18, 2025.

It's me, your friend Justin, coming at you with my takes on September, which are arriving so late in October that I'm already thinking about November. To keep things simple, I'll just try to focus on the present moment for once.

Below is what I apparently put out this month. I'm sure I did other shit too, but none of it had permalinks:

By the way, if you've heard things that make you wonder why anyone would want the iPhone Air (e.g., it looks fragile, it's slower, it only has one camera, it gets worse battery life), this picture was all I needed to stop caring about any of that:

dat chonk

I lift weights, so I know I am literally capable of holding a half-pound phone all day, but I personally just couldn't abide the heft of the iPhone 17 Pro. Carrying it feels like a chore.

To be honest, over the last month I mostly stuck to my knitting and kept my head down trying to get POSSE Party over the line. The experience has been a textbook case of how a piece of software can be 100% "done" and "working" when designed for one's own personal use, but the minute you decide to invite other people to use it, the number of edge cases it needs to cover increases tenfold. Not enjoying it.

Another reason this newsletter is arriving late is that for two days I completely lost myself in OpenAI's video-generation app, Sora. It's very impressive and terrifying! I posted some examples of my "work", much to the confusion of both my hairstylist and Whatever God You Pray To. I also wrote some thoughts on what tools like Sora might mean for the future of visual storytelling, if you're interested.

Interestingly, Sora is designed as a social media app. Its obvious resemblance to Instagram and TikTok is striking. As someone who banished social networking apps from my devices years ago, I (and my wife/accountability partner) was immediately concerned that I was so sucked in by it. But where those platforms addict users into endless passive consumption of content and advertising, Sora's "SlopTok" feed couldn't be less interesting. After you sign up, create your avatar, and follow your friends, it's all about creating your own videos. There is functionally no reason for anyone to visit their feed. Whatever appeal other people's videos might have is dwarfed by the revolutionary creative potential of typing a sentence and seeing your blockbuster movie idea come to life, with you and your friends playing the starring roles.

I guess that explains why I spent so much time thinking about AI and its relationship to creative expression this month. I manually typed that just now, by the way. And an hour ago, I was waffling over whether to manually or generatively(?) fix a bug on my blog. And now I'm typing this sentence right after command-tabbing back into my editor because the realization that everybody is always in the "starring role" on Sora gave me the idea to generate a series of videos where my avatar merely lurks in the background. It is creepy as hell and fantastic.

That distracted impulse to go make a 10-second movie mid-paragraph raises a question: why do I so thoughtlessly reach for AI to generate videos, but agonize over whether to use it to write code? And what does it say that I categorically refuse to let LLMs write these essays?

Greetings, because that is today's topic.

The Generative Creativity Spectrum

Add creativity to the long list of things I've had to fundamentally rethink since the introduction of generative AI. Up until that singular moment when Stable Diffusion and GitHub Copilot and ChatGPT transformed how people create images, code, and prose, I held a rather unsophisticated view of what it meant to be creative. If you'd asked me in 2021 to distill the nature of creativity, I would have given you a boolean matrix of medium vs. intent. I'd probably hammer out three bullets like these:

You'll never guess what happens next…

I never used to reach out to touch my MacBook screen after using my iPad, but because each 26 OS looks so similar, I'm doing it all the time now.

All according to keikaku.

Copied!
Breaking Change artwork

v44.0.2 - Mike McQuaid: If you don't like it, Quit

Hotfix

Video of this episode is up on YouTube:

Post-recording update: As I've been lobbying for (both publicly and behind the scenes), it has been announced that the RubyGems and Bundler client libraries are being transferred to Matz and the Ruby core team.

Mike McQuaid (of Homebrew fame) and I scheduled this episode of Hot Fix a week before the Ruby community exploded. Hot Fix is all about getting spicy, but even we were a little wary of the heat in that particular kitchen. The problem Mike brought to the table is the same one he's always on about: open source is not a career. Incidentally, Mike's favorite topic also happens to be relevant to the latest RubyGems controversy—because it all boils down to paying people to work on open source.

Not content to miss out on the fun, Jerod from The Changelog asked if he could join and discuss the ongoing Ruby drama as a group. So we decided to team up and do a collab episode—call it Breaking Changelog, I guess? It's nothing if not efficient: record once, edit twice, and syndicate everywhere.

If you don't mind swear words, listen to this version. If you don't like swearing, what the fuck are you doing here? (But seriously, you can listen to their edit if you want!)

Please send your compliments to podcast@searls.co and your complaints to editors@changelog.com.

Ruby is 30 years old, there's so much left to solve that it'd be too much to ask them to finally add support for naming methods with an interrobang. (I would accept either this?! or that‽)

I'm serious! Have you never seen a predicate method with a side effect?!

Copied!

Genuinely curious how long it will be until we have our first local LLM-based computer virus that generates code and uses tools to creatively replicate itself.

Copied!

I'm two weeks behind on the newsletter, so I was trying to be responsible by resisting the urge to document the success I've had with my current coding agent setup. My self-restraint has paid off, as Peter Steinberger essentially wrote the exact post I was planning to write.

There's lots of good nuggets in here, and it's uncanny how many I agree with:

  1. I also use Codex CLI (well, this fork) on a $200 ChatGPT Pro plan. Claude Code was an epiphany, but their models are overrated for the task, whereas GPT 5's variants are more adherent and diligent across the board. OpenAI's usage limits are virtually infinite by comparison, too
  2. I run 3-6 agents in parallel (usually up to 3 per project and up to 2 projects at a time). Unlike Peter, it's rare I let two agents edit the same codebase simultaneously. GPT 5's "medium" reasoning setting is so fast that the time-consuming activities are brainstorming, researching, unearthing technical debt, and planning refactors
  3. While git worktrees are a very cool feature, they dramatically slow down code integration with merge conflicts. Additionally, I've found it's hard to avoid API and port conflicts when running numerous development instances simultaneously. And when an environment stops working, agents will silently start coding based on speculation and conjecture. Fast feedback through observable execution of code is the single most important thing, so the risk isn't worth the (marginal) reward
  4. Hooks, custom commands, and fancy hacks like coder's undocumented auto-drive mode are nice, but they're no replacement for thinking really hard about what you want

But really, the reason I've had so much success with Codex in comparison to Claude is that if you get off your ass and do the hard thinking necessary to arrive at an extremely crisp and well-informed articulation of what you want, why you want it, and what obstacles it will face, today's agents will generally do a really good job.

Oh, and fuck prompt engineering, just communicate better. As Peter says:

Don't waste your time on stuff like RAG, subagents, Agents 2.0 or other things that are mostly just charade. Just talk to it. Play with it. Develop intuition. The more you work with agents, the better your results will be.

I've started a dozen posts about working with coding agents that I deleted before publishing, because I eventually realized whatever insight I had could just as easily apply to dealing with human colleagues as with LLM agents. Seriously, just talk to it like a human.

Common communication failure modes:

  • Telling the agent how to do the work instead of answering why, what, and where, and then getting upset when the ultimate solution manages to complete all the hyper-specific tasks I defined while failing to solve the broader problem
  • Giving the agent instructions that contradicted the facts on the ground, only for the agent to spin its wheels endlessly and make a huge mess trying to do the impossible
  • Lazily hand-waving away important requirements, only for the agent to miss edge cases it lacked awareness of
  • Telling it what I want before I'd really thought things through, then hating whatever it gave me
  • Failing to first deal with underlying technical debt, then getting mad when the agent shoehorns in a necessarily-messy solution on top
  • Getting frustrated, being condescending, or treating the agent like it's my underling, and then peeking at its reasoning log and seeing 80% of its thoughts are about managing my emotional state and 20% about the problem at hand

I'm more convinced than ever that when people are having a bad time with using AI to write code, it's not only due to ignorance and incompetence surrounding the tools themselves—just as often, it's a failure of imagination and lack of communication skills. Two things that even the best programmers frequently lack. If you're a programmer who's bad at communicating with humans, I hope you've got some other plan for making money in the next decade.

Anyway, that's where things stand in October. June feels like three years ago, so we'll see where we are in February, I guess.

A nonzero number of programmers under 30 assume GraphQL is a legacy technology invented by Texas Instruments in the 90s and had something to do with graphing calculators.

Copied!

When coding agents fail to accomplish what we task them with, very often it's because the codebase has complications we failed to anticipate and communicate. It's easy to get mad at the AI, but reckoning with technical debt requires your awareness and involvement, too.

Copied!

After a fabulously productive weekend with Codex CLI shipping a set of features that would have taken me two weeks, it is now past 9 AM on a weekday in San Francisco and it's struggling to add two numbers together again. What a world.

Copied!

✅ Active on weekends

A recruiter sent me this screenshot of some kind of GitHub profile scraper. Aside from naming me as a "top 1%" JavaScript developer (which I'm not sure is a compliment or a threat…), I just couldn't get over the "active on weekends" checkmark.

Lady, on weekends I charge double. 🤌

The joy I get out of programming has slowly waned over the years, because most interesting problems are now "solved" via standard libraries, open-source dependencies, and HTTP APIs. Novel problem solving gradually gave way to "digital pipefitting" of stuff built by others.

Copied!

When I work late or long hours coding something, it is expressly NOT because I enjoy it. It's because I can't stomach the thought of wasting another day of my life on this shit.

Copied!

Best reason to use Codex CLI over Claude Code is the limits. I've been HAMMERING gpt-5-high for >8 hours/day all week. It's the last day of the week and I haven't hit 35% of the weekly limit.

If I'd paid the same $200/mo for Claude, I'd have been locked out by day 2.

Copied!

A cruel irony of coding agents is that everyone who blew off automated testing for the past 20 years is now telling the AI to do TDD all the time.

But because LLMs were trained on decades of their shitty tests, the agents are also terrible at testing.

Copied!

When working with a coding agent, a great periodic housekeeping task is to ask it to evaluate the codebase against the principles and values you've laid out in your CLAUDE/AGENTS/RULES files.

Agents frequently violate one's rules while coding, but will also spot those deviations after the fact if asked.

Copied!