{
  "$schema": "../../schema/run.schema.json",
  "run_id": "prisma--claude-sonnet-5--v1--2026-08-31",
  "supersedes": null,
  "library": {
    "name": "prisma",
    "ecosystem": "npm",
    "latest_version_at_test": "7.10.0",
    "latest_version_verified_on": "2026-08-31",
    "latest_version_note": "Latest stable. The `prisma` package's npm `latest` dist-tag resolved to the prerelease 8.0.0-rc.12 on the same date; no stable 8.0.0 exists."
  },
  "model": {
    "id": "claude-sonnet-5",
    "label": "Claude Sonnet 5",
    "vendor": "Anthropic",
    "invoked_as": "Agent tool, model alias \"sonnet\"",
    "self_reported_cutoff": "2026-01",
    "cutoff_basis": "Self-reported: \"Per this session's stated cutoff, my knowledge cutoff is January 2026.\"",
    "believed_latest_version": "6.x",
    "believed_latest_quote": "\"The latest version I have solid knowledge of is the Prisma ORM 6.x line — Prisma 6.0 landed around November 2024 ... I'm aware there were subsequent 6.x point releases but I can't describe their specific contents with confidence — beyond roughly 6.0/6.1 my knowledge thins into 'I know the version number exists, not what changed in it.' I have no reliable knowledge of anything resembling a Prisma 7.\"",
    "knowledge_stops_at_version": "6.0.0",
    "knowledge_stops_on": "2024-11-28",
    "knowledge_gap_starts_at_version": "6.1.0",
    "knowledge_gap_starts_on": "2024-12-17",
    "cutoff_lag_months": 14
  },
  "test": {
    "date": "2026-08-31",
    "battery": "prisma/v1",
    "battery_spec": "prompts/prisma.md",
    "prompt_file": null,
    "tasks": 10,
    "direct_questions": 4,
    "tool_uses_during_test": 0,
    "probe_window": { "from": "6.18.0", "to": "7.0.0" },
    "self_test": false,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://github.com/prisma/prisma/releases/tag/7.0.0",
    "https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-7",
    "https://registry.npmjs.org/prisma",
    "https://registry.npmjs.org/@prisma/client"
  ],
  "findings": [
    {
      "id": "F1",
      "severity": "S1",
      "severity_label": "breaks-build",
      "title": "Constructs the client with no arguments, in four separate answers",
      "api": "new PrismaClient()",
      "change_kind": "removed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"const prisma = new PrismaClient();\" in tasks 1, 2, 3 and 5, with the mechanism stated explicitly: \"The connection string itself isn't passed here ... PrismaClient picks it up automatically at instantiation.\"",
      "wrong_code": "const prisma = new PrismaClient()",
      "correct_code": "const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })\nconst prisma = new PrismaClient({ adapter })",
      "impact": "Every runnable artefact in the run throws at construction on Prisma 7. This is the single highest-frequency stale prior the battery found.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Prisma Client changes",
          "published_on": "2025-11-19",
          "quote": "new PrismaClient() support has been removed"
        }
      ]
    },
    {
      "id": "F2",
      "severity": "S1",
      "severity_label": "breaks-build",
      "title": "Generator block with no output path",
      "api": "generator client { output }",
      "change_kind": "requirement",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"generator client { provider = \\\"prisma-client-js\\\" }\" with no `output`, and in question (d): \"Generated client code goes to node_modules/.prisma/client by default.\"",
      "wrong_code": "generator client {\n  provider = \"prisma-client-js\"\n}",
      "correct_code": "generator client {\n  provider = \"prisma-client\"\n  output   = \"../src/generated/prisma\"\n}",
      "impact": "`prisma generate` refuses before anything else in the setup can be tried.",
      "citations": [
        {
          "url": "https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-7",
          "title": "Upgrade to Prisma ORM 7 — Schema changes",
          "quote": "the output field is now required in the generator block. Prisma Client will no longer be generated in node_modules by default."
        }
      ]
    },
    {
      "id": "F3",
      "severity": "S3",
      "severity_label": "deprecated",
      "title": "Uses the superseded generator provider throughout",
      "api": "provider = \"prisma-client-js\"",
      "change_kind": "deprecated",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "`prisma-client-js` in every schema shown; the newer provider is never mentioned in any of the ten tasks.",
      "wrong_code": "generator client {\n  provider = \"prisma-client-js\"\n}",
      "correct_code": "generator client {\n  provider = \"prisma-client\"\n  output   = \"../src/generated/prisma\"\n}",
      "impact": "Still functions in 7.x, with a stated removal ahead of it, and needs the extra `@prisma/client-runtime-utils` package once `output` is set.",
      "citations": [
        {
          "url": "https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-7",
          "title": "Upgrade to Prisma ORM 7 — Schema changes",
          "quote": "The older prisma-client-js provider will be removed in future releases of Prisma ORM."
        }
      ]
    },
    {
      "id": "F4",
      "severity": "S1",
      "severity_label": "breaks-build",
      "title": "Imports PrismaClient from @prisma/client",
      "api": "import { PrismaClient } from '@prisma/client'",
      "change_kind": "behavior-changed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"import { PrismaClient } from '@prisma/client';\" in every file, and in (d): \"@prisma/client re-exporting from there — which is why npx prisma generate has to run after every npm install\".",
      "wrong_code": "import { PrismaClient } from '@prisma/client'",
      "correct_code": "import { PrismaClient } from './generated/prisma/client'",
      "impact": "With the generated client now living in your own tree, the package import does not resolve to a client.",
      "citations": [
        {
          "url": "https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-7",
          "title": "Upgrade to Prisma ORM 7 — Schema changes",
          "quote": "// Before import { PrismaClient } from \"@prisma/client\" ; // After import { PrismaClient } from \"./generated/prisma/client\" ;"
        }
      ]
    },
    {
      "id": "F5",
      "severity": "S1",
      "severity_label": "breaks-build",
      "title": "No config file at all; the datasource URL stays in schema.prisma",
      "api": "prisma.config.ts",
      "change_kind": "requirement",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "Task 4 lists the files involved as `.env`, `prisma/schema.prisma`, the migrations directory and the generated client — no config file. In (d): \"historically the only config file is schema.prisma itself\", with `prisma.config.ts` recalled but explicitly held \"with meaningfully less confidence than the rest of this answer\".",
      "wrong_code": "datasource db {\n  provider = \"postgresql\"\n  url      = env(\"DATABASE_URL\")\n}",
      "correct_code": "// prisma.config.ts\nexport default defineConfig({\n  schema: 'prisma/schema.prisma',\n  datasource: { url: env('DATABASE_URL') },\n})",
      "impact": "`prisma migrate` in 7.x requires the config file; the answer's exact migration commands have nothing to read a datasource from.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Schema and config file updates",
          "published_on": "2025-11-19",
          "quote": "prisma.config.ts is now required for projects looking to perform introspection and migration."
        }
      ]
    },
    {
      "id": "F6",
      "severity": "S2",
      "severity_label": "silently-wrong",
      "title": "Assumes the CLI loads .env by itself",
      "api": "automatic .env loading",
      "change_kind": "behavior-changed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"The string lives in .env as DATABASE_URL, referenced from prisma/schema.prisma via url = env(\\\"DATABASE_URL\\\")\" — with no loading step anywhere in the run.",
      "wrong_code": "# .env, read by the CLI automatically\nDATABASE_URL=\"postgresql://...\"",
      "correct_code": "import 'dotenv/config'\nimport { defineConfig, env } from 'prisma/config'",
      "impact": "The variable is simply unset when the CLI runs, and the error names the connection rather than the missing load.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Explicit loading of environment variables",
          "published_on": "2025-11-19",
          "quote": "we're no longer automatically loading environment variables when invoking the Prisma CLI"
        }
      ]
    },
    {
      "id": "F7",
      "severity": "S1",
      "severity_label": "breaks-build",
      "title": "Seed command declared in package.json, with the implicit-run claim attached",
      "api": "package.json prisma key",
      "change_kind": "removed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"With that prisma.seed entry in place, the seed runs automatically whenever you run npx prisma migrate dev ... and whenever you run npx prisma migrate reset. No extra CI/dev wiring needed beyond that config block.\"",
      "wrong_code": "{\n  \"prisma\": {\n    \"seed\": \"ts-node prisma/seed.ts\"\n  }\n}",
      "correct_code": "// prisma.config.ts\nexport default defineConfig({\n  migrations: { seed: 'tsx prisma/seed.ts' },\n})",
      "impact": "The key is not read, so the seed never runs — and the answer's closing promise is that no further wiring is needed.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Removed support for prisma keyword in package.json",
          "published_on": "2025-11-19",
          "quote": "With the move to prisma.config.ts, this no longer makes sense and has been removed."
        }
      ]
    },
    {
      "id": "F8",
      "severity": "S2",
      "severity_label": "silently-wrong",
      "title": "Relies on the postinstall hook to generate the client in Docker",
      "api": "postinstall prisma generate",
      "change_kind": "removed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"the prisma/@prisma/client npm packages register a postinstall hook that runs prisma generate automatically when npm install sees a prisma/schema.prisma\" — and, in task 1, \"usually run automatically as a postinstall\".",
      "wrong_code": "RUN npm ci        # postinstall generates the client",
      "correct_code": "RUN npm ci\nRUN npx prisma generate",
      "impact": "The Dockerfile it wrote does run `npx prisma generate` explicitly, so that artefact survives; the belief is charged because the run states the hook as a fact twice and offers it as the reason the step is optional.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Removal of implicit Prisma commands",
          "published_on": "2025-11-19",
          "quote": "post-install hook would run prisma generate ... This behaviour has been removed in favor of explicitly requiring commands to be run by users."
        }
      ]
    },
    {
      "id": "F9",
      "severity": "S1",
      "severity_label": "breaks-build",
      "title": "Recommends prisma generate --no-engine",
      "api": "prisma generate --no-engine",
      "change_kind": "removed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"Generate a query-engine-free client (--no-engine on prisma generate) when pairing with Prisma Accelerate.\"",
      "wrong_code": "npx prisma generate --no-engine",
      "correct_code": "npx prisma generate",
      "impact": "Unknown flag; the serverless build step fails.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Removal of prisma generate flags",
          "published_on": "2025-11-19",
          "quote": "prisma generate --no-engine"
        }
      ]
    },
    {
      "id": "F10",
      "severity": "S2",
      "severity_label": "silently-wrong",
      "title": "Whole deployment story built around a query-engine binary that no longer ships",
      "api": "engineType",
      "change_kind": "removed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"The correct query-engine binary for the container's OS/libc must be available. If the base image is Alpine (musl) ... you must add the right binaryTargets\", and \"make sure your bundler treats @prisma/client/the engine as external ... which tends to break the binary lookup\".",
      "wrong_code": "generator client {\n  provider      = \"prisma-client-js\"\n  binaryTargets = [\"native\", \"linux-musl-openssl-3.0.x\"]\n}",
      "correct_code": "generator client {\n  provider = \"prisma-client\"\n  output   = \"../src/generated/prisma\"\n}",
      "impact": "Sends a team hunting a libc/OpenSSL mismatch that cannot occur on 7.x, and frames the engine-free client as an optimisation rather than the only client there is.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Removed Client Engines",
          "published_on": "2025-11-19",
          "quote": "We've removed the following client engines: LibraryEngine (engineType = \"library\", the Node-API Client); BinaryEngine (engineType = \"binary\", the long-running executable binary)"
        }
      ]
    },
    {
      "id": "F11",
      "severity": "S1",
      "severity_label": "breaks-build",
      "title": "migrate diff with the removed --from-url / --to-schema-datamodel flags",
      "api": "prisma migrate diff",
      "change_kind": "renamed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"npx prisma migrate diff --from-url \\\"$DATABASE_URL\\\" --to-schema-datamodel prisma/schema.prisma --script\", with a parenthetical listing the same removed flags as the general vocabulary of the command.",
      "wrong_code": "npx prisma migrate diff \\\n  --from-url \"$DATABASE_URL\" \\\n  --to-schema-datamodel prisma/schema.prisma \\\n  --script",
      "correct_code": "npx prisma migrate diff \\\n  --from-config-datasource \\\n  --to-schema prisma/schema.prisma \\\n  --script",
      "impact": "Unknown-flag error, and no version of the command in the answer works.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Removal of prisma migrate flags",
          "published_on": "2025-11-19",
          "quote": "prisma --[from/to]-url , prisma --[from/to]-schema-datasource ... These are now replaced with --[from/to]-config-datasource"
        }
      ]
    },
    {
      "id": "F12",
      "severity": "S2",
      "severity_label": "silently-wrong",
      "title": "States the generated enum object maps member names to themselves",
      "api": "generated enum values",
      "change_kind": "behavior-changed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "\"The @maped string (\\\"mixplat/sms\\\") is what's actually stored in the underlying Postgres enum type; PaymentProvider.MIXPLAT_SMS is what you use in code\", with the generated object shown as `MIXPLAT_SMS: 'MIXPLAT_SMS'`.",
      "wrong_code": "export const PaymentProvider = {\n  MIXPLAT_SMS: 'MIXPLAT_SMS',\n  INTERNAL_TOKEN: 'INTERNAL_TOKEN'\n} as const",
      "correct_code": "export const PaymentProvider: {\n  MixplatSMS: 'mixplat/sms'\n  InternalToken: 'internal/token'\n}",
      "impact": "Silent: comparisons and serialised payloads carry the database value, not the member name.",
      "withdrawn": {
        "on": "2026-09-03",
        "reason": "The subject was right and this Index was wrong. Prisma reverted the 7.0.0 mapped-enum change in 7.3.0 (2026-01-21), so at every release from 7.3.0 onward — including the 7.10.0 that was current when this run was scored — the generated enum object maps each member name to itself, which is what the subject wrote. The charge rested on the 7.0.0 release note and was never verified against a generated client.",
        "journal": "JOURNAL/048"
      },
      "scope_note": "Charged against the generated shape 7.0.0 documents. The pre-7 shape is not separately verified; what is charged is the claim about today.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — Mapped enums",
          "published_on": "2025-11-19",
          "quote": "We now support the @map attribute for enum members, which can be used to set their expected runtime values"
        }
      ]
    },
    {
      "id": "F13",
      "severity": "S4",
      "severity_label": "wrong-metadata",
      "title": "Sets a MongoDB team up on a version that dropped MongoDB, with no version caveat",
      "api": "MongoDB support",
      "change_kind": "removed",
      "introduced_in": "7.0.0",
      "introduced_on": "2025-11-19",
      "chargeable": true,
      "model_belief": "A full MongoDB schema and workflow with six caveats — replica sets, ObjectId mapping, emulated relations — and no mention that the current major does not support the database at all.",
      "wrong_code": "datasource db {\n  provider = \"mongodb\"\n  url      = env(\"DATABASE_URL\")\n}",
      "correct_code": "// MongoDB: stay on Prisma 6\n//   npm i -D prisma@6 && npm i @prisma/client@6",
      "impact": "The one question in the battery where the correct answer is \"pin to the previous major\", answered as though nothing had changed.",
      "citations": [
        {
          "url": "https://github.com/prisma/prisma/releases/tag/7.0.0",
          "title": "Prisma 7.0.0 release notes — MongoDB support in Prisma 7",
          "published_on": "2025-11-19",
          "quote": "Currently, MongoDB is not supported in Prisma 7. For folks using MongoDB, please stay on Prisma v6."
        }
      ]
    },
    {
      "id": "F14",
      "severity": "S4",
      "severity_label": "wrong-metadata",
      "title": "Knowledge stops at 6.0.0 — fourteen months before its own stated cutoff",
      "api": null,
      "change_kind": "version-fact",
      "introduced_in": "6.1.0",
      "introduced_on": "2024-12-17",
      "chargeable": true,
      "chargeable_note": "Anchored to 6.1.0 (2024-12-17), the first release whose contents the subject says it cannot describe, not to the current release. Thirty-odd further releases up to 7.2.0 (2025-12-17) precede the stated 2026-01 cutoff.",
      "model_belief": "\"First release I know only as a bare version number, with no real idea what shipped in it: anything after roughly 6.1 ... I have no reliable knowledge of anything resembling a Prisma 7.\"",
      "impact": "A major version, a mandatory config file and the removal of the no-argument constructor all sit inside the blind spot, which is why this run produces fourteen findings rather than the two or three a near-current subject produces.",
      "citations": [
        {
          "url": "https://registry.npmjs.org/prisma",
          "title": "npm registry metadata for `prisma` (time map)",
          "quote": "6.1.0: 2024-12-17"
        }
      ]
    }
  ],
  "non_findings": [
    {
      "kind": "correct",
      "summary": "Prisma 6.0 dated to \"around November 2024\" — 6.0.0 published 2024-11-28. The one version claim in the run that is exactly right.",
      "api": null
    },
    {
      "kind": "correct",
      "summary": "The v6 material itself is accurate and well-organised: the hot-reload singleton, `migrate deploy` rather than `migrate dev` in CI, the replica-set requirement for MongoDB transactions, `db push` for schemaless workflows. Nothing here is wrong for the version it belongs to.",
      "why_not_a_finding": "The v6 escape hatch: correct v6 usage is only a finding when it is presented as current. It was — see F1-F13 — but the underlying knowledge is sound."
    },
    {
      "kind": "miss",
      "summary": "Question (d) recalled `prisma.config.ts` unprompted — \"I recall Prisma introducing a standalone prisma.config.ts file at some point in the 6.x line\" — and correctly named the seed command as one of its jobs.",
      "api": "prisma.config.ts",
      "chargeable_miss": false,
      "why_not_a_finding": "It is the one v7-shaped fact the subject reached, held with stated low confidence and never used in any task answer. Recorded because it shows the boundary is soft rather than a wall."
    }
  ],
  "open_questions": [],
  "summary": "Fourteen findings, the largest count in the Index, from the subject with the largest blind spot on this library: Sonnet 5 can describe Prisma 6.0.0 (2024-11-28) and nothing after roughly 6.1, which leaves the whole of Prisma 7 outside its knowledge. Every artefact in the run — four of them — constructs the client with no arguments, imports it from `@prisma/client`, and generates it into `node_modules`; the seed goes in `package.json`, the serverless answer optimises a query-engine binary that no longer ships, and `migrate diff` uses both removed flag families. None of this is careless: the v6 material is accurate and well-organised. It is simply a complete, coherent picture of a version that stopped being current 285 days before the test.",
  "markdown": "data/prisma/sonnet-5.md"
}
