Opus 4.7 is horrible at writing
16 points
1 day ago
| 15 comments
| HN
Just a short rant. I have been working on my Master's thesis and been using Opus 4.6 throughout, and today switched to Opus 4.7 (using it in Claude Code), and man is it bad at writing. It's such a stark contrast, sloppy, unprecise, very empty sentences. Thankfully I have reached the conclusion chapter of the thesis already, and can continue in the web version with 4.6 but boy is it bad.

Similar experiences?

qcoret
18 hours ago
[-]
Maybe don't use any LLM to do your writing for your Master's thesis?
reply
newsy-combi
14 hours ago
[-]
Increasingly, a masters degree is now a piece of paper attesting that you managed to cheat your way through uni using AI. "Congrats, you spent X years at Y location. You unlocked the right to play [role] - we recommend you keep using AI to do your new job."
reply
gonzalohm
16 hours ago
[-]
So why should you use it for coding then?
reply
qcoret
15 hours ago
[-]
You shouldn't. Using LLMs for coding is also considered fraud by many academic boards if that code is a core contribution of the thesis.
reply
muzani
20 hours ago
[-]
There were a lot of pitchforks back when Sonnet 4.5 was accidentally down for a few hours: https://www.reddit.com/r/ClaudeAI/comments/1rlz7kw/sonnet_45...

It goes to show that there's a very large and vocal user base using it for writing, and yet it's not part of the benchmark for Anthropic.

Anyway, try Sonnet 4.5 while it's still available?

reply
Zavora
1 day ago
[-]
Suggest you get 4.6 to use the text to generate a writing skill and then give it to 4.7 to align. From their launch docs they do indicate that prompts have to change to get the best out of 4.7
reply
dnnddidiej
19 hours ago
[-]
Wisdom passed down the generations
reply
chmod775
17 hours ago
[-]
Opus 4.7 seems to reach ChatGPT levels of verbosity in code and loves to overcomplicate the most simple things.

This is something it spit out just now (trimmed a 9 line comment though):

        let keepSize = 0;
        let overBudget = false;

        await this.items.orderBy('[priority+dateUpdated+size]')
            .reverse()
            .eachPrimaryKey((primaryKey, cursor) => {
                if (overBudget) {
                    evictKeys.push(primaryKey as string);
                    return;
                }

                const key = cursor.key as [number, number, number];
                const itemSize = key[2];
                const contribution = itemSize > 0 ? itemSize : 0;

                if (keepSize + contribution > maxSize) {
                    overBudget = true;
                    evictKeys.push(primaryKey as string);
                    return;
                }

                keepSize += contribution;
            });
Come on now... what? For a start that entire thing with its boolean flag, two branches, and two early returns could be replaced with:

        let totalSize = 0;

        await this.items.orderBy('[priority+dateUpdated+size]')
            .reverse()
            .eachPrimaryKey((primaryKey, cursor) => {
                const key = cursor.key as [number, number, number];
                const itemSize = key[2];
                const contribution = itemSize > 0 ? itemSize : 0;

                totalSize += contribution;

                if (totalSize > maxSize) {
                    evictKeys.push(primaryKey as string);
                }
            });
I'm back to 4.6 for now. Seems to require a lot less manual cleanup.
reply
tmaly
9 hours ago
[-]
I see a lot of complaints on X about 4.7. Boris just dropped a post on how to use Opus 4.7 in Claude Code.

I guess they broke continuity with a 0.1 in model version change in some ways.

reply
sminchev
20 hours ago
[-]
So far, from source code perspective, I see good results. Things that yesterday Opus 4.6 was not able to fix in multiple iterations, today Opus 4.7 fixes immediately.

It is not only the model that affects the end results. Good technical specification, architecture documents, rules, lessons learned, release notes, proper and descriptive prompting are also important.

reply
anon7000
22 hours ago
[-]
My experience writing code is that it’s more terse and specific, even in its own voice. I find it catching bugs more often during implementation more too, comparing directly against 4.6. I think I prefer its style because it seems to be way less verbose
reply
SyntaxErrorist
21 hours ago
[-]
I have noticed this as well. It feels like they tuned it so hard for logic and coding that it lost its soul for actual writing. Stick with the previous one for the thesis work if you can.
reply
Jeremy1026
13 hours ago
[-]
You can always use `/model claude-opus-4-6` in Claude Code to go back to 4.6.
reply
downboots
22 hours ago
[-]
> Similar experiences?

Regardless of which one. They're too verbose. They repeat information. They lack cohesion. Overly agreeable. The flaws are part of the tool.

reply
Areena_28
20 hours ago
[-]
I’ve noticed this with model upgrades too: sometimes they improve the “thinking” but lose the tightness of the writing.
reply
kappuchino
21 hours ago
[-]
It's lovable when people use a wrench to hammer a nail in. Watch your thumb.

Meaning: You managed your ways around the system prompt and usage intention - Congrats! Now it doesn't work any more - Bummer!

Have you tried opus 4.7 in comparison to 4.6 with a general purpose / writing system prompt in the app? Thats where this would make more sense.

reply
blemis
5 hours ago
[-]
just downgrade... to 4.6
reply
bicepjai
12 hours ago
[-]
4.7 is unusually verbose
reply
sdevonoes
6 hours ago
[-]
LLMs are so 2025. Move on
reply