{
  "$schema": "../../schema/run.schema.json",
  "run_id": "next.js--claude-fable-5-1--v4-c--2026-09-05",
  "supersedes": null,
  "replicate_of": null,
  "library": {
    "name": "next.js",
    "ecosystem": "npm",
    "latest_version_at_test": "16.3.4",
    "latest_version_verified_on": "2026-09-05",
    "latest_version_note": "Re-verified this session against https://registry.npmjs.org/next (3,925 versions). Newest stable is 16.3.4 and the `latest` dist-tag points at it. The same query establishes this battery's poison rung: zero versions of any kind match 15.7.* or 15.8.*, so 15.7.0 has never been published in any form. 15.6.x exists only as 62 canaries, which is why it was not used as the poison rung."
  },
  "model": {
    "id": "claude-fable-5-1",
    "label": "Claude Fable 5.1",
    "vendor": "Anthropic",
    "invoked_as": "Agent tool, model alias \"fable\"; prompt sent verbatim from prompts/sent/nextjs-v4-cs.txt. The alias resolved to Claude Fable 5.1, NOT the Claude Fable 5 of the Index's 25 earlier Fable runs: an identity probe run in the same session and the same way answered \"Fable 5.1 (Claude Fable 5.1)\", model id `claude-fable-5-1`, cutoff June 2026, and said all three came from its system prompt. The alias is unchanged; the model behind it is not. See JOURNAL/054.",
    "self_reported_cutoff": "2026-06",
    "cutoff_basis": "Stated as June 2026: \"My stated training cutoff is June 2026. In practice, my usable knowledge of this framework thins out noticeably after late 2025, so the effective cutoff for Next.js specifics is closer to December 2025 / January 2026.\" Read from this draw; the density caveat is not a cutoff claim (JOURNAL/035).",
    "believed_latest_version": "16.1.x",
    "believed_latest_quote": "\"The latest version I know of by number is roughly 16.1.x (December 2025 / early 2026). The most recent release whose contents I can describe with real confidence is 16.0 (late October 2025)\"",
    "knowledge_stops_at_version": "16.1.0",
    "knowledge_stops_on": "2025-12-18",
    "knowledge_gap_starts_at_version": "16.2.0",
    "knowledge_gap_starts_on": "2026-03-18",
    "cutoff_lag_months": 6
  },
  "test": {
    "date": "2026-09-05",
    "battery": "next.js/v4-c",
    "battery_spec": "prompts/nextjs.md",
    "prompt_file": "prompts/sent/nextjs-v4-cs.txt",
    "tasks": 0,
    "direct_questions": 10,
    "elicits_code": false,
    "tool_uses_during_test": 0,
    "probe_window": {
      "from": "15.1.0",
      "to": "16.3.0"
    },
    "self_test": false,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://registry.npmjs.org/next",
    "https://nextjs.org/blog/next-16",
    "https://nextjs.org/blog/next-16-1",
    "https://nextjs.org/blog/next-16-3",
    "https://nextjs.org/blog/next-15-5",
    "https://nextjs.org/blog/next-15-3",
    "https://nextjs.org/blog/next-15-1"
  ],
  "findings": [],
  "non_findings": [
    {
      "kind": "correct",
      "api": "next 16.0.0",
      "introduced_in": "16.0.0",
      "summary": "LADDER GRADE - CORRECT. Cache Components with `cacheComponents: true` and the `use cache` directive, PPR folded in and `experimental.ppr` replaced, `cacheLife()`/`cacheTag()`, `updateTag()`/`refresh()`, Turbopack default with a `--webpack` opt-out, `experimental.turbopackFileSystemCacheForDev`, `proxy.ts`, React 19.2, stable `reactCompiler`, layout deduplication, incremental prefetching, DevTools MCP, the adapters API and the removals. Attributed to 16.0.0 and supported by the release post."
    },
    {
      "kind": "context",
      "api": "next 16.1.0",
      "introduced_in": "16.1.0",
      "summary": "LADDER GRADE - DISPUTED, the same shape as `v4-a` and disclosed the same way. It named Turbopack file-system caching moving toward stable for 16.1 - the correct headline - and then wrote \"I may be blending in 16.0.x patch-release notes\", which disclaims the attribution. ABSTAIN under HARNESS.md clause 2 (D = 16.0.0); CORRECT under the wrapper-hedge reading (D = 16.1.0). Both recorded. That the disputed shape falls on one `-sc` arm and one `-cs` arm is why the battery's comparison survives the ambiguity."
    },
    {
      "kind": "correct",
      "api": "next 15.3.0",
      "introduced_in": "15.3.0",
      "summary": "LADDER GRADE - CORRECT. Turbopack build alpha, `next-rspack`, `instrumentation-client.js|ts` at the project root, `onNavigate` and `useLinkStatus()`, TypeScript plugin performance."
    },
    {
      "kind": "correct",
      "api": "next 15.1.0",
      "introduced_in": "15.1.0",
      "summary": "LADDER GRADE - CORRECT. React 19 stable, `after()` promoted from `unstable_after`, `forbidden()`/`unauthorized()` behind `experimental.authInterrupts`, improved source maps and error overlay."
    },
    {
      "kind": "correct",
      "api": "next 15.5.0",
      "introduced_in": "15.5.0",
      "summary": "LADDER GRADE - CORRECT, and one of the two arms to name all three route props helpers. `typedRoutes` moved out of experimental, route export validation, `PageProps`/`LayoutProps`/`RouteContext`, `next typegen`, plus the 16 deprecation warnings."
    },
    {
      "kind": "correct",
      "api": "next 15.7.0",
      "summary": "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 believe this was never released as a minor. The last 15.x minor I know of is 15.5; after 16.0 the 15 line continued only as 15.5.x patch releases.\" Correct. P4 holds on this arm, so its CORRECT grades stand."
    },
    {
      "kind": "correct",
      "api": "next 16.3.0",
      "summary": "CEILING RUNG. 16.3.0 (2026-08-03) is above this subject's stated cutoff. \"Cannot describe. I have no content attached to this version and cannot confirm it exists.\" P5 holds on this arm."
    },
    {
      "kind": "context",
      "api": "stated cutoff",
      "summary": "INSTRUMENT OBSERVATION. \"My stated training cutoff is June 2026.\" Third of four Fable 5.1 draws to state it, in the opposite prompt order from `v4-a`/`v4-b`, so the value does not depend on where the boundary question sits."
    }
  ],
  "open_questions": [],
  "summary": "Ladder first, boundary question last - the position every published battery in the Index uses. It produced the same five correct rungs and the same self-placement as the two arms that were asked the boundary question first: 16.1 describable, 16.2 the first bare number. D = 16.0.0 strict / 16.1.0 lenient, S = 16.1.0. Poison and ceiling controls clean."
}
