What Claude Sonnet 5 gets wrong about prisma — battery v1, tested 2026-08-31
Run prisma--claude-sonnet-5--v1--2026-08-31
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.
Subject
Claude Sonnet 5 claude-sonnet-5, Anthropic
Invoked as
Agent tool, model alias "sonnet"
Cutoff the model states
2026-01
Newest prisma release it could place
6.0.0 · 2024-11-28 (~14 month lag)
Oldest prisma release it could not place
6.1.0 · 2024-12-17 (so this run brackets the subject’s boundary to 2024-11-28 – 2024-12-17)
In its own words
"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."
Library at test time
prisma 7.10.0 (npm), verified 2026-08-31
Battery
prisma/v1 · 10 tasks, 4 direct questions · probe window 6.18.0 to 7.0.0
Tool uses during test
0 (a run with any tool use is void — we measure training knowledge, not retrieval)
Tested
2026-08-31
Findings
13, of which 13 chargeable (and 1 retracted, kept below)
F1 · Constructs the client with no arguments, in four separate answers
S1breaks-build
· new PrismaClient()
· removed
· changed in prisma 7.0.0
(2025-11-19)
· chargeable
What the model believes
"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."
What it wrote
const prisma = new PrismaClient()
What works on prisma 7.10.0
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
const 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.
"generator client { provider = \"prisma-client-js\" }" with no output, and in question (d): "Generated client code goes to node_modules/.prisma/client by default."
The older prisma-client-js provider will be removed in future releases of Prisma ORM.
F4 · Imports PrismaClient from @prisma/client
S1breaks-build
· import { PrismaClient } from '@prisma/client'
· behavior-changed
· changed in prisma 7.0.0
(2025-11-19)
· chargeable
What the model believes
"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".
What it wrote
import { PrismaClient } from '@prisma/client'
What works on prisma 7.10.0
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.
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".
What it wrote
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
"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.
What it wrote
# .env, read by the CLI automatically
DATABASE_URL="postgresql://..."
What works on prisma 7.10.0
import 'dotenv/config'
import { 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.
"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."
"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".
What it wrote
RUN npm ci # postinstall generates the client
What works on prisma 7.10.0
RUN npm ci
RUN 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.
"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".
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.
"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.
prisma --[from/to]-url , prisma --[from/to]-schema-datasource ... These are now replaced with --[from/to]-config-datasource
F13 · Sets a MongoDB team up on a version that dropped MongoDB, with no version caveat
S4wrong-metadata
· MongoDB support
· removed
· changed in prisma 7.0.0
(2025-11-19)
· chargeable
What the model believes
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.
What it wrote
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
What works on prisma 7.10.0
// MongoDB: stay on Prisma 6
// 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.
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.
What the model believes
"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.
F12 · States the generated enum object maps member names to themselves (retracted)
Retracted 2026-09-03. 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.
See JOURNAL/048. This charge is excluded from every
count on this site, from the prisma correction pack and from the MCP tools.
The text below is exactly as it was published and is not edited to match the retraction.
"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'.
We now support the @map attribute for enum members, which can be used to set their expected runtime values
What it got right, and near misses
Recorded so the run cannot be read as a hit list. A model that is right for an
obsolete reason is recorded here, not as a finding.
Kind
API
Note
correct
—
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.
correct
—
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. (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.)
miss
prisma.config.ts
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. (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.)