{
  "$schema": "../../schema/run.schema.json",
  "run_id": "react-router--claude-opus-5-5--v5--2026-09-27",
  "supersedes": null,
  "replicate_of": null,
  "library": {
    "name": "react-router",
    "ecosystem": "npm",
    "latest_version_at_test": "8.4.0",
    "latest_version_verified_on": "2026-09-27",
    "latest_version_note": "From data/react-router/releases.json, fetched 2026-09-27 by tools/fetch-releases.mjs and confirmed current by `--check` at the start of this session (COMMITTED TREE); the registry's `latest` dist-tag read 8.4.0 the same day. Newest stable minor: 8.4.0 (2026-09-15). The ladder's top rung is 8.3.0 (2026-07-22), above this subject's stated cutoff; 8.0.0 (2026-06-17) is in the cutoff month. The poison rung is established from the registry document itself: it lists 7.18.0 through 7.18.4 and no 7.19.x of any kind, prerelease included, and the `version-7` dist-tag reads 7.18.4."
  },
  "model": {
    "id": "claude-opus-5-5",
    "label": "Claude Opus 5.5",
    "vendor": "Anthropic",
    "invoked_as": "Agent 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.",
    "self_reported_cutoff": "2026-06",
    "cutoff_basis": "Self-reported and AFFIRMING: \"My stated knowledge cutoff is June 2026. My detailed knowledge of React Router thins out well before that, around mid to late 2025.\" A recall-density qualification, not a substitute date.",
    "believed_latest_version": "about 7.13, held as a number only",
    "believed_latest_quote": "\"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.\"",
    "believed_latest_quote_form": "draw",
    "knowledge_stops_at_version": "7.9.0",
    "knowledge_stops_on": "2025-09-12",
    "knowledge_stops_provenance": "stated",
    "knowledge_gap_starts_at_version": "7.10.0",
    "knowledge_gap_starts_on": "2025-12-02",
    "knowledge_gap_provenance": "stated",
    "boundary_note": "Three 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.",
    "cutoff_lag_months": 9
  },
  "test": {
    "date": "2026-09-27",
    "battery": "react-router/v5",
    "battery_spec": "prompts/react-router.md",
    "prompt_file": "prompts/sent/react-router-v5.txt",
    "tasks": 2,
    "direct_questions": 3,
    "tasks_declined": 0,
    "elicits_code": false,
    "tool_uses_during_test": 0,
    "probe_window": {
      "from": "7.0.0",
      "to": "8.3.0"
    },
    "self_test": true,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://registry.npmjs.org/react-router"
  ],
  "findings": [],
  "non_findings": [
    {
      "kind": "context",
      "api": "boundary",
      "summary": "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)."
    },
    {
      "kind": "correct",
      "api": "7.9.0: middleware and context stabilised (LF13)",
      "summary": "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."
    },
    {
      "kind": "correct",
      "api": "poison rung 7.19.0, and the top rung 8.3.0",
      "summary": "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."
    },
    {
      "kind": "correct",
      "api": "TASK 1: createBrowserRouter, loader, action, Form, data() 404, ErrorBoundary",
      "summary": "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."
    },
    {
      "kind": "context",
      "api": "release history below the boundary, partly checked",
      "summary": "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."
    }
  ],
  "open_questions": [],
  "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."
}
