Skip to content

docs(philosophy): refresh the tier-to-model mapping for Opus 5 GA - #1912

Merged
kyle-sexton merged 2 commits into
mainfrom
docs/refresh-tier-model-table
Aug 4, 2026
Merged

docs(philosophy): refresh the tier-to-model mapping for Opus 5 GA#1912
kyle-sexton merged 2 commits into
mainfrom
docs/refresh-tier-model-table

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

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 to opus[1m]). The table had been stale for eleven days, still naming Opus 4.8, which the live models overview now lists under Legacy models.

Tier Old (2026-07-22) New (2026-08-04)
Consequential verdict (session tier or above) Fable 5 / Opus 4.8 Opus 5 at the session tier; Fable 5 above it
Mechanical prep, one tier down Sonnet 5 Sonnet 5 (re-verified)
Bulk mechanical sweeps Haiku 4.5 Haiku 4.5 (re-verified)

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): opus resolves 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 (4 opus, 4 sonnet, 2 inherit) — 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

  • Docs-only, single file, 14+/3−; markdownlint clean.
  • Independent fresh-context Fable verifier, 5 binary criteria — its own live fetches (quotes byte-exact, legacy placement confirmed), re-derivation soundness including an adversarial challenge to the no-Fable-row call and the session-tier semantics, style/scope, loop-lane §3 no-conflict check (the convention itself sanctions dated snapshot tables with recheck triggers; alias-only binds lane bodies), commit hygiene — 5/5 PASS, empty defect list.

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X

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>
@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown

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

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 2m 59s —— View job


Code review

  • Gather context (PR body, diff, CLAUDE.md/AGENTS.md)
  • Understand the request (code review of docs/PLUGIN-PHILOSOPHY.md changes)
  • Review diff for correctness and alignment with CLAUDE.md/REVIEW.md
  • Post findings

Scope reviewed: docs/PLUGIN-PHILOSOPHY.md (+14/-3, only file changed).

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:

  • Table and recheck-trigger date are updated together and consistently (2026-07-222026-08-04 in both the trigger sentence and the table header).
  • docs/ carries no plugin.json — confirmed via git ls-files docs/ — so the "no version bump" claim in the commit message holds.
  • The code.claude.com/docs/en/model-config and platform.claude.com/docs/en/about-claude/models/overview URLs match the citation form used elsewhere in this repo (e.g. plugins/playbooks/reference/model-adaptation/opus-5.md), and model-config was already cited earlier in this same doc (line 551) prior to this PR, so this isn't a new unindexed source.
  • No markdownlint-relevant issues in the diff itself (no trailing whitespace, table/blank-line structure matches MD060-disabled GFM style); I wasn't able to actually execute markdownlint-cli2 in this sandbox (network-gated), so I relied on manual inspection against .markdownlint-cli2.jsonc's enabled rules rather than confirming the PR's own "markdownlint clean" claim.
  • Fresh-docs mandate: this file isn't a plugin manifest/marketplace schema/hook contract, so it's arguably out of the mandate's strict trigger scope — but the PR clearly followed its spirit anyway (live fetch + independent verifier per the test plan), which is the right call given the content touches documented harness behavior (model resolution).

One minor prose nit, low severity:

  • docs/PLUGIN-PHILOSOPHY.md#L578-L581 — the closing citation is its own standalone sentence: ...and are not restated here. ([model config](...), [models overview](...), both verified 2026-08-04.). Elsewhere in this doc, source citations are always grammatically attached inside the sentence they support (e.g. line 470: ...it carries the same bias forward ([subagents](...), verified 2026-07-22).; line 518 similarly). Here the citation trails as a bare parenthetical after the pricing sentence, but it's actually sourcing the Opus 5 / Fable 5 quotes two sentences earlier — a reader could plausibly misread it as citing the pricing claim it sits next to. Not a factual problem, just worth folding back into the sentence it actually supports for consistency with the doc's own citation convention.

No architecture, error-handling, or test-coverage concerns — this is a prose/data refresh with no code or contract-surface change.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread docs/PLUGIN-PHILOSOPHY.md Outdated
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

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

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 2m 2s —— View job


Code review (re-check after fix commit e43da81)

  • Gather context (diff since last review, fix commit, review comments)
  • Review current state of docs/PLUGIN-PHILOSOPHY.md
  • Verify the Codex P2 finding fix is sound
  • Post findings

Scope reviewed: docs/PLUGIN-PHILOSOPHY.md (only file changed), specifically the fix commit e43da81 applied in response to the Codex P2 finding.

Codex P2 fix — sound. The original row 1 named absolute models ("Fable 5 / Opus 4.8") in a section whose preceding invariant (docs/PLUGIN-PHILOSOPHY.md#L548-L549) explicitly makes the ladder relative to the active session model — Codex correctly flagged that a Fable-session reader could misread the table as an absolute mapping and dispatch a consequential verifier below their own tier. The fix at L568 and L572-L579 resolves it correctly:

  • The table cell now leads with "The active session model" and only then names the fleet-pin resolution — same order as the fix's own reasoning.
  • The new prose explicitly states the degenerate case Codex worried about: "a session already running Fable 5 has no rung above and dispatches consequential verdicts at its own tier."
  • opus[1m] (an alias with a context-window suffix) is established terminology elsewhere in this repo, not invented for this PR — plugins/claude-config/skills/audit-instructions/SKILL.md:97-99 uses the identical bracket-suffix form for family aliases, so this is consistent usage rather than a new one-off pattern.
  • The fleet pin itself isn't tracked in this repo (no model key in .claude/settings.json), so it's correctly presented as external/operational context rather than something the doc could verify from repo state — appropriate given the doc already treats "the session's effective model" as externally resolved elsewhere (L550).

Confirmed no regressions in the surrounding math: rows 2–3 unchanged, the date in the recheck-trigger sentence and table header stay in sync (2026-08-04 in both), and git diff 5202d3f..HEAD -- docs/PLUGIN-PHILOSOPHY.md shows only the tier-mapping section touched.

Still open (unchanged from prior review, low severity, not blocking): the closing citation at L580-L584([model config](...), [models overview](...), both verified 2026-08-04.) — still trails as a standalone parenthetical after the pricing-pointer sentence, even though it actually sources the Opus 5 / Fable 5 quotes two sentences earlier. Elsewhere in this doc (e.g. L551, L557, L559) citations are grammatically attached inside the sentence they support. Not a factual issue, purely a style-consistency nit; optional to fold in.

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.

@kyle-sexton
kyle-sexton merged commit 7b48cce into main Aug 4, 2026
32 checks passed
@kyle-sexton
kyle-sexton deleted the docs/refresh-tier-model-table branch August 4, 2026 04:24
kyle-sexton added a commit that referenced this pull request Aug 4, 2026
…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>
kyle-sexton added a commit that referenced this pull request Aug 4, 2026
…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>
kyle-sexton added a commit that referenced this pull request Aug 4, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant