All posts

Opus 4.5

Claude Opus 4.5 was released in November of 2025. Any AI coding opinions based on pre-Opus 4.5 models should be purged from our collective psyche. Opus 4.5 was a game-changer.

Thanks to germ theory and our modern understanding of bacteria and viruses, few of us alive today still believe that illnesses are caused by demonic witchcraft. Likewise, software development beliefs based on pre-Opus 4.5 models should be discarded along with any lingering belief in the supernatural.

I think this is an important distinction because a lot of the software engineers I know who are AI-haters seem to be basing their opinions on their experiences with pre-Opus 4.5 coding models.

If you've used Claude Code since the Opus 4.5 release and still aren't convinced it's the future of modern software development, I'd love to take a look at your prompt history. Maybe that's why the term "prompt engineering" exists, because as silly as it might seem, there is actually skill involved in prompting an LLM to produce the output you want.

Working with an LLM is like working with an extremely chaotic system. If you're not familiar with chaos theory, shame on you, and go read up on it. The main characteristic of a chaotic system is "extreme sensitivity to initial conditions". The context and prompt you provide the LLM are your project's "initial conditions".

Here's an example to illustrate my point. When you enter a prompt (and any additional context files), the number of "possible correct answers" could be enormous. Consider the following prompt:

"Write me a script that resizes an image."

Compare that to this prompt:

"Write me a Python script that resizes an image."

By simply adding the word "Python" to our prompt, we help the LLM eliminate all possible correct solutions that don't include Python. Could the LLM technically write an image resizer in JavaScript? Sure, but now it knows that you want a Python script, so it can narrow its focus to Python-based solutions.

Think of it like a game of Guess Who. You ask your opponent, "Does your person have red hair?" No? Then you flip down all of the people with red hair, and the game goes on with you narrowing your options based on answers to your questions.

Here's one more prompt to drive the point home:

"Could you please write me a Python script that resizes an image? The script should support JPEG and PNG files as valid resizable image formats. The resulting resized image should be saved as a WEBP image. Please save the resized image in the same folder as the original image. Please do not overwrite the original image. The script should accept the image's path as a command line argument (ex: python3 ./resizer.py ~/path/to/images). The script should also support a --all flag. If the --all flag is passed, then the script should automatically resize all JPEG and PNG images found in the given folder path. The script should also accept a command line argument so the user can specify the desired resize resolution. Image aspect ratios should always be preserved. Please also provide a corresponding README.txt file that explains how to use the script. Does this all make sense?"

Now that's a prompt. Of the three prompts shown on this page, which do you think would yield the best result? Why don't you copy each of them into your favorite AI coding tool and try them yourself?

One follow-up note, I've found that framing my prompts as questions instead of commands yields much better results. LLMs tend to be sycophantic, so if you give it a direct order it will do its very best to oblige. I wouldn't be surprised if an overly-assertive tone in the context and prompts leads to a statistically higher number of hallucinations.

Ask, don't tell.

A note on this post. I wrote it myself, in my own words, with no AI assistance. I'm a firm believer in building software with AI, and much of this site was made that way, but the writing in these posts is entirely my own.