{
  "$schema": "../../schema/run.schema.json",
  "run_id": "prisma--claude-sonnet-5--v7-b--2026-09-27",
  "supersedes": null,
  "replicate_of": "prisma--claude-sonnet-5--v7-a--2026-09-27",
  "library": {
    "name": "prisma",
    "ecosystem": "npm",
    "latest_version_at_test": "7.10.0",
    "latest_version_verified_on": "2026-09-27",
    "latest_version_note": "The battery targets `Prisma.validator` under the `prisma-client` generator (BACKLOG 1h-n-viii). JOURNAL/294 + this session: under the `prisma-client` generator `Prisma.validator` is emitted 6.6.0-6.15.0 and absent from 6.16.0 (TS2339 on a reader's call); `prisma-client-js` emits it at every tracked release. No fact carries it: the method rule wants a reproduced failure first, and this battery is the attempt."
  },
  "model": {
    "id": "claude-sonnet-5",
    "label": "Claude Sonnet 5",
    "vendor": "Anthropic",
    "invoked_as": "Agent tool, model alias \"sonnet\"; the same stored file as v7-a, sent blind and concurrently (prompts/sent/prisma-v7.txt (3,698 bytes, md5 87643f2f8580cb03f4ba7513a88f9782), committed and pushed at 1b046af before any subject was spawned). The born-duplicated second draw, non-charging by pre-registration. Identity asked after the draw: \"Claude Sonnet 5, model ID `claude-sonnet-5`\".",
    "self_reported_cutoff": "2026-01",
    "cutoff_basis": "Self-reported and attributed to the session context: \"January 2026, per this session's stated assistant knowledge cutoff.\" With the recall-density qualification this subject always gives: detailed knowledge \"likely thins out well before that date — probably somewhere in 2025\".",
    "believed_latest_version": null,
    "believed_latest_quote": "\"somewhere in the Prisma 6.x line — I don't have a reliable specific minor to name as 'the latest.'\"",
    "believed_latest_quote_form": "draw",
    "knowledge_stops_at_version": "6.0.0",
    "knowledge_stops_on": "2024-11-28",
    "knowledge_stops_provenance": "stated",
    "knowledge_gap_starts_at_version": "6.1.0",
    "knowledge_gap_starts_on": "2024-12-17",
    "knowledge_gap_provenance": "derived",
    "boundary_note": "Direct (a) names 6.0.0 as the newest release whose contents it can describe \"with real confidence\". Its gap end is not a release — \"anything from roughly the middle of the 6.x line onward — I can't honestly point to a specific minor\" — so the gap end is DERIVED as the first release above the stated stop end, 6.1.0, which is the tightest bracket the draw licenses and is flagged as a reading, not a quote. Eight minors below v7-a's stop end (6.8.0) from the same stored prompt, sent concurrently: the replicate pair disagrees on the boundary by half a year, which is this subject's documented instability.",
    "cutoff_lag_months": 14
  },
  "test": {
    "date": "2026-09-27",
    "battery": "prisma/v7-b",
    "battery_spec": "prompts/prisma.md",
    "prompt_file": "prompts/sent/prisma-v7.txt",
    "tasks": 3,
    "direct_questions": 4,
    "elicits_code": true,
    "tool_uses_during_test": 0,
    "probe_window": {
      "from": "6.15.0",
      "to": "7.10.0"
    },
    "self_test": false,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://github.com/prisma/orm/releases/tag/6.16.0",
    "https://registry.npmjs.org/prisma"
  ],
  "findings": [],
  "non_findings": [
    {
      "kind": "correct",
      "summary": "TASK 1 wrote the selection as `{ id: true, email: true, name: true } satisfies Prisma.UserSelect` with `Prisma.UserGetPayload<{ select: typeof ... }>` for the type — no `Prisma.validator`. It compiles on 7.10.0 and on 6.15.0. It used `import type` for both names and `findUniqueOrThrow` with a non-null return type; both compile.",
      "api": "Prisma.validator",
      "chargeable_miss": false,
      "why_not_a_finding": "The anchor probe, and it passed. Graded by compiling: the arm's src/user-summary.ts, import specifier normalised to ./generated/prisma/client.js as pre-registered, compiled with TypeScript 5.9.3 (strict, nodenext) against the battery's own schema generated by the `prisma-client` generator on the bisector's 7.10.0 and 6.15.0 rungs. Controls in the same session: the stale artifact (Prisma.validator) OK at 6.15.0 and TS2339 at 6.16.0 and 7.10.0; the correct artifact OK on all three; a misspelled-field `satisfies` TS2561 on all three; a poison member TS2339 on all three."
    },
    {
      "kind": "correct",
      "summary": "TASK 2(a) \"no\", with the mechanism (the `prisma-client` generator does not export `validator`; \"Property 'validator' does not exist on type ...\") and a request to compile-check before merging. The exact line was compiled on 7.10.0 this session: TS2339.",
      "api": "Prisma.validator",
      "chargeable_miss": false,
      "why_not_a_finding": "Correct at the current release."
    },
    {
      "kind": "miss",
      "summary": "TASK 3 says the `prisma-client` generator never provided `Prisma.validator` at all, from its first preview. Measured false: the generator emits `export const validator = runtime.Public.validator` on every release from 6.6.0 (its first) through 6.15.0, and a reader's `Prisma.validator<Prisma.UserSelect>()(...)` type-checks at 6.15.0 (JOURNAL/294, re-run this session). Quote: \"I believe it simply never included `Prisma.validator` from its earliest preview, rather than shipping it and removing it later.\" Both Sonnet draws hold this, blind.",
      "api": "Prisma.validator",
      "introduced_in": "6.16.0",
      "chargeable_miss": false,
      "why_not_a_finding": "Pre-registered: severity is fixed by the TASK 1 artifact alone and TASK 3 is not scored; and no fact exists to charge it against. Recorded because its DIRECTION is the opposite of a stale prior — right about the current release, wrong about 6.6.0-6.15.0 — so a reader pinned to those releases would be told a working helper does not exist. The reader_exposure field cannot carry it: 6.16.0 is published before this subject's stated cutoff, and that field's admission rule refuses a pinned-below row there."
    },
    {
      "kind": "context",
      "summary": "TASK 1 imported from `./generated/prisma`, which has no index file at 7.10.0, so the specifier as written resolves to nothing.",
      "api": "import { PrismaClient } from '@prisma/client'",
      "chargeable_miss": false,
      "why_not_a_finding": "Normalised before grading by pre-registration; LF5 is honoured (the output path, not @prisma/client), and the `/client` entry is not stated by any fact."
    },
    {
      "kind": "correct",
      "summary": "Direct (d)'s poison rung: declined 6.21.0, which was never published (the 6.x line ends at 6.19.0 in data/prisma/releases.json, fetched 2026-09-27). \"6.21.0 — cannot describe; a `.21` minor would imply a very long 6.x line, which I can't confirm.\"",
      "chargeable_miss": false,
      "why_not_a_finding": "The poison rung came back clean, which is what licenses reading the arm's other attributions at face value (JOURNAL/052)."
    }
  ],
  "open_questions": [],
  "summary": "The replicate agrees with the charging arm on everything the battery grades — `satisfies` in TASK 1, \"no\" in TASK 2, \"never included\" in TASK 3 — and disagrees with it by eight minors on where its knowledge of Prisma stops (6.0.0 against 6.8.0). The grade replicates; the boundary does not."
}
