{"slug": "is-claude-opus-5-5-nerfed-claude-code-ignores-your-effortlevel-how-to-fix-it", "title": "Is Claude Opus 5.5 Nerfed? Claude Code Ignores Your effortLevel. How to Fix It", "summary": "A developer's investigation of Hacker News reports that Claude Opus 5.5 had degraded found no evidence of a model change, instead tracing the perceived regression to Claude Code default and configuration changes. Since Claude Code 2.1.317 (November 3), subagents running on a different model use that model's saved or default effort level rather than inheriting the session's, and a user-level effortLevel in ~/.claude/settings.json is ignored by Opus 5.5, which defaults to medium effort instead of high. The developer recommends setting effort explicitly per model, since project, local and managed settings still apply effortLevel to every model.", "body_md": "One Hacker News commenter says their Fable workflows went from a \"~85%\" success rate to \"~10%\" about two weeks ago. Another says Opus 5.5 is \"suddenly fumbling basic tool calls\" and failing to finish tasks even at high effort. A third says nothing happened at all: \"It's just a new summarizer, the model and performance itself is unchanged.\"\n\nSo is Claude Opus 5.5 nerfed? I read everything Anthropic has published since launch (the Claude Code changelog, the status page, the API docs) and put it next to the [HN thread](https://news.ycombinator.com/item?id=50422069) that grew out of [this post](https://twitter.com/shanemelaugh/status/2119192075505893695), submitted as \"Is Opus 5.5 nerfed? Thinking patterns changed on November 3.\" I couldn't find anything in that record showing the model got dumber. What I found was a pile of default changes that make it behave differently, and the worst one is this: if you set `effortLevel` in `~/.claude/settings.json` before Opus 5.5 shipped, Claude Code ignores it on Opus 5.5 and runs it at `medium`.\n\nThere is no announcement of a new Opus 5.5 checkpoint. The model ID is still `claude-opus-5-5`, the same one Claude Code [made the default Opus model in 2.1.280 on September 22](https://code.claude.com/docs/en/changelog). What did ship is a run of Claude Code releases that touch effort, thinking and context. From the [changelog](https://code.claude.com/docs/en/changelog):\n\n| Version | Date | Change that could feel like a \"nerf\" | \n|---|---|---|\n| 2.1.311 | Oct 26 | `ultrathink` now runs its turn at`xhigh` effort on Opus 5.5 | \n| 2.1.312 | Oct 27 | Automatic model switches after a flagged message now also cover custom model names ( `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK=1` turns them off) | \n| 2.1.314 | Oct 30 | Idle compaction in VS Code and the desktop Code tab: a 200K+ token conversation left idle gets summarized | \n| 2.1.316 | Oct 31 | New `CLAUDE_CODE_SUBAGENT_EFFORT` env var for subagent effort | \n| 2.1.317 | **Nov 3** | Subagents on a different model \"use that model's saved effort level or its default, instead of the session's effort level\" | \n| 2.1.318 | Nov 4 | Removed the 2.1.288 fix that kept earlier thinking when resuming old conversations; \"that thinking can now be dropped\" | \n\nLook at the November 3 row. Say your main session runs Fable 5.1 at `high` and your subagents run on Opus 5.5. Before 2.1.317 they inherited `high`. From that day on, unless you saved a level for Opus 5.5, they get Opus 5.5's default, which is lower than most people assume.\n\nThe [status page](https://status.claude.com/history) has seven incidents between October 25 and November 9. All seven describe elevated errors; the Nov 8 one is titled \"Degraded performance\", but its text is about errors on Fable 5.1. None mentions output quality, and only one (Oct 25) names Opus 5.5 at all.\n\nIf I had to bet on one thing behind most of the thread, it's this. Per the [effort docs](https://platform.claude.com/docs/en/build-with-claude/effort), most Claude models default to `high`. Opus 5.5 and Haiku 5.5 default to `medium`. The [migration guide](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide) spells it out: \"Set `effort` explicitly: the default is `medium`, where Claude Opus 5's is `high`.\"\n\nClaude Code makes it worse. The [settings reference](https://code.claude.com/docs/en/settings-reference) says a top-level `effortLevel` in `~/.claude/settings.json` \"keeps applying where it applied before, on Opus 5, Fable 5.1, and earlier models. Opus 5.5 and models released after it ignore it and start at their own default.\"\n\nNone of this landed in November. It shipped with Opus 5.5: the 2.1.280 changelog entry (September 22) says a level saved before `/effort` became per-model no longer applies to newly released models. Project, local and managed settings still apply `effortLevel` to every model; it's the user-level file that gets skipped.\n\nSo if you put `\"effortLevel\": \"high\"` in your user settings back in the Opus 5 days and never touched it again, you've been running Opus 5.5 at `medium` the whole time while believing you were on high. I'm not surprised it feels worse.\n\nOn Opus 5.5 you can't turn thinking off. Adaptive thinking is always on, and `thinking: {\"type\": \"disabled\"}` or a manual `budget_tokens` gets rejected with a 400. On top of that, `thinking.display` defaults to `\"omitted\"`, so thinking blocks come back empty unless you ask for `\"summarized\"`. The short notes the model writes between tool calls also now arrive as thinking blocks, which are empty by default ([migration guide](https://platform.claude.com/docs/en/models/opus-5-5/migration-guide)).\n\nIn Claude Code, `showThinkingSummaries` defaults to `false`, and the docs say plainly that \"Redaction changes only what you see, not what the model generates.\" If what bothers you is a different-looking summary or a collapsed stub, that's the summarizer you're looking at, and it tells you nothing about the model's output. The HN commenter who blamed the summarizer has a point, and so does listedb: \"the change in display adds to the feel.\"\n\nSome of the thread doesn't fit any config change I could find:\n\nNobody from Anthropic replied in the thread. One commenter pointed out that sites tracking model performance over time don't show these nerfs. That's not proof either way, because a provider *could* detect benchmark traffic and treat it differently, as a couple of others speculated. Which is why I'd rather run my own test than keep arguing from vibes.\n\nThe idea is to pin everything first and only then measure.\n\nThe `opus` alias \"updates over time\" per the [model config docs](https://code.claude.com/docs/en/model-config). Use the full ID:\n\n```\nclaude --model claude-opus-5-5 --effort high\n```\n\nIn `~/.claude/settings.json`:\n\n```\n{\n  \"model\": \"claude-opus-5-5\",\n  \"modelSettings\": {\n    \"claude-opus-5-5\": { \"effortLevel\": \"high\" }\n  },\n  \"showThinkingSummaries\": true\n}\n```\n\nIf you use subagents, the surest fix for the November 3 change is to set `effort` in each subagent's definition. `CLAUDE_CODE_SUBAGENT_EFFORT=high` (2.1.316+) also helps, but the changelog only promises it applies \"when nothing else names one\". Want to rule out a fallback model sneaking in? Set `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK=1`.\n\nPick ten tasks from your real work that have a checkable answer: a failing test to fix, a SQL query with a known result, a refactor that has to compile, a bug you already solved. Store the prompt and the pass condition. Then run them headless against the API with the effort set explicitly:\n\n``` bash\n#!/usr/bin/env bash\n# regress.sh: run each prompt in prompts/*.txt 3x at a fixed model + effort\nMODEL=claude-opus-5-5\nEFFORT=${1:-high}\nOUT=\"runs/$(date +%F)-$EFFORT\"\nmkdir -p \"$OUT\"\nfor f in prompts/*.txt; do\n  for i in 1 2 3; do\n    jq -n --arg m \"$MODEL\" --arg e \"$EFFORT\" --rawfile p \"$f\" '{\n      model: $m, max_tokens: 64000,\n      output_config: {effort: $e},\n      thinking: {type: \"adaptive\", display: \"summarized\"},\n      messages: [{role: \"user\", content: $p}]\n    }' | curl -s https://api.anthropic.com/v1/messages \\\n        -H \"x-api-key: $ANTHROPIC_API_KEY\" \\\n        -H \"anthropic-version: 2023-06-01\" \\\n        -H \"content-type: application/json\" \\\n        -d @- > \"$OUT/$(basename \"$f\" .txt)-$i.json\"\n  done\ndone\n# output tokens per run, for comparing against last week\nfor r in \"$OUT\"/*.json; do\n  echo \"$(basename \"$r\") $(jq -r '.usage.output_tokens // .error.message' \"$r\")\"\ndone\n```\n\nThe 64k `max_tokens` comes from the migration guide's advice for `xhigh` and `max`, since thinking counts against it. Each prompt runs three times, because one sample tells you nothing. Score pass/fail by hand or with a check script, and keep the token counts next to it. Do it today, before the next \"nerfed\" thread, and again whenever it feels off. If pass rates hold and token counts hold, it's you or your config. If pass rates drop at the same pinned model and effort, you've got a real regression and a repro to attach to a bug report, which beats another comment saying \"it feels dumber.\"\n\nMy take: Anthropic made this mess easy to fall into. Changing the default to `medium`, ignoring your old `effortLevel`, hiding thinking by default and changing subagent effort inheritance in a point release is a lot of silent behavior change. Most of it is documented, in places nobody reads. That's a fair thing to be angry about, but it's a different complaint from \"they swapped the weights.\"\n\nHave you noticed Opus 5.5 behaving differently since early November, and on what kind of task? And before you answer: what was your effort actually set to?", "url": "https://wpnews.pro/news/is-claude-opus-5-5-nerfed-claude-code-ignores-your-effortlevel-how-to-fix-it", "canonical_source": "https://dev.to/alanwest/is-claude-opus-55-nerfed-claude-code-ignores-your-effortlevel-how-to-fix-it-502b", "published_at": "2026-11-09 17:50:02+00:00", "updated_at": "2026-11-09 17:55:49.990560+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "ai-agents", "developer-tools", "artificial-intelligence"], "entities": ["Anthropic", "Claude Opus 5.5", "Claude Code", "Hacker News", "Fable 5.1", "Haiku 5.5"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/is-claude-opus-5-5-nerfed-claude-code-ignores-your-effortlevel-how-to-fix-it", "markdown": "https://wpnews.pro/news/is-claude-opus-5-5-nerfed-claude-code-ignores-your-effortlevel-how-to-fix-it.md", "text": "https://wpnews.pro/news/is-claude-opus-5-5-nerfed-claude-code-ignores-your-effortlevel-how-to-fix-it.txt", "jsonld": "https://wpnews.pro/news/is-claude-opus-5-5-nerfed-claude-code-ignores-your-effortlevel-how-to-fix-it.jsonld"}}