docs(philosophy): refresh the tier-to-model mapping for Opus 5 GA - #1912
Conversation
The mapping's own recheck trigger — "a new Claude model family reaches GA, or the session default model changes" — fired both ways on 2026-07-24 (Opus 5 GA; the fleet's pinned session model moved to opus[1m]), and the table had not moved with it. It still named Opus 4.8, which upstream now lists as legacy. Re-derived from a live fetch of both official pages rather than from the incumbent assignments: - Row 1 was "Fable 5 / Opus 4.8" and is now "Opus 5 at the session tier; Fable 5 above it". `opus` resolves to Opus 5 on the Anthropic API, and Opus 5 is positioned "for complex agentic coding and enterprise work"; Fable 5 is "the most capable model in Claude Code", suited to tasks larger than a single sitting. Those are the tier's two rungs, so the slash is spelled out rather than left ambiguous. - Rows 2 and 3 re-verified unchanged. Sonnet 5 and Haiku 4.5 are still the current Sonnet and Haiku, and Haiku 4.5 remains the only one of the four without adaptive thinking — which is what the interleaved-thinking prose below the table rests on, so row 3 holds it up unchanged. Fable 5 does not get its own row. Its live differentiator is horizon, not verdict weight, and the three tiers here are defined by work character; a horizon tier would be a doctrine change rather than a table refresh. No prices are restated. The ordering is asserted and the pricing page cited, per this doc's own posture that upstream-owned specifics resolve at decision time. No version bump: docs/ is repo-level and carries no plugin.json; no plugin is touched. Every agent-frontmatter model pin in this repo binds an alias (`opus`/`sonnet`/`inherit`), so the trigger's frontmatter re-audit finds nothing owed — `opus` now resolving to Opus 5 is exactly the row-1 assignment. Basis, both fetched 2026-08-04: https://code.claude.com/docs/en/model-config https://platform.claude.com/docs/en/about-claude/models/overview 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 2m 59s —— View job Code review
Scope reviewed: This is a tightly-scoped, well-reasoned docs refresh. The table update, the new supporting prose, and the "no version bump" / "no Fable row" / "rows 2–3 re-verify unchanged" calls all check out against the surrounding doc:
One minor prose nit, low severity:
No architecture, error-handling, or test-coverage concerns — this is a prose/data refresh with no code or contract-surface change. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7700b321ae
ℹ️ 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".
|
Claude has reviewed this PR 2 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
…sion model Codex finding: the refreshed row hard-coded Opus 5 as "the session tier" while the section's own invariant makes the ladder relative to the active session - a Fable session following the table literally would dispatch consequential verifiers below its own tier. Row 1 now states the relative rule first and names Opus 5 / Fable 5 only as the resolution under the fleet's current opus[1m] pin, which the doc previously never mentioned. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 2m 2s —— View job Code review (re-check after fix commit e43da81)
Scope reviewed: Codex P2 fix — sound. The original row 1 named absolute models ("Fable 5 / Opus 4.8") in a section whose preceding invariant (
Confirmed no regressions in the surrounding math: rows 2–3 unchanged, the date in the recheck-trigger sentence and table header stay in sync ( Still open (unchanged from prior review, low severity, not blocking): the closing citation at L580-L584 — No architecture, error-handling, or test-coverage concerns — this remains a prose/data refresh with no code or contract-surface change. The fix commit is a targeted, correct response to the one real finding raised. |
…ard and withdraw an unresolvable citation (#1913) ## Summary Doc-alignment roster row 4: **Claude Opus 5 System Card** (194-page PDF; live CDN copy byte-identical to the archived capture, SHA-256 re-verified by producer and verifier independently). **context-guard 0.4.5** — withdraws an unresolvable citation from the reader contract: the token-shape rationale co-cited "Anthropic system-card fixed-point evals" for degradation-tracks-absolute-tokens. The card names no such eval and contains no long-context degradation benchmark (normalized sweeps: fixed-point, MRCR, RULER, needle, LongBench all zero; §8.9 ProgramBench is fresh-budget episodes with a *rising* 83%→93% curve). Nuance preserved: the proposition is unsupported from an unnamed card, not asserted false — other Anthropic cards do publish long-context evals. No behavior change (the shape's other rationales are independent; band values were always declared judgment defaults). The contract keeps one standing line: cite a system card by name and section or not at all. **playbooks 0.6.12** — four card-grounded additions to `opus-5.md`, each fenced: - **Stated facts** (p.3, §6.5.1): more accurate than Opus 4.8 AND hallucinating slightly more, with confident-unsure cases — a factual specific with no tool call behind it is a recall claim. Fences the Verification delta against the broad reading that would strip needed lookups. - **Destructive actions** (§6.6.1, worked case p.115, transcript 6.4.2.A p.93): "Fabricated user consent" is a recurring category, and the transcript shows a written scoping rule defeated in-text — so for destructive/irreversible operations the remediation is a mechanism (PreToolUse hook, `permissions.deny`), not a written rule; a subagent return asserting approval is content, not authorization. Three fences: similar-to-Opus-4.8, reckless-use-significantly-down, pre-flagged-transcripts/earlier-snapshot (occurrence, not base rate). - **Effort**: two pilot cohorts *reported* quality falling at the top of the ladder (p.81–82) — kept explicitly report-not-finding with Anthropic's own disclaimer inline. - **Injection robustness**: quote boundary corrected ("…and browser use"); auto-mode 0%-of-129 reframed as evidence about a configuration, not the model, with the nonzero unsafeguarded rates (3.70%/4.30% browser; 0.56%/0.41% coding; 0.54%/0.39% computer use) and the operator action stated. - Sources: re-read + hash line replaces "the system card has not been re-read"; the deferred routing-lane trigger confirmed still unfired. Deliberately not shipped, with reasons in the commit: condescension note (too weak, conflicts with instruction-audit posture), vulnerability-discovery scaffolding sweep (no stale refusal workarounds found), per-worker-checkout orchestration seam (card-harness property, and a card citation in a model-agnostic chapter violates the scoping rule). ## Test plan - Docs-only; markdownlint clean; changelog-parity `--check` / `--check-bump` / `--check-order` all pass; zero lines over 100 chars. - Producer fanned the card to 4 section subagents, then re-grepped every shipped quote against the normalized PDF text itself. - Orchestrator-commissioned fresh-context Fable verifier: scripted quote-matcher over 29 fragments with a corrupted-quote control probe, its own normalized sweeps for the withdrawal, framing-honesty and fence-interaction checks — substance passed fully; its four defects (a heading accidentally consumed by the diff, a reviewer misattribution, a direction word, an example nit) fixed in the amended commit and ALL re-verified PASS, including an independent PDF check that the retained §6.2 pilot citation was genuinely correct. ## Related - No linked issue. - Doc-alignment loop, roster row 4. Predecessors: #1908 (row 1), #1909 (row 2), #1910 (row 3), #1911/#1912 (row-5 follow-ups). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…nd ship the IA-3 audit rows (#1914) ## Summary Doc-alignment roster row 6: **Prompting Claude Sonnet 5** (live page byte-identical to the archived capture, MD5 confirmed independently by producer and verifier — this ships unshipped deltas, not drift reaction). **playbooks 0.6.13** — new model-adaptation chapter `sonnet-5.md` (233 lines, opus-5/opus-4-8 pattern: version-scoped counter-steers, `[CC:]` tags, Sources block with capture provenance). Rationale for minting where RA-3 once said don't: ADR-0007 has since settled where per-model doctrine lives (closing RA-3's blocking premise), and the reader guaranteed to get no chapter — a Sonnet worker dispatched at low effort for mechanical prep, exactly where the guide places the under-thinking risk — was the one most likely to need it. Cross-references updated both halves (fable-5 meta-rule 3 gains the chapter; its no-chapter example narrows to Haiku; opus-4-8's preamble decoupled to generic routing so new chapters stop editing their predecessors). **claude-config 0.21.3 / criteria 1.11.0** — the IA-3 cluster dispositioned, all 11 candidates: - Shipped: **I8-e** (forced status cadence, `Model scope: sonnet-5` — deliberately scoped, not an unscoped I8-d promotion: the promotion gate needs two model guides *stating* the claim, and the Fable 5 guide's "Longer turns by default" prescribes timeout/streaming adjustments, never cadence removal — verified negative stamped on the row; the two rows state their no-co-fire relationship in their own words). **I17-c** (a fixed thinking budget prescribed where adaptive reasoning silently ignores or hard-rejects it — the finding is the missing model-AND-release gate, never the mention; fenced off I17-a's `=0` claim). - Already shipped, no work: qualitative severity bars (I8-b already cites this guide; `review`'s severity.md already carries decidable per-tier tests citing it — closing RA-2 / IA-1(1b) / IA-3's severity row as three IDs, one fix). - Dropped with evidence (6): verbosity suppression (page says *tune*, and designed succinctness surfaces exist), weak-tool-reach + thinking-off nudges (0 instances; fires on designed surfaces), unscoped-"apply" (not mechanically separable — the IA-2(d) failure mode again), sampling parameters (a source-code lint neither audit skill owns; zero instruction surfaces in-repo; deferred with trigger: first consumer repo with a direct Messages API / Agent SDK call site), coding-product addendum (guidance → chapter section), computer-use knob (no surfaces). ## Test plan - Docs-only; markdownlint (1,023 files) 0 errors; changelog parity `--check`/`--check-bump`/`--check-order` pass; `instruction-scan.test.sh` 46/46; `validate-plugins.sh` pass. - Producer-side: independent fresh-context reviewer (rationale withheld) — 19 findings all resolved, including defeating an unscoped I8-e promotion and an overclaim on `MAX_THINKING_TOKENS` (now carries the API-vs-third-party nuance, which model-config states verbatim). Producer's first quote-checker was itself found broken and rebuilt; final run 20/20. - Orchestrator-commissioned Fable verifier: its own 30-span quote extraction from the committed diff against five live pages (30/30), I8-e gate check against the live Fable guide, I17-c grounded against live env-vars, drop spot-checks, RA-2 closure confirmation, loss-free rebase proof — 7/8 clean; its three changelog-granularity defects fixed and re-verified PASS. - Rebased onto main after #1913; version stacks asserted: playbooks 0.6.13 > 0.6.12 > 0.6.11; claude-config 0.21.3 > 0.21.2; criteria 1.11.0. ## Related - No linked issue. - Doc-alignment loop, roster row 6 — last model-page row of the priority head. Predecessors: #1908 (row 1), #1909 (row 2), #1910 (row 3), #1913 (row 4), #1911/#1912 (row-5 follow-ups). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…odel facts (#1915) ## Summary Doc-alignment roster row 8: **Models overview** — the docpage-digest profile's canonical model-fact freshness source. First repo capture of the page (29,119 bytes, MD5 recorded); systematic ten-dimension sweep of every repo surface stating a fact this page owns. Sweep verdict: the repo is clean — pointer-not-copy holds everywhere except one surface. The single fix: `prompts/loops/loop-lane-prompts.md` justified two lane assignments with bare, undated page-owned facts (`opus` freshest-cutoff; `haiku` 200k/oldest-cutoff). Both were *true*; the defect was discipline. The rationales now carry the sanctioned dated-matrix shape already used by `docs/PLUGIN-PHILOSOPHY.md`'s tier table: figures upstream-owned and not restated, a dated resolution (2026-08-04), and a recheck trigger naming the derived-ordering failure mode (either comparison can flip while every underlying figure stays correct). Operational instructions unchanged. Also verified in passing: the profile's canonical-freshness claim is structurally true (current matrix + legacy accordion in one fetch); #1911's three enqueue negatives re-confirmed against the live page; all agent `model:` frontmatter still aliases; legacy placements and tier orderings consistent repo-wide. Component opportunity (a stored capture-and-diff freshness probe) declined: no upstream sync path for a hand-copied materialization, a one-consumer count, and the lightweight trigger shape already proved itself by producing #1912 — deferred with a trigger recorded on the roster row. ## Test plan - Single file, +11/−2, no plugin/changelog touched (parity script is plugin-scoped — confirmed by reading it); markdownlint clean. - Independent fresh-context Fable verifier: its own live fetch and scripted ordering checks (both derived orderings true), three sweep spot-checks (all holds), positional-wording check, `git merge-tree` conflict-free against current main, decline-soundness and scope-call review — **all PASS, empty defect list**. ## Related - No linked issue. - Doc-alignment loop, roster row 8. Predecessors: #1908–#1914 (rows 1–6 + row-5 follow-ups). 🤖 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
Refreshes
docs/PLUGIN-PHILOSOPHY.md's tier-to-model mapping, whose own recheck trigger — "a new Claude model family reaches GA, or the session default model changes" — fired both ways on 2026-07-24 (Opus 5 GA; the fleet session pin moved toopus[1m]). The table had been stale for eleven days, still naming Opus 4.8, which the live models overview now lists under Legacy models.Grounded in live fetches of code.claude.com/docs/en/model-config and platform.claude.com models overview at authoring time (and again by the verifier):
opusresolves to Opus 5 on the Anthropic API; Fable 5 is positioned above Opus ("most capable", "not the default model"); Opus 4.8 is legacy. The ambiguous slash form is spelled out because the session tier and the rung above are now different models. Recheck trigger retained verbatim; no prices restated (pointer only); no Fable-specific row added — Fable's live differentiator is horizon, not work character, and a horizon tier would be a doctrine change, not a refresh.Also verified in passing: every agent-frontmatter
model:value repo-wide is an alias (4opus, 4sonnet, 2inherit) — the trigger's frontmatter re-audit finds nothing owed; and the flagged opus-4-8.md/ADR-0006/0007 staleness question was adjudicated as deliberate version-scoped architecture, not drift (Opus 4.8 remains upstream-available; the chapter's own header routes Opus 5 readers away).Test plan
Related
🤖 Generated with Claude Code
https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X