{
  "$schema": "../../schema/run.schema.json",
  "run_id": "better-auth--claude-opus-5-5--v8--2026-09-27",
  "supersedes": null,
  "replicate_of": null,
  "library": {
    "name": "better-auth",
    "ecosystem": "npm",
    "latest_version_at_test": "1.7.6",
    "latest_version_verified_on": "2026-09-27",
    "latest_version_note": "From data/better-auth/releases.json, fetched 2026-09-27 by tools/fetch-releases.mjs and confirmed current by `--check` at the start of this session (COMMITTED TREE). Newest stable: 1.7.6; newest stable minor: 1.7.0 (2026-08-18), this ladder's top rung, above the subject's stated cutoff. The same file establishes the poison rung: the stable minor line runs 0.8.0 (2024-11-08) -> 1.0.0 (2024-11-23) with no 0.9.0."
  },
  "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/better-auth-v8.txt (2,361 bytes, md5 9aeef1b40cf809954cde8449025db02b, byte-identical to prompts/sent/better-auth-v6.txt), committed and pushed at d91252a before any subject was spawned. Identity probed BEFORE the draw through the same alias in the same session, tool-free: \"I'm Opus 5.5 with the 1M-token context window, model ID `claude-opus-5-5[1m]`\", cutoff June 2026, both attributed to the system prompt. Drawn concurrently with zod/v8. 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 training cutoff is June 2026. My knowledge of this library gets thin well before that, from roughly late 2025 onward.\" A recall-density qualification, not a substitute date.",
    "believed_latest_version": "1.5.x, held as a number only",
    "believed_latest_quote": "\"The latest version I know of, or think exists, is 1.5.x, and I know it only as a number. The most recent release I can describe is 1.4, and even then only loosely. I think it shipped around late 2025.\"",
    "believed_latest_quote_form": "draw",
    "knowledge_stops_at_version": "1.4.0",
    "knowledge_stops_on": "2025-11-22",
    "knowledge_stops_provenance": "stated",
    "knowledge_gap_starts_at_version": "1.5.0",
    "knowledge_gap_starts_on": "2026-03-01",
    "knowledge_gap_provenance": "stated",
    "boundary_note": "Three placements agree. The rung sort answered DESCRIBE for 1.2.0, 1.3.0 and 1.4.0 (1.4.0 flagged \"only moderately confident\"), NAME for 1.5.0, NO for 1.6.0 and 1.7.0; direct (a) names 1.4 as the last describable release; direct (c) states \"The first release I know only as a version number is 1.5.0\". One minor above Claude Fable 5.1's ladder reading on the identical prompt (better-auth/v6: 1.3.0), and equal to that subject's high draw (v7-c: 1.4.0).",
    "cutoff_lag_months": 7
  },
  "test": {
    "date": "2026-09-27",
    "battery": "better-auth/v8",
    "battery_spec": "prompts/better-auth.md",
    "prompt_file": "prompts/sent/better-auth-v8.txt",
    "tasks": 2,
    "direct_questions": 3,
    "tasks_declined": 0,
    "elicits_code": false,
    "tool_uses_during_test": 0,
    "probe_window": {
      "from": "1.2.0",
      "to": "1.7.0"
    },
    "self_test": true,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://registry.npmjs.org/better-auth"
  ],
  "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 better-auth, so charge-windows.mjs printed `?` for every better-auth release in its column. Boundary: describes 1.4.0 (2025-11-22), holds 1.5.0 (2026-03-01) as a number only. Consequence for the sweep: better-auth 1.5.0 and 1.6.0 (2026-04-06) become LIVE against this subject; 1.7.0 (2026-08-18) stays above its stated cutoff. The pre-registered prediction (boundary at 1.3.0 or 1.4.0) held, at its high end."
    },
    {
      "kind": "context",
      "api": "poison rung 0.9.0",
      "summary": "The poison rung was answered NAME, not NO, glossed \"I believe the pre-1.0 releases went through 0.x versions, but I can't say what 0.9 specifically contained.\" better-auth published no stable 0.9.0 (0.8.0 on 2024-11-08, then 1.0.0 on 2024-11-23). This is the same answer Claude Fable 5.1 gave on the same rung (better-auth/v6), and under HARNESS § *A poison rung inside a dense cadence tests interpolation, not recall*, NAME on a poison rung does not void a ladder; only a claim to describe it does. No content was offered for 0.9.0. The top rung 1.7.0 and 1.6.0 both answered NO."
    },
    {
      "kind": "correct",
      "api": "1.4.0: stateless / database-less sessions",
      "summary": "The 1.4 description leads with a \"stateless or cookie-only session mode that doesn't need a database\" and cookie-cache improvements, which is LF1 (introduced 1.4.0). Experimental database joins match what Claude Fable 5.1's v7-c described at 1.4.0. The SCIM plugin placed at 1.4 is flagged by the subject as uncertain (\"I believe\") and is not verified here; it is not what the boundary rests on."
    },
    {
      "kind": "correct",
      "api": "TASK 1: email/password auth instance and session guard",
      "summary": "The demonstration task, answered in the 1.x API: `betterAuth({ database: new Pool(...), emailAndPassword: { enabled: true } })` with the Kysely-dialect reason for passing a `pg` Pool, `toNodeHandler(auth)` mounted before `express.json()` with the raw-body reason, `auth.api.getSession({ headers: fromNodeHeaders(req.headers) })` returning 401 when null, the Express 5 `/api/auth/*splat` route syntax, and `npx @better-auth/cli migrate` / `generate` for the schema. Structurally the same answer Claude Fable 5.1 gave."
    },
    {
      "kind": "correct",
      "api": "release dating below the boundary",
      "summary": "Dated by season on every release it described: 1.0/1.1 about late 2024 (2024-11-23, 2024-12-20), 1.2 about early 2025 (2025-03-01), 1.3 about mid-2025 (2025-07-19), 1.4 about late 2025 (2025-11-22). The arm also placed SAML support in the SSO plugin at 1.3; LF4 records SAML in the separately versioned @better-auth/sso and dates the fact at 1.4.0, so that attribution is not graded here."
    }
  ],
  "open_questions": [],
  "summary": "A boundary ladder, not a battery: nothing charged, `elicits_code: false`, one arm. Claude Opus 5.5 describes better-auth through 1.4.0 (2025-11-22) and holds 1.5.0 as a bare number, seven months below its stated June 2026 cutoff. That is one minor above Claude Fable 5.1's ladder on the byte-identical prompt. better-auth 1.5.0 and 1.6.0 become live windows for this subject. The poison rung 0.9.0 was answered NAME, as Fable 5.1 answered it, which does not void a ladder; 1.6.0 and 1.7.0 answered NO."
}
