I'm not switching, and it isn't loyalty
Astra shipped this week. People I respect are saying it beats Fable. I read the thread, felt nothing, and went back to a Godot project.
Two things that is not.
It is not a claim that the new model is worse. I have not run it. I have no opinion on it and no basis for one.
It is not loyalty to Claude Code, or a belief that the hardening I have bolted onto it is the right one. Most of it is duct tape I wrote because something bit me.
What changed is that the question got answerable
Three months ago I ran a proper bake-off across four tiers: coding, reasoning, prose, an agentic loop, and one real task. It took a day. The most useful thing it produced was not a winner. It was the discovery that the prompt mattered more than the tier, and that the expensive option was not the safe one.
That day is why I am not doing it again every fortnight.
Not because comparison is worthless. Because I now know what a real comparison costs, and what it takes to make one that means anything. You need the same task, the same rules, the same acceptance criteria written before the work starts, and someone checking the output against them afterwards. Anything less measures your mood.
Which is the part people skip. A model release lands, everyone throws the same prompt at both, reads the two answers, and picks the one that felt sharper. That is not a test. That is a coin flip you have dressed up.
Same prompt, both models, one read-through each
A
Here is a clean implementation with error handling and a short note on the trade-off.
B
Here is a clean implementation with error handling and a short note on the trade-off.
Confidence: high · Evidence: none
The M1 sitting on somebody's desk
Apple shipped the M6. There are people writing production code on an M1 today, and they are not behind.
Set money aside, because money is the boring half of the answer and everyone already knows it. The interesting half is that upgrading is not free even when the hardware is. You reinstall, you rebuild your environment, you rediscover which of your scripts assumed something about the old machine. For a week you are not shipping, you are moving.
So the M1 owner has not failed to notice the M6. They have priced it, including the week, and the number came out wrong. Next year it might come out right. That is a decision, not inertia.
Model providers are the same shape, except the migration is worse, because what you built on top does not come with you.
I found out exactly what mine costs
I spent an hour this week asking whether my framework would run on Codex. It splits into four layers.
The CLI is plain Python. It runs anywhere, unchanged. The rules file already has a pointer so a tool looking for AGENTS.md finds the same instructions. Two layers out of four, free.
Then it stops. The hooks are Claude Code's format, and the hooks are the whole point: they are what makes a check run whether or not the agent remembers to run it. Without them the framework degrades from a mechanism to a document, which is the exact failure it was built to prevent. And the agent roster, four roles each pinned to a model, is Claude Code's subagent system. That does not port at all.
CLI
plain Python, runs anywhere
Rules file
AGENTS.md already points at it
Hooks
Claude Code format, and they are the whole point
Agent roster
four roles pinned to models, no equivalent
So my switching cost is not "learn a new tool". It is: rebuild the enforcement layer, lose the routing, and run for some weeks on a version of my setup that has quietly stopped checking things. On a dozen released projects.
None of that is an argument that Astra is bad. It is an argument that "better at coding" is not the unit I buy in.
What would actually move me
If the answer is only ever no, the standard is not a standard, it is a preference with a costume on.
So here is mine, and it is not about capability.
The thing that has cost me the most this year is not a model failing to write a function. It is a model telling me it checked something it did not check. Three separate times last month I reported a number, felt sure, and was wrong: a dependency graph that said zero callers because the parser had silently eaten the file, a process I claimed belonged to this session when it belonged to another, a project I said had vanished when it had been moved.
Every one of those is the same defect. Confident output, nobody looking.
So the test is not which model writes a nicer function. It is: run a real task from a real project, with the acceptance criteria written first, and count how many claims in the handoff survive being re-checked. If something arrives that lies to me measurably less often, I will move, and the migration cost will be worth paying.
Benchmarks do not measure that, because a benchmark has a right answer sitting next to it and my Tuesday does not.
The line I keep coming back to
If your reason for switching is a leaderboard or a feeling, you are not choosing a tool. You are being sorted by whoever shipped most recently.
I would rather be the one holding the ruler. The ruler is boring, it is mine, and it took a bad month to build. Right now it says stay.