Every four to six weeks, a Hacker News thread lands with the same title shape: has Claude Opus gotten worse. The current cycle opened after Anthropic shipped Claude 4.7 Opus on April 15, 2026 — the same release that took SWE-bench Verified at 82.4 pass@1, ahead of GPT-5.5's 80.8 seven days later. The complaint arrives regardless of what the release notes say. Regardless of what the leaderboard says. Regardless, in this case, of the fact that Anthropic held pricing flat at $15/$75 per million tokens across a measurable capability jump. Something is producing the feeling. It is not what the thread thinks it is.

Why This Is Actually True

The thread is not lunatic. There is a coherent case for the complaint, and treating it as pure user hallucination is the lazy read.

Start with the honest part. Anthropic ships silent revisions between named versions. The model card is dated April 15, but the weights and the routing behavior behind `claude-4-7-opus` on the API do not stop moving on release day. Every closed-weight lab does this. It is a category-level truth, not a Claude-specific one. When a user reports that a prompt they had running clean for three weeks suddenly hallucinates a function signature, they are not imagining the delta. They are describing infrastructure that is opaque by design.

Second, the specific workload the complainers cite is real. Long-context agentic coding — repository-wide edits, ten-file diffs held together by an implicit spec — is exactly the surface where small changes in tokenizer behavior, system-prompt injection, or attention scheduling produce large observable regressions. A model that scores 82.4 on SWE-bench Verified can still botch a specific refactor that worked yesterday. The benchmark measures the class. The complaint measures the sample.

Third, the tooling layer is a confounder that most complainers correctly identify without knowing what to do with it. Claude Code, Cursor, Windsurf, and Continue all route through `claude-4-7-opus` differently. Cursor's Composer mode injects context Cursor decides is relevant. Claude Code's terminal agent packages the repo differently than the raw API call would. When "Opus" gets worse for a Cursor user, "Opus" is a moving referent — half model, half harness. That is not the user's confusion. That is the actual state of the world.

The complaint is coherent. The evidence attached to the complaint is not the evidence the complaint thinks it is.

Where It Breaks Down

Here is the specific claim under the specific title: has Claude Opus, the model, gotten worse. Not the harness. Not Cursor's routing. The model itself.

The public record from the April 15 release does not support that read. Claude 4.7 Opus posted 82.4 on SWE-bench Verified — the current leader on the board, ahead of GPT-5.5 at 80.8 (released April 22) and its own sibling Claude 4.6 Sonnet at 77.5. HumanEval sits at 94.0. GPQA Diamond at 91.2, second only to Gemini 3.1 Pro's 94.3. MMLU at 89.5. Every one of those numbers is a public claim Anthropic makes on its own model card and every one of them is higher than the equivalent number for Claude 4 Opus at the same evaluation snapshot.

The pricing tells the same story from the other side. Claude 4.7 Opus: $15 input, $75 output per million tokens. Claude 4 Opus at retirement: $15 input, $75 output per million tokens. Held flat across a measurable capability jump. This is not what a lab does when its model regressed. This is what a lab does when it is trying to hold the frontier price line while GPT-5.5 arrives at $5/$25 seven days later — a 3x input discount, a 3x output discount, on comparable SWE-bench numbers. That is the actual competitive shape of April 2026, and it is not visible from inside the "did they nerf it" frame.

Two primary documents say things that look contradictory to the casual reader. The Anthropic model card claims a capability improvement. The Hacker News thread claims a capability regression. Both are operative pieces of information. The way they fit together: the model card measures aggregate performance on standardized evaluations run once against a frozen checkpoint. The Hacker News thread measures felt performance on individual workflows run repeatedly against a moving harness with drifting user prompts. The model card is right about the model. The thread is right about the experience. Neither is measuring the same thing, and neither is lying.

The 400,000-token context tier and the workload drift that comes with it are the third piece. When users graduate from 40k-token prompts to 400k-token prompts because the context window allows it, needle-in-haystack recall degrades — as a property of long-context attention, not as a property of a specific release. The complaint dated post-April 15 is often complaining about a prompt shape that did not exist pre-April 15.

The Rule I Use Instead

Separate three signals before you post the thread.

Signal one is the model. Test it on a prompt whose expected output you had frozen before the release. Same tokens in, same seed if the API exposes one, same temperature. If the output degrades meaningfully across three trials, you have evidence about the model. If it does not, you have evidence about something else. Every regression complaint that skips this step is a complaint about "something else" — routing, harness, prompt drift, expectation drift — dressed up as a complaint about the model.

Signal two is the harness. Cursor, Claude Code, Windsurf, and Continue each mediate the raw model call. Cursor injects retrieved context. Claude Code packages the repo. When "Opus" felt sharper in your tool six weeks ago, the tool's context assembly may have changed independently of Anthropic. Check the tool's changelog against the timing of the felt regression. The correlation there is often stronger than the correlation with the Anthropic release date. This is the primary-document cross-reference that unwinds most of these threads: Anthropic's model card and Cursor's release notes cover different territory and both are operative.

Signal three is prompt caching. Sonnet 4.6 ships prompt caching on by default. Opus 4.7 has it available but not automatic on every surface. If your workflow relied on cached system prompts to keep the effective context small, and a routing change silently disabled that behavior, your effective prompt grew and your quality dropped — with the model held constant. That is a plausible explanation for a large fraction of the "it feels slower and worse" reports and it has nothing to do with a weight update.

Run those three checks in order. Ninety percent of the time, the answer resolves to signal two or signal three and the thread never needed to exist.

When the Old Rule Still Wins

The narrow case where the complaint is grounded in something real: a specific prompt, tested against a frozen expected output, on the raw API with no harness in between, showing consistent degradation across trials over a defined window. That case exists. It is not common, and the aggregate leaderboard does not disprove it, because a leaderboard measures average behavior on a fixed distribution and a real workload measures worst-case behavior on a drifting one. If you have that receipt — the frozen prompt, the frozen expected output, the version-stamped API call, the timestamped output — you are describing a real regression on a real workload and Anthropic's support channels will engage with it seriously. Every other version of the complaint is describing something else, and calling that something else "the model got worse" is what keeps producing the same Hacker News thread every four to six weeks.

FAQ

Did Claude 4.7 Opus actually score higher than Claude 4 Opus on public benchmarks?

Yes. On the April 15, 2026 model card, Claude 4.7 Opus posted 82.4 on SWE-bench Verified, 94.0 on HumanEval, 91.2 on GPQA Diamond, and 89.5 on MMLU. Each of those is higher than the corresponding number Anthropic published for Claude 4 Opus. The leaderboard reflects the change: 4.7 Opus currently sits at the top of SWE-bench Verified, ahead of GPT-5.5's 80.8. The aggregate direction is up, not down.

If the benchmark went up, why does my workflow feel worse?

The most common explanations are harness drift and prompt drift, not weight drift. Cursor, Claude Code, and Windsurf each change how context reaches the model between releases. Users also tend to grow prompts as the context window allows, and long-context recall degrades non-linearly. A prompt that worked at 40,000 tokens may not survive at 250,000 tokens even against a stronger model. The felt regression is real; its cause usually is not the weights.

Is Anthropic quietly swapping the model behind the same API name?

Closed-weight labs do ship silent revisions between named versions — this is a category-level practice, not Claude-specific. Anthropic publishes model IDs but does not publish weight-hash notifications for intra-version updates. If your workflow needs weight stability, the practical mitigation is to freeze against a specific dated snapshot where the provider exposes one, and to write regression tests against known-good outputs so you can detect drift instead of infer it.

How does Claude 4.7 Opus pricing compare to the alternatives after GPT-5.5 launched?

Claude 4.7 Opus is priced at $15/$75 per million tokens input/output — held flat from Claude 4 Opus. GPT-5.5, released April 22, is priced at $5/$25 per million on comparable SWE-bench performance (80.8 vs 82.4). Gemini 3.1 Pro sits at $2.5/$10 with a 2M context window but a lower 75.3 SWE-bench score. The Opus premium is real; whether it is justified depends on whether the 1.6-point SWE-bench gap and Anthropic's coding harness ecosystem are worth 3x the token cost for your workload.

What is the fastest way to check whether the model itself regressed?

Pick a prompt whose expected output you froze before the release date. Run it three times on the raw API — not through Cursor, Claude Code, or any harness — with matched temperature and system prompt. Compare the outputs to your frozen expected result. If the divergence is consistent across trials, you have evidence of a model-level change. If it is not, you are measuring something upstream of the model, and the fix lives in the harness or the prompt, not in Anthropic's next release.

Does prompt caching affect the "feels worse" perception?

It can, meaningfully. Claude 4.6 Sonnet ships prompt caching on by default; Opus 4.7 offers it but the default varies by surface. If a routing change silently altered whether your system prompt gets cached, your effective per-request context grows, your latency rises, and your output quality can shift — all with the underlying model held constant. Verify your caching headers in the API response before concluding the weights moved.

Which tool is currently the best surface for Claude 4.7 Opus?

Cursor and Claude Code both use `claude-4-7-opus` as their primary model. Claude Code is included in the $20/month Claude Pro subscription and runs as a terminal agent with repo-wide edits. Cursor sits at the same $20/month and uses a VSCode fork with Composer mode for multi-file changes. The choice depends on whether you prefer terminal-native or IDE-native agentic flows. Neither is objectively better; the harness differences matter more than most comparisons acknowledge.

Will this thread appear again in six weeks?

Almost certainly. The pattern is structural: closed-weight models ship silent revisions, harnesses evolve independently, user prompts grow into new context tiers, and the aggregate benchmark cannot capture worst-case workload behavior. As long as those four conditions hold across the frontier lab category — which is indefinitely — the "has [flagship model] gotten worse" thread will recur on a four-to-six-week cycle for every major provider, not just Anthropic.