... It changes, gets better... and worse each release.
Interesting you should say that. I've felt that Opus4.6 does not do as good a job as Opus4.5. It's hard to quantify, I'm currently working on an STM32-H563 project and felt that Opus4.6 is both slower and goes off focus a little easier than Opus4.5. YouTubers seem to rave about it though, so maybe its better in the pretty graphs to impress the boss BS department. Wish I could select 4.5 to really compare, it could be just the different section I'm currently working on.
I noticed differences yes. On the plus side I gave it a "big" task with multiple components and it produced a plan and implementation on it "better" and more complete than Sonnet 4.5.
However. I also noticed it taking considerably longer on all tasks, even simple ones. I also noticed it costs a sh1t ton more in usage.
I tasked is with something really chunky tonight. Let it plan, but ... I am not actioning on the plan. It just revealed to me that there are decisions to make first.
To stop talking in riddles. I am designing an OS. Home brew. I have a binary loader and a "run" command to execute in memory.
I extended this after careful consideration to have the "bin loader" allocate memory, not accept a hardcoded address, and return a Process ID. Then "run" can run that.
Thinking this was a good point to introduce a syscall, I asked claude to add "Trap for yeild", no multi-tasking, kernel yeild just prints "Process N yeilded" and passes control back.
It thought for 5 minutes and produces and a plan that I don't doubt would work. The reason I am aborting it, is because it contains a lot of smaller chunks of work with assumptions Im an not ready to "yield to it". In particularly it is introducing the concept or a context switch between kernel space and user space.
It's not wrong in anyway, but I don't want to just hand it full design control over those features. So, instead I'm going to pull it back to just that context. "Kernel vs. User", lets face it in isolation before we actually need it. So I get to decide what and how that looks like, not just for the current use case but or the others that come after dependant on it.
There is, bizarrely merit in taking the output from one context (Claude CLI planner) and putting it back into another, like a Claude (or GPT) chat and asking for a review.
It can also be worthwhile "chit chatting" about things for a while beforing actually engaging it to help with decisions. The chit chatting can establish "ethos", "approach", "preferences". That can obviously be both a bonus and a risk. You manage.
If you find yourself having to "setup" the basic approaches everytime, you can add them in many different places to always be "in context", from system promopts to config to readmes to documentation.
For example, my OS design introduces it's first invariant. "No unbound buffer access." No "gets" and friend, period.