What Claude Sonnet 5 misses about prisma, uncharged — battery v7-a, tested 2026-09-27

Run prisma--claude-sonnet-5--v7-a--2026-09-27

Summary

The charging arm, and it did not fail. TASK 1 wrote satisfies Prisma.UserSelect — which compiles on 7.10.0 — and TASK 2 said the colleague's Prisma.validator line would not type-check, which is right. So the battery reproduced no failure on the only live subject, and by the pre-registration no fact is filed. What it got wrong is the history, and in the unusual direction: it believes the new generator never had validator, when it had it for ten releases (6.6.0-6.15.0). Right about now, wrong about the releases below.

SubjectClaude Sonnet 5 claude-sonnet-5, Anthropic
Invoked asAgent tool, model alias "sonnet"; prompt sent verbatim from prompts/sent/prisma-v7.txt (3,698 bytes, md5 87643f2f8580cb03f4ba7513a88f9782), committed and pushed at 1b046af before any subject was spawned. Nominated in the spec BEFORE spawning as the charging arm of the Sonnet 5 pair, and the only chargeable cell: at prisma 6.16.0 Sonnet 5 is the sole `+` in tools/charge-windows.mjs. Identity asked after the draw: "Claude Sonnet 5, model ID `claude-sonnet-5` — I know this from the system information in this session".
Cutoff the model states2026-01
Newest prisma release it could place6.8.0 · 2025-05-15 (~8 month lag)
Oldest prisma release it could not place6.9.0 · 2025-06-03 (so this run brackets the subject’s boundary to 2025-05-15 – 2025-06-03)
In its own words"I'm not even confident a Prisma 7 line exists; the task mentioning 7.2.0 doesn't confirm it for me, it could be real or a probe."
How the bracket was readDirect (a) names a RANGE for the newest describable release — "roughly 6.6.0–6.8.0-ish, shipping around Q1 2025" — so the top of it is recorded, as v6-a's record did with its range. Direct (c)'s gap end is another range, "anything past roughly Prisma 6.8–6.10", read as the first release above the stop end; that end is derived. Its own dates are early (it puts 6.6.0 in ~Feb 2025; it shipped 2025-04-08). (stop end stated, gap end derived)
Library at test timeprisma 7.10.0 (npm), verified 2026-09-27
Batteryprisma/v7-a · 3 tasks, 4 direct questions · probe window 6.15.0 to 7.10.0
Tool uses during test0 (a run with any tool use is void — we measure training knowledge, not retrieval)
Tested2026-09-27
Findings0, of which 0 chargeable

Findings

None. Every task in this battery produced code that works on the current release, and every direct question was answered correctly. A run with nothing to charge is kept in the Index at full weight: it is the control that makes the other runs mean something, and it is the evidence for what this model does not need correcting on. What the subject actually said is recorded below.

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.

KindAPINote
correctPrisma.validator 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. The arm said it chose satisfies "deliberately — see Task 2". (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.)
correctPrisma.validator TASK 2(a) "No", with the mechanism: the prisma-client generator's namespace does not carry validator, "Property 'validator' does not exist on type ...", and satisfies is the replacement. The exact line was compiled on 7.10.0 this session: TS2339 on validator. (Correct at the current release, hedged ("moderate, not certain").)
missPrisma.validator 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: "Prisma.validator was never removed from prisma-client at some later version — rather it was simply never included, going back to when that generator first shipped as Preview". (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.)
contextimport { PrismaClient } from '@prisma/client' TASK 1 imported from ./generated/prisma and said so as a guess: "whether the client lives at .../prisma/client.ts and needs ./generated/prisma/client is something I'm not fully certain of". At 7.10.0 the output directory holds browser.ts, client.ts, commonInputTypes.ts, enums.ts, models.ts and two directories — no index — so the specifier as written resolves to nothing under any resolution mode. (A different surface, normalised before grading by pre-registration. LF5 (import from the generated output path, not @prisma/client) is honoured — the arm imported from the output path; the /client entry file is not stated by any fact, so there is nothing to charge.)
correct— 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; same issue, and this is a higher minor number than any 6.x I can vouch for existing." (The poison rung came back clean, which is what licenses reading the arm's other attributions at face value (JOURNAL/052).)

Sources

Battery specification: prompts/prisma.md in the studio repo. Every finding above also carries its own citation.