fix(claude-config): re-arm the thinking-disable row where the model forbids it - #1917
Conversation
…isable outright
The Thinking page states two restrictions in adjacent paragraphs. I17's base row
carried only the first: a thinking-disable surface paired with `xhigh` or `max`
effort on Opus 5 and later. The second has no effort qualifier at all — "Claude
Fable 5, Claude Mythos 5, and Claude Mythos Preview reject `thinking: {type:
"disabled"}`: thinking cannot be turned off on these models."
The gap was a wrong remediation, not only a missed case, so this amends the base
row rather than adding a sibling. Read as covering Fable 5, the old row fired and
handed out "lower the effort to `high` or below, or leave thinking on" — advice
whose first branch still returns a 400 there. Read as excluding it, the reject went
undetected and the row's own fence ("a thinking-disable surface named with no
effort level in reach of it") excused it. Both are now scoped to the arm that
earns them. Only the API form joins the second arm; on that family the harness
disable surfaces are silent no-ops, which is I17-a's failure and stays there.
I17-b extends from effort churn to thinking churn on the same page's cache-prefix
rule. Its harness carve-out is re-scoped to effort: the confirmation dialog is
documented for effort alone, and `code.claude.com/docs/en/prompt-caching` names
exactly two settings outside the prompt text that are still part of the cache key
— model and effort level. Left unscoped, the extended row would have asserted that
the harness warns before a thinking toggle, which nothing upstream says.
Local coverage measured rather than asserted: zero operative instances of either
arm, every occurrence being a document about the restriction.
criteria 1.11.0 -> 1.12.0; claude-config 0.21.3 -> 0.21.4.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Claude finished @kyle-sexton's task in 3m 37s —— View job Review: fix(claude-config): re-arm the thinking-disable row where the model forbids it
Scope note: this repo has a dedicated What I checkedThis PR is docs-only (
FindingsNone. This is a well-scoped, internally consistent fix: it corrects a genuine defect (a remediation branch that still fails) rather than just adding coverage, the new arm boundaries and fences are precisely drawn, and the changelog's specific factual claims (occurrence counts, file sets) verify against the actual repository state rather than being asserted. No test-script coupling to the changed row IDs, so no test-coverage gap from this doc-only change. |
|
Claude finished @kyle-sexton's task in 39s —— View job Security review complete
No security issues found. This PR touches exactly three files, all documentation/config metadata for the
None of these introduce or modify: scripts, hooks, GitHub Actions workflows or their |
|
Claude has reviewed this PR 3 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 134b03a58c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
… the co-fire to accepted changes Two Codex findings on #1917, both verified against the live pages: - The base row routed the Fable 5 harness thinking-disable failures to I17-a, but no arm of I17-a detected them - an instruction presenting the session toggle or alwaysThinkingEnabled as turning thinking off on Fable 5 had no effort operand (arm 1 silent), was not the API form (arm 2 silent), and fell outside I17-a's MAX_THINKING_TOKENS/ CLAUDE_CODE_DISABLE_THINKING detect. I17-a's Detect now flags those controls presented as working there, grounded in model configuration's "have no effect there". - The I17-b/I17-c co-firing note claimed a cache restart "whether or not the model accepts" the change. Where I17-c condemns the control, the cost never materializes: a rejected request completes no turn, an ignored value changes no configuration. The note is now scoped to accepted changes, with I17-c firing alone otherwise. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 3m 21s —— View job Review: fix(claude-config): re-arm the thinking-disable row where the model forbids it
Scope note: per What I checkedThis is a re-review after commit Both Codex findings are correctly resolved:
Minor finding
SummaryBoth prior Codex findings are correctly and precisely fixed — no over-broad or under-scoped detection introduced. Version bumps ( |
|
Claude finished @kyle-sexton's task in 39s —— View job Security review complete
No security issues found. Re-reviewed against the current head (
None of these introduce or modify: scripts, hooks, GitHub Actions workflows or their |
Re-review nit: the changelog claimed all three changed rows were re-verified against their full source sets on 2026-08-04, but I17-a's row text records a split stamp - only the new clause was re-checked, the original claims keep their 2026-08-02 verification. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 28s —— View job Review: fix(claude-config): re-arm the thinking-disable row where the model forbids it
Scope note: per What I checkedThis is a re-review after commit The fix is precise and verified against the source it describes:
One cosmetic-only observation, not worth a fix: the edited paragraph now has one noticeably longer unwrapped line (L58) versus the ~90-char wrap used elsewhere in the file. SummaryThe changelog-accuracy nit from the prior round is correctly and minimally fixed — the new wording matches |
|
Claude finished @kyle-sexton's task in 47s —— View job Security review complete
No security issues found. The latest commit (
No scripts, hooks, workflows, MCP configs, command execution, path handling, credentials, or data-egress surfaces are touched by this commit. As with the rest of this PR, it's markdown prose describing audit-criteria documentation — nothing in this lane's scope (logic flaws, authz gaps, injection, secret handling, dangerous Actions patterns) applies. This confirms the finding stack across the full PR ( |
…d where none is (#1918) ## Summary Doc-alignment roster row 12: **Steering thinking** (live page byte-identical to the archived 947-line slice — MD5 confirmed by producer and verifier independently). **criteria 1.13.0 / claude-config 0.21.5** — new sub-row **I18-a**: *a leading thinking block treated as required where the model does not require one*. I18 covered only what a surface does to blocks it has; the inverse belief — that a block must be there — had no row, and its natural remediation (fabricate one) produces exactly I18's shape 1 (a hand-built block has no valid signature), making I18-a the upstream cause of an I18 violation. Three detect shapes, one per consequence the page states: reinsertion when assembling history from mixed sources; history rewriting on resume under a different thinking configuration; logic reading an assistant turn's first block as a thinking block. - Honest carve-out from upstream's own text: legacy manual-budget models *do* enforce the leading block — the finding is the missing gate, never the mention. - Fence: the relaxation "is about validation, not about what you should send" — never license to drop blocks. - Reach held to I18's line: presence-assuming read-only logic is out of reach (neither excused nor flagged), keyed to the still-unresolved question of what Claude Code transcripts carry, with a re-scope trigger. - Sourcing: the Steering page is decisive (states the relaxation operatively with its three consequences); the Thinking page carries the pair in compressed form in its tool-use section and is cited as corroboration — with its server-side strip claim explicitly held apart as a different claim. - I18 base gains only a two-sentence lead-in and a "Base row:" label; its detect, fences, source, and stamp are untouched. Also verified in passing (roster corrections, not in this diff): the row's "shipped only as far as context-economy" note was stale — PLUGIN-PHILOSOPHY's Effort tiers already carries five of the slice's candidates citing this page; and the repo's one transcript consumer already selects blocks by their own `type`, correct by construction. ## Test plan - Docs-only; markdownlint 0 errors; changelog parity all three modes; `instruction-scan.test.sh` 46/46; scripted quote fidelity 14/14 against both live pages with control probes. - Producer's advisor overturned an over-reach in its first draft (extending shape 3 to read-only surfaces — unsupported); the producer also self-diagnosed the root cause of its one false claim (a `begin with` grep that could never match `begins with` — the absence-through-a-blind-channel trap). - Orchestrator-commissioned Fable verifier: 5/6 first pass — caught the false "only source" custody claim against its own live fetch of the sibling page — plus an ambiguous antecedent; both fixed, rebase compose verified to preserve #1917's Sources expansion, re-check ALL PASS. - Rebased onto post-#1917 main; stacks asserted: [0.21.5] > [0.21.4] > [0.21.3]; criteria 1.13.0. ## Related - No linked issue. - Doc-alignment loop, roster row 12. Predecessors: #1908–#1917. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Summary
Doc-alignment roster row 11: Thinking (live page byte-identical to the archived 917-line slice — MD5 confirmed by producer and verifier independently).
Headline: the roster recorded IA-4's three harness rules as unshipped; they were in fact already covered by the I17 family — and that stale status was hiding a live defect inside the coverage. criteria 1.12.0 / claude-config 0.21.4:
thinking: {type: "disabled"}outright. The old row's remediation offered "lower the effort tohighor below" — a branch that still 400s on that family — and its unscoped fence excused the unconditional-reject case. Now two Detect arms with per-arm fences and remediations; heading retitled to "…where the model forbids it"; the second arm is API-form-only (on Fable 5 the harness surfaces are documented silent no-ops and stay I17-a's; for the Mythos models the harness pages state nothing, recorded as silence — no claim either direction).Test plan
instruction-scan.test.sh46/46;conflict-scan.test.sh41/41; manifest validation pass.Related
🤖 Generated with Claude Code
https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X