Set Sonnet 5 reasoning effort to low - #705
Conversation
Sonnet 5 thinks by default at the provider's highest effort. In the assistant that shows as minutes of reasoning before any content, or a generation that spends its whole output budget on reasoning. With an effort on the card the host stamps it on the room's active-llm event and the ai-bot forwards it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Staging Submissions PreviewThis PR's content is pushed to the staging submissions realm: https://realms-staging.stack.cards/submissions/ Changed folders:
Updated at 2026-09-02 12:04:18 UTC for commit |
There was a problem hiding this comment.
🔵 Needs a closer look
The PR description claims the card title will gain a computed “Thinking” suffix, but with cardInfo.name set the UI title logic will not append that suffix unless the name/title approach is adjusted.
Pull request overview
Adjusts the Anthropic Claude Sonnet 5 model card configuration to default to a lower reasoning setting, aiming to reduce long “thinking” delays and avoid spending most tokens on internal reasoning when this model is selected.
Changes:
- Set
reasoningEffortto"low"on theanthropic-claude-sonnet-5ModelConfiguration card.
File summaries
| File | Description |
|---|---|
| ModelConfiguration/anthropic-claude-sonnet-5.json | Adds reasoningEffort: "low" to influence downstream default reasoning behavior for Sonnet 5. |
Review details
Suppressed comments (1)
ModelConfiguration/anthropic-claude-sonnet-5.json:9
- PR description mentions the card title gaining the computed “・Thinking” suffix; however
ModelConfiguration.cardTitlereturnscardInfo.namewhen present, so addingreasoningEffortalone won’t change the displayed title for this card (it will stay “Anthropic: Claude Sonnet 5”). If the UI should show a Thinking suffix, either setcardInfo.nameto null to use the auto title, or update the name string to include the suffix explicitly.
"reasoningEffort": "low",
"cardInfo": {
"name": "Anthropic: Claude Sonnet 5",
"summary": null,
"cardThumbnailURL": null,
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| "data": { | ||
| "type": "card", | ||
| "attributes": { | ||
| "reasoningEffort": "low", |
There was a problem hiding this comment.
Fix is scoped to Sonnet 5 only, but the realm default is Sonnet 4.6.
SystemCard/default.json sets defaultModelConfiguration to ../ModelConfiguration/anthropic-claude-sonnet-46, and that card (like anthropic-claude-fable-5.json, anthropic-claude-opus-48.json, anthropic-claude-opus-47.json) still has no reasoningEffort in its attributes. If those models also think by default, the exact symptom this PR is fixing — minutes on the thinking placeholder, or a generation that exhausts the output-token budget on reasoning — still reproduces for every user who never changes models, since they land on Sonnet 4.6.
Worth either extending the same reasoningEffort to the other thinking-by-default Anthropic cards in this PR, or noting in the description why Sonnet 5 is the only one that needs it.
Separately, a nit on the PR description: it says the card's auto title gains the ・Thinking suffix. It won't — cardTitle in system-card/model-configuration.gts computes this.cardInfo?.name || autoTitle, and this card has cardInfo.name set to "Anthropic: Claude Sonnet 5", so the explicit name wins and the suffix is never rendered. The 💡 rightBadge change is real.
Generated by Claude Code
habdelra
left a comment
There was a problem hiding this comment.
Code review
The diff itself is sound. "reasoningEffort": "low" keeps the JSON valid, low is one of the values REASONING_EFFORT_LABELS recognizes in system-card/model-configuration.gts, and the placement inside attributes matches the six sibling cards that already set this field. No correctness defect in the added line.
One thing worth deciding before merge (detailed inline on ModelConfiguration/anthropic-claude-sonnet-5.json:5): the fix is scoped to Sonnet 5, but SystemCard/default.json points defaultModelConfiguration at ../ModelConfiguration/anthropic-claude-sonnet-46, and that card — along with anthropic-claude-fable-5.json, anthropic-claude-opus-48.json and anthropic-claude-opus-47.json — still has no reasoningEffort. If those models also think by default, every user who never switches models lands on Sonnet 4.6 and still hits the symptom this PR is fixing. Either extend the same field to the other thinking-by-default cards here, or note in the description why Sonnet 5 is the only one that needs it.
Nit on the description: it says the card's auto title gains the ・Thinking suffix. It won't — cardTitle computes this.cardInfo?.name || autoTitle, and this card has cardInfo.name set to "Anthropic: Claude Sonnet 5", so the explicit name always wins and the suffix never renders. The 💡 rightBadge change is real.
Pre-existing, outside this diff (flagging only, not for this PR): three cards use "reasoningEffort": "none", which is a truthy string, so the this.reasoningEffort ? checks treat them as reasoning-enabled — they get the 💡 badge and the "Reasoning enabled — uses extended thinking" tooltip, while reasoningEffortLabel renders "Not Specified" since none is absent from REASONING_EFFORT_LABELS.
Generated by Claude Code
Sonnet 5 thinks by default, and with no effort set the provider uses its highest level. In the assistant that shows as several minutes on the thinking placeholder before any content arrives, or a generation that stops at the output-token limit with everything spent on reasoning. A prompt like "build a simple wedding planner app" reproduces it.
This sets
reasoningEffort: lowon the Sonnet 5 ModelConfiguration card. The host copies the card value onto the room's active-llm event when the model is selected, and the ai-bot forwards it asreasoning_effort. Other models are untouched: models that do not think by default keep sending no reasoning parameter, so their behaviour does not change.Rooms that already selected Sonnet 5 keep
reasoningEffort: nullon their active-llm event until the model is reselected. New rooms and model switches pick up the card value right away.The card's auto title gains the "Thinking" suffix and the 💡 badge, which is accurate for this model.
🤖 Generated with Claude Code