{
  "$schema": "../../schema/run.schema.json",
  "run_id": "next.js--claude-fable-5-1--v4-a--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-sc.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 configured cutoff is stated as June 2026. In practice, for this specific package my detailed knowledge ends around December 2025.\" Read from this draw and not back-filled. The density caveat is about next.js and is not a cutoff claim (JOURNAL/035). This value is five months later than the 2026-01 stated by every Claude Fable 5 run in the Index, and the identity probe in `invoked_as` establishes why: this is a different model.",
    "believed_latest_version": "16.1, 16.2 unconfirmed",
    "believed_latest_quote": "\"Latest version I'm aware of as a number: Next.js 16.1, released around December 2025. I have a faint sense that a 16.2 may have followed in early 2026, but I cannot attach content to it\"",
    "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-a",
    "battery_spec": "prompts/nextjs.md",
    "prompt_file": "prompts/sent/nextjs-v4-sc.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. Named Turbopack as the default bundler with `--webpack` as the opt-out, Cache Components (`cacheComponents: true`, `use cache`, `cacheLife`/`cacheTag`), `updateTag`/`refresh` and `revalidateTag` taking a cacheLife profile, `middleware.ts` renamed to `proxy.ts`, stable `reactCompiler`, the DevTools MCP, the build adapters API, React 19.2, the Node 20.9 floor and the `next/image` default changes — all attributed to 16.0.0 and all in the release post."
    },
    {
      "kind": "context",
      "api": "next 16.1.0",
      "introduced_in": "16.1.0",
      "summary": "LADDER GRADE — DISPUTED, and disclosed rather than resolved. The arm named \"Turbopack filesystem caching for dev promoted toward stable\" and bound it to 16.1, which is the release's headline (stable and on by default). It then wrote \"I'm not confident about the exact split between 16.1 and neighboring 16.0.x/16.2 for these items\", which disclaims the attribution itself. Under HARNESS.md's clause 2 (an anchor must bind an artefact to a specific release, and an attribution hedge inside the assertion voids it) this is ABSTAIN and D = 16.0.0; under the wrapper-hedge reading it is CORRECT and D = 16.1.0. Both are recorded. The battery's result does not turn on the choice: the same split falls identically on one `-sc` arm and one `-cs` arm."
    },
    {
      "kind": "correct",
      "api": "next 15.3.0",
      "introduced_in": "15.3.0",
      "summary": "LADDER GRADE — CORRECT. `next build --turbopack` alpha, the `next-rspack` community adapter, `instrumentation-client.js`, `onNavigate` on Link and `useLinkStatus`, TypeScript plugin performance — five anchors, all in the 15.3 post."
    },
    {
      "kind": "correct",
      "api": "next 15.1.0",
      "introduced_in": "15.1.0",
      "summary": "LADDER GRADE — CORRECT. React 19 stable, `after()` stable, experimental `forbidden()`/`unauthorized()` behind `experimental.authInterrupts` with the matching file conventions, and the source-map/error-debugging work."
    },
    {
      "kind": "correct",
      "api": "next 15.5.0",
      "introduced_in": "15.5.0",
      "summary": "LADDER GRADE — CORRECT. Turbopack builds beta, Node.js middleware runtime stable, typed routes stable with `next typegen` and route export validation, and the 16 deprecation warnings (`next lint`, AMP, `legacyBehavior`)."
    },
    {
      "kind": "context",
      "api": "next 15.4.0, 15.2.0",
      "summary": "UNPROMPTED CONTEXT. Question (c) volunteered 15.4 (\"Jul 2025\") and 15.2 (\"Feb 2025\") with content, neither of which is a rung. npm dates them 2025-05-30 and 2025-02-26; the 15.2 month is right and the 15.4 month is two off. Not graded — no rung asked about them."
    },
    {
      "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. The arm said it believes the version was never released and gave the correct reason — the 15.x line ended at 15.5 before 16.0 shipped, with only 15.5.x patches after. 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 knowledge of this version\" — no content invented for a release two months above the stated cutoff. P5 holds on this arm."
    },
    {
      "kind": "context",
      "api": "stated cutoff",
      "summary": "INSTRUMENT OBSERVATION. This draw states a June 2026 cutoff. Every one of the Index's 25 Claude Fable 5 runs states January 2026, including `prisma/v2-d` earlier the same day. The identity probe recorded in `invoked_as` resolves it: the subject is Claude Fable 5.1, a model the Index has never tested. The alias did not change; the model behind it did."
    },
    {
      "kind": "context",
      "api": "self-placement, questions (a) and (c)",
      "summary": "S IS READ FROM (c), AS PRE-REGISTERED. Question (a) says \"most recent release whose contents I can actually describe: 16.0\"; question (c) lists 16.1 with content and names 16.2 as \"the first release I know only as a version number\". The two disagree by one release. The spec fixed the reading as (c) before the arms were spawned, so S = 16.1.0 / gap 16.2.0 here and on all four Fable 5.1 arms, which all show the same divergence."
    }
  ],
  "open_questions": [
    {
      "question": "Questions (a) and (c) place this subject's boundary one release apart in the same transcript — (a) says it can describe 16.0, (c) says it can describe 16.1 and knows 16.2 only as a number. All four Fable 5.1 arms show it, in both orders. Is a one-release (a)/(c) divergence a stable property of this subject, and does the Index's choice of (c) systematically publish the higher of two self-placements?",
      "status": "open"
    }
  ],
  "summary": "Boundary question first, then the ladder. Claude Fable 5.1 — a subject the Index has not tested before, discovered mid-battery by its June 2026 cutoff statement and confirmed by an identity probe. It described 16.0.0, 15.5.0, 15.3.0 and 15.1.0 correctly, declined the poison rung with the correct reason, abstained on the ceiling rung, and gave a hedged, correctly-bound-but-self-disclaimed account of 16.1.0. D = 16.0.0 strict / 16.1.0 lenient; S = 16.1.0 read from question (c) as pre-registered."
}
