Opus 4.7 is horrible at writing

Posted by limalabs 16 hours ago

Counter16Comment17OpenOriginal

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?

Comments

Comment by qcoret 9 hours ago

Maybe don't use any LLM to do your writing for your Master's thesis?

Comment by newsy-combi 5 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."

Comment by gonzalohm 8 hours ago

So why should you use it for coding then?

Comment by qcoret 6 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.

Comment by tmaly 1 hour 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.

Comment by chmod775 9 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.

Comment by muzani 12 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?

Comment by Zavora 15 hours 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

Comment by dnnddidiej 11 hours ago

Wisdom passed down the generations

Comment by sminchev 11 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.

Comment by Jeremy1026 5 hours ago

You can always use `/model claude-opus-4-6` in Claude Code to go back to 4.6.

Comment by anon7000 13 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

Comment by SyntaxErrorist 13 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.

Comment by Areena_28 11 hours ago

I’ve noticed this with model upgrades too: sometimes they improve the “thinking” but lose the tightness of the writing.

Comment by downboots 14 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.

Comment by bicepjai 4 hours ago

4.7 is unusually verbose

Comment by kappuchino 13 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.

Comment by edmondx 6 hours ago

[dead]

Comment by allinonetools_ 15 hours ago

[dead]

Comment by Plory 15 hours ago

[dead]