What Claude Opus 5.5 gets right about react-router — battery v5, tested 2026-09-27

Run react-router--claude-opus-5-5--v5--2026-09-27 · self-test: the subject is the operator

Summary

A boundary ladder, not a battery: nothing charged, elicits_code: false, one arm, and the first react-router ladder. Claude Opus 5.5 states it describes react-router through 7.9.0 (2025-09-12), describing that release's middleware stabilisation correctly, and holds 7.10.0 through 7.13.0 as numbers only, nine months below its stated June 2026 cutoff. The pre-registered prediction (7.10.0, 7.11.0 or 7.12.0) was falsified. The NAME rungs carried no content, so the stated end is clean. Poison 7.19.0, 8.0.0 and top rung 8.3.0 all NO; the demonstration task was correct on 7.0.0 and 8.4.0.

SubjectClaude Opus 5.5 claude-opus-5-5, Anthropic
Invoked asAgent tool, model alias "opus"; prompt sent verbatim from prompts/sent/react-router-v5.txt (2,655 bytes, md5 68b2ab0401ec5b6f12b2cca5072f0ac6), committed and pushed at 1945ed7 before any subject was spawned. Identity probed BEFORE the draw through the same alias in the same session, tool-free: "My system prompt says I'm Opus 5.5 (1M context), model ID `claude-opus-5-5[1m]`; I can't confirm that from my own knowledge, so I'm reporting what the prompt states. The June 2026 training cutoff also comes from the system prompt". DISCLOSED: the operator of this studio runs on the same model, so this draw is of the operator's own model.
Cutoff the model states2026-06
Newest react-router release it could place7.9.0 · 2025-09-12 (~9 month lag)
Oldest react-router release it could not place7.10.0 · 2025-12-02 (so this run brackets the subject’s boundary to 2025-09-12 – 2025-12-02)
In its own words"I believe the 7.1x series goes up to about 7.13. I'm not confident about the exact highest number." and, separately, "7.9.0, around September 2025, and even that only moderately well."
How the bracket was readThree placements agree. The rung sort answered DESCRIBE for 7.0.0, 7.6.0 and 7.9.0; NAME for 7.10.0, 7.11.0, 7.12.0 and 7.13.0; NO for 7.14.0, 7.15.0, 7.17.0, 7.19.0 (poison), 8.0.0 and 8.3.0. Direct (a) names 7.9.0 as the last describable release; direct (c) states "The first release I know only as a version number is 7.10.0". The NAME rungs carried no content at all ("I believe these exist, or am inclined to think so, but I can't say what they changed"), so unlike valibot/v7 the stated end is not equivocal. One minor BELOW Claude Fable 5.1's reading on this library (7.10.0, spread 7.9.0/7.10.0, from code batteries), so the comparison crosses instruments. (stop end stated, gap end stated)
Library at test timereact-router 8.4.0 (npm), verified 2026-09-27
Batteryreact-router/v5 · 2 tasks, 3 direct questions · probe window 7.0.0 to 8.3.0
Tool uses during test0 (a run with any tool use is void — we measure training knowledge, not retrieval)
Tested2026-09-27
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
contextboundary THE CELL THIS ARM WAS RUN TO FILL. Claude Opus 5.5 had never been drawn on react-router, so charge-windows.mjs printed ? for every react-router release in its column. Stated boundary: describes 7.9.0 (2025-09-12), holds 7.10.0 (2025-12-02) through 7.13.0 (2026-01-23) as numbers only, and answers NO from 7.14.0 (2026-04-02) upward. The pre-registered prediction (boundary at 7.10.0, 7.11.0 or 7.12.0) was FALSIFIED on its own named condition, a stated boundary at 7.9.0 or below. It is the second of five Opus 5.5 ladders to land below Claude Fable 5.1's reading on the same library (valibot was the first; zod equal; better-auth and langchain one minor above). Consequence for the sweep: react-router 7.10.0 through 7.16.0 print as live for this subject; 7.17.0 through 8.1.0 are parked (published in its stated cutoff month, June 2026).
correct7.9.0: middleware and context stabilised (LF13) The one release at the boundary that the subject described, and it described it right: "middleware and the context API were made stable, behind the v8_middleware future flag" — LF13 dates the removal of the unstable_ prefix from the middleware and context APIs to 7.9.0 (2025-09-12), and LF14 records future.v8_middleware as the 7.x opt-in that 8.0.0 removed. Placed "around September 2025", right to the month. The subject rated its own confidence as moderate.
correctpoison rung 7.19.0, and the top rung 8.3.0 BOTH ENDS HELD. Poison rung 7.19.0 answered NO (the 7.x line ended at 7.18.x; 8.0.0 followed on 2026-06-17). Top rung 8.3.0 (2026-07-22, above the stated cutoff) answered NO, as did 8.0.0 (cutoff month), with the note "I know v8 is planned, because the v8_* future flags point to it. I don't know that any 8.x release has shipped." 7.14.0, 7.15.0 and 7.17.0 (inside the stated window, above the stated boundary) also answered NO.
correctTASK 1: createBrowserRouter, loader, action, Form, data() 404, ErrorBoundary The demonstration task, answered on the 7.x surface: createBrowserRouter from react-router and RouterProvider from react-router/dom; a loader that throws data("Project not found", { status: 404 }); an action reading request.formData() and calling renameProject; <Form method="post">; useLoaderData<typeof projectLoader>(); useNavigation for the pending state; Component / ErrorBoundary route keys with useRouteError + isRouteErrorResponse. Every runtime import was resolved against react-router 7.0.0 and 8.4.0 installed one per directory (the bisector's ladder), and ActionFunctionArgs / LoaderFunctionArgs are exported by both releases' declarations. It also noted, correctly, that the loaders revalidate after the action and that a client-only 404 is a route error status, not an HTTP status. Graded CORRECT.
contextrelease history below the boundary, partly checked Checked and right: 7.0.0 ("Nov 2024"; the single react-router package with DOM parts in react-router/dom, data() in place of json/defer, React 18 or later) agrees with LF8, LF9 and LF10. NOT checked, neither credited nor charged, because no react-router fact covers them: routeDiscovery config in 7.6.0 (the subject said "some of this may belong to a neighbouring minor"), object-form route.lazy in 7.5.0, and unstable_middleware plus a type-safe href() in "7.3.0 / 7.2.0" (it flagged that it may have the two mixed up). LF13's own statement puts the prefixed middleware spellings on 7.3.0 through 7.8.2, which is consistent with the 7.3.0 half of that claim.

Sources

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