Partly: in 7 runs, Claude Opus 5's next.js attribution reaches 16.0.0 (2025-10-22), inside next.js 16, and stops there — next.js was at 16.3.4 when this index last verified against it (2026-09-05). That is ~7 months below the training cutoff the subject stated in those runs (2026-05). 10 findings are currently charged against Claude Opus 5 on next.js (3x S1 breaks-build, 5x S2 silently-wrong, 2x S4 wrong-metadata), each reproduced in a published run and checked against next.js's own release notes. Read the boundary precisely: it is the newest release whose contents the model can correctly attribute to that release, not the newest next.js feature it can use. Past it a model often writes working code with a newer API while naming the wrong release for it.
Answer class inside, decided by one rule applied to every page
of this kind: every measured boundary is at or above the first release of the major named in the question. Every figure below is read from
the dataset at build time; nothing on this page is written by hand.
| Battery | Newest release it can place | Oldest it cannot | Lag vs stated cutoff |
|---|---|---|---|
| v1 2026-08-31 | 16.0.0 2025-10-22 |
16.1.0 2025-12-18 |
~7 months |
| v2-a 2026-09-02 | 16.0.0 2025-10-22 |
16.1.0 2025-12-18 |
~7 months |
| v2-b 2026-09-02 | 16.0.0 2025-10-22 |
16.1.0 2025-12-18 |
~7 months |
| v3-e 2026-09-02 | 16.0.0 2025-10-22 |
16.1.0 2025-12-18 |
~7 months |
| v3-f 2026-09-02 | 16.0.0 2025-10-22 |
16.1.0 2025-12-18 |
~7 months |
| v4-e 2026-09-05 | 16.0.0 2025-10-22 |
16.1.0 2025-12-18 |
~7 months |
| v4-f 2026-09-05 | 16.0.0 2025-10-22 |
16.1.0 2025-12-18 |
~7 months |
7 measurements of this pair, all giving the same boundary. Of those, 2 came from the same stored prompt file, sent concurrently and blind: they agreed exactly.
next.js published 5 minor or major releases in the twelve months before this model’s stated cutoff, which is the scale a spread should be read against.
“Chargeable” means the change was published before this model’s own stated cutoff, so it had the opportunity to know it.
| Severity | Belief | Changed in | Chargeable | Proof |
|---|---|---|---|---|
| S1breaks-build | Ships experimental.ppr and experimental_ppr as the primary answer, both removedexperimental.ppr / export const experimental_ppr |
16.0.0 2025-10-22 |
yes | run · source |
| S1breaks-build | Single-argument revalidateTag in a generated Server ActionrevalidateTag |
16.0.0 2025-10-22 |
yes | run · source |
| S1breaks-build | Invents images.maximumCacheSize, and an unrecognised images key exits the buildimages.maximumCacheSize |
16.1.7 2026-03-16 |
yes | run · source |
| S2silently-wrong | Recommends experimental.clientSegmentCache, removed in 16.0.3 and now silently ignoredexperimental.clientSegmentCache |
16.0.3 2025-11-13 |
yes | run · source |
| S2silently-wrong | Puts the image body cap in the low tens of megabytes and denies a config key lowers itimages.maximumResponseBody |
16.1.5 2026-01-26 |
yes | run · source |
| S2silently-wrong | Names Noto Sans as the ImageResponse default, having explicitly considered and rejected GeistImageResponse default font |
16.2.0 2026-03-18 |
yes | run · source |
| S2silently-wrong | Asserts Link has no transitionTypes prop and predicts a React unknown-attribute warning in both routersLink transitionTypes |
16.2.0 2026-03-18 |
yes | run · source |
| S2silently-wrong | Denies any lever on prefetch request count exists, three releases after experimental.prefetchInlining shipped oneexperimental.prefetchInlining |
16.2.0 2026-03-18 |
yes | run · source |
| S4wrong-metadata | Dates the middleware-to-proxy rename to 15.5; it shipped in 16.0.0proxy.ts |
16.0.0 2025-10-22 |
yes | run · source |
| S4wrong-metadata | Version knowledge stops at 16.0.0, seven months before its stated cutoff | 16.1.0 2025-12-18 |
yes | run · source |
The next.js correction pack states what is true now for each corrected fact, with a primary-source citation, as markdown you can paste into a rules file (raw). What a correction pack measurably changed when one was tested — a pre-registered run on zod — is on the benchmark page, including where it changed nothing.
All of them at once: Which Claude model knows next.js 16 best?
Other subjects on next.js:
Claude Opus 5 on the other libraries: