What Claude Opus 5 gets right about next.js — battery v4-e, tested 2026-09-05

Run next.js--claude-opus-5--v4-e--2026-09-05 · self-test: the subject is the operator

Summary

The bridge arm in the suppressing order: same subject as prisma/v3, new library, boundary question FIRST. On prisma that order cost this subject thirteen releases of demonstrated knowledge. Here it costs nothing measurable - D = 16.0.0 and S = 16.0.0/16.1.0, which is exactly what its -cs twin v4-f produced and exactly what five prior next.js runs of this subject published. Poison and ceiling controls clean.

SubjectClaude Opus 5 claude-opus-5, Anthropic
Invoked asAgent tool, model override 'opus'; prompt sent verbatim from prompts/sent/nextjs-v4-sc.txt. An identity probe run in the same session answered "Claude Opus 5 (1M context variant)", model id `claude-opus-5[1m]`, cutoff May 2026 - the same subject as every earlier Claude Opus 5 run in the Index, so the id is recorded unchanged as `claude-opus-5`.
Cutoff the model states2026-05
Newest next.js release it could place16.0.0 · 2025-10-22 (~7 month lag)
Oldest next.js release it could not place16.1.0 · 2025-12-18 (so this run brackets the subject’s boundary to 2025-10-22 – 2025-12-18)
In its own words"Latest I have any awareness of: the 16.x line. I have a vague sense that point releases past 16.0 exist (16.1, and probably 16.2), but for those I mostly have the version numbers and a fog of associated topics rather than release contents."
Library at test timenext.js 16.3.4 (npm), verified 2026-09-05
Batterynext.js/v4-e · 0 tasks, 10 direct questions · probe window 15.1.0 to 16.3.0
Tool uses during test0 (a run with any tool use is void — we measure training knowledge, not retrieval)
Tested2026-09-05
Findings0, of which 0 chargeable

Findings

None. Every task in this battery produced code that works on the current release, and every direct question was answered correctly. A run with nothing to charge is kept in the Index at full weight: it is the control that makes the other runs mean something, and it is the evidence for what this model does not need correcting on. What the subject actually said is recorded below.

What it got right, and near misses

Recorded so the run cannot be read as a hit list. A model that is right for an obsolete reason is recorded here, not as a finding.

KindAPINote
correctnext 16.0.0 LADDER GRADE - CORRECT, under a wrapper hedge that HARNESS.md clause 2 says does not void it. Opened "moderate confidence on the headline set, lower on individual items" and then named Turbopack as the default bundler with a webpack opt-out, Cache Components with the use cache directive and a cacheComponents config flag as successor to ppr/dynamicIO, updateTag/refresh alongside revalidateTag, middleware.ts to proxy.ts, React 19.2, the AMP and next lint removals and the Node 20.9 floor. Every one is in the release post.
contextnext 16.1.0 LADDER GRADE - ABSTAIN, and the cleanest instance in the battery of an unbound fragment. "I have fragments I loosely associate with the post-16.0 window - a Next.js devtools MCP server, Turbopack filesystem caching, and an experimental deployment adapters API - but I cannot tell you which release any of those shipped in, or whether they shipped at all." Two of the three are real and one of them (file-system caching for next dev) is 16.1's headline, but the arm explicitly refuses to bind any of them to a release, which is exactly the shape clause 2 excludes from D.
correctnext 15.3.0 LADDER GRADE - CORRECT. Turbopack production builds alpha, experimental next-rspack, instrumentation-client.ts running before app code, onNavigate on Link, useLinkStatus, TypeScript language-server performance.
correctnext 15.1.0 LADDER GRADE - CORRECT. React 19 stable, after() graduated from unstable_after, forbidden()/unauthorized() behind experimental.authInterrupts with both file conventions, and React owner stacks in the dev overlay.
correctnext 15.5.0 LADDER GRADE - CORRECT. Turbopack production builds beta, Node.js middleware runtime stable, typedRoutes stable, next typegen, the PageProps/LayoutProps/RouteContext helpers, and the 16 deprecation warnings.
correctnext 15.7.0 POISON RUNG. 15.7.0 has never been published in any form - zero versions of any kind match 15.7.* on the npm registry, checked this session. "I have no record of a 15.7.0 at all... I would not assert 15.7.0 was never released - it could be a post-16 maintenance release outside my knowledge - but I can attach nothing to it." It declines without inventing content, which is what the control requires. It also reports "a hazy sense of a 15.6 shipping as a bridge release": no stable 15.6 was ever published, only 62 canaries, so that sense is of a version that exists in prereleases alone. P4 holds on this arm, so its CORRECT grades stand.
correctnext 16.3.0 CEILING RUNG. 16.3.0 (2026-08-03) is above this subject's stated cutoff. "Cannot describe. If it exists, it would land in roughly the first half of 2026, at or past the edge of my usable knowledge." P5 holds on this arm.
contextself-placement Question (a) and question (c) AGREE on this subject: (a) names 16.0.0 as the most recent describable release and (c) names 16.1.0 as the first release known only as a version number. The one-release divergence seen on all four Claude Fable 5.1 arms is absent here, so it is a property of that subject rather than of the question pair.

Sources

Battery specification: prompts/nextjs.md in the studio repo. Every finding above also carries its own citation.