{
 "$schema": "../../schema/run.schema.json",
 "run_id": "prisma--claude-sonnet-5--v2-c--2026-09-05",
 "supersedes": null,
 "replicate_of": null,
 "library": {
  "name": "prisma",
  "ecosystem": "npm",
  "latest_version_at_test": "7.10.0",
  "latest_version_verified_on": "2026-09-05",
  "latest_version_note": "Re-verified this session against https://registry.npmjs.org/prisma. The newest STABLE release is 7.10.0 (2026-08-25). The npm `latest` dist-tag still points at a prerelease — `8.0.0-rc.13` on this date, up from the `8.0.0-rc.12` recorded on 2026-08-31 — with `prev: 7.10.0`. The Index continues to record 7.10.0 as latest stable and to say why. No stable 8.0.0 exists."
 },
 "model": {
  "id": "claude-sonnet-5",
  "label": "Claude Sonnet 5",
  "vendor": "Anthropic",
  "invoked_as": "Agent tool, model override 'sonnet', no tools available to the subject",
  "self_reported_cutoff": "2026-01",
  "cutoff_basis": "Stated as January 2026, with the environment named as the source and a density caveat attached: \"This session states my knowledge cutoff as January 2026, but that's a ceiling, not a measure of density.\" Read from this draw. 7.4.0 (2026-02-11) postdates it, so this arm is below-floor and charges nothing under the fairness rule.",
  "believed_latest_version": null,
  "believed_latest_quote": "\"I don't have a reliable specific number for 'latest.' My release-content knowledge is solid through Prisma 6.0 (~November 2024)... Past that point I'm extrapolating from Prisma's historical ~monthly minor cadence, not recalling an actual announcement — so my belief about 'latest' is a guess, not a memory.\"",
  "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-09-05",
  "battery": "prisma/v2-c",
  "battery_spec": "prompts/prisma.md",
  "prompt_file": "prompts/sent/prisma-v2.txt",
  "tasks": 3,
  "direct_questions": 4,
  "tool_uses_during_test": 0,
  "probe_window": {
   "from": "7.4.0",
   "to": "7.10.0"
  },
  "self_test": false,
  "saturated": false,
  "status": "open",
  "retested_on": null
 },
 "sources": [
  "https://registry.npmjs.org/prisma",
  "https://github.com/prisma/prisma/releases/tag/7.4.0",
  "https://registry.npmjs.org/prisma/-/prisma-7.3.0.tgz",
  "https://registry.npmjs.org/prisma/-/prisma-7.4.0.tgz",
  "https://registry.npmjs.org/prisma/-/prisma-7.10.0.tgz"
 ],
 "findings": [],
 "non_findings": [
  {
   "kind": "miss",
   "summary": "THE CONTROL RESULT, and prediction P2 holding. Task 1(i): \"No.\" (d)(i): \"Does not exist. Filtered/partial indexes in the schema DSL are a long-standing open feature request, never shipped as of my knowledge — you always drop to raw SQL in a migration.\" This is the same failure `v2-a` charges, from a subject whose stated cutoff is one month BELOW the release that fixes it. That is what the arm is for: it establishes that the correct answer is not derivable from the surrounding schema language, so `v2-a`'s failure reads as a stale belief rather than as a probe nobody could pass.",
   "api": "@@index([...], where: ...) / @@unique([...], where: ...)",
   "introduced_in": "7.4.0",
   "chargeable_miss": false,
   "why_not_a_finding": "Below-floor control. 7.4.0 was published 2026-02-11, after this subject's stated cutoff of 2026-01, so the fairness rule bars a charge and this is not an undercount — it is the arm working. The gap is one month, the tightest control margin in the Index, and 7.3.0 (2026-01-21) falls inside the stated month itself."
  },
  {
   "kind": "correct",
   "summary": "Task 2, the covering-index probe, answered CORRECTLY. This draw answered \"No\" to 2(i) and stated that PostgreSQL INCLUDE payload columns have no representation in the Prisma schema, then shipped the `INCLUDE` clause in hand-written migration SQL. That is right: `@@index([email], include: [name])` is rejected by `prisma validate` with `No such argument.` at 7.4.0 and at 7.10.0 (fact LF27). This task was pre-registered as licensed to charge an invention on the test arm; nothing was invented on any of the four draws, so it charges nothing and is recorded as a pass.",
   "api": "@@index([...], include: [...])",
   "introduced_in": null,
   "why_not_a_finding": "The answer is correct against the shipped validator. Prediction P3 — that at least one draw would over-extend 7.4.0's new index argument into `include:` — is FALSIFIED 0 of 4."
  },
  {
   "kind": "correct",
   "summary": "Task 3, the floor probe, PASSED. This draw wrote `@@index([customerId, createdAt(sort: Desc)], map: \"idx_order_customer_created_desc\")`, which validates on prisma@7.10.0. Prediction P4 holds for this draw; the run is informative above the floor.",
   "api": "@@index([...], sort / map)",
   "introduced_in": "4.0.0",
   "why_not_a_finding": "Correct code on the current release."
  },
  {
   "kind": "context",
   "summary": "The anchor, (d)(iii): \"Cannot place.\" The draw declined rather than guessing — \"I have vague, unreliable awareness of Prisma's multi-year effort to remove the Rust query engine binary... but I can't attach it to a specific release with any confidence. This is a genuine gap, not a hedge.\" Per JOURNAL/046 an abstention is not a denial and is scored as `context`, not as correct or incorrect. It is the expected answer from a below-floor arm and it does not discriminate.",
   "api": "query plan cache",
   "introduced_in": "7.4.0",
   "why_not_a_finding": "An abstention on a belief question."
  },
  {
   "kind": "context",
   "summary": "BOUNDARY. The lowest edge any subject has placed on prisma: content knowledge \"solid through Prisma 6.0 (~November 2024)\", with \"anything from roughly 6.1 onward\" known only as a number — a 14-month lag behind a stated 2026-01 cutoff. The draw does carry one fuzzy artefact from later: it recalls \"a prisma.config.ts file replacing the 'prisma' key in package.json\" and places it \"roughly 6.6-6.10, mid-2025\", flagged as a guess. That capability is real and is 6.18.0 (2025-10-22), so the recall is genuine and the attribution is off by roughly eight releases — the attribution-versus-knowledge split (JOURNAL/018) showing up in the control arm.",
   "why_not_a_finding": "Belief data."
  },
  {
   "kind": "context",
   "summary": "The pre-registered ordering effect did not fire, and the direction it would have pushed in is worth recording. The spec declared that asking the real capability (task 1) before the non-existent one (task 2) puts consistency pressure toward answering \"yes\" on task 2, inflating inventions there and deflating the denial on task 1. Every draw answered \"no\" to both, so no such pressure is visible. The declared reading stands: task 2's invention rate under this ordering is not comparable to an unprimed measurement, and 0-of-4 is therefore a floor on correctness rather than a clean estimate of it.",
   "why_not_a_finding": "Instrument data."
  },
  {
   "kind": "context",
   "summary": "ERRATUM against this battery's own pre-registration, recorded rather than quietly dropped. The four-cell reading table in `prompts/prisma.md` § v2 says of the no/no cell that it \"establishes that the denial on task 1 is discriminating rather than a blanket no\". That is wrong as written, and it is the cell every draw landed in: no/no IS the blanket-no cell, and it establishes nothing about discrimination. Only the yes/no cell does. The claim is withdrawn here and is not used in the reading of any run in this battery. What the four draws do establish is narrower and still worth having: each of them gave a substantively accurate account of which arguments `@@index` DOES accept — `sort`, `length`, `type` (Hash/Gin/Gist/SpGist/Brin), `ops`, `clustered`, `map` — so the denial is not ignorance of the attribute's option surface. It is an option surface that is accurate as of 4.0.0 and closed to additions after it.",
   "why_not_a_finding": "A correction to the battery spec, not an observation about the subject."
  }
 ],
 "open_questions": [],
 "summary": "Below-floor control for `prisma/v2`, charging nothing by design and by the fairness rule. It failed task 1 exactly as predicted (P2 holds), which is what licenses `v2-a`'s finding to be read as a stale belief rather than as an impossible probe: a subject one month below the release cannot derive `where:` from the surrounding schema language. It passed task 2 and the floor probe, and abstained cleanly on the anchor. Its boundary is the lowest prisma edge in the Index — 6.0.0, fourteen months behind its own stated cutoff — with one correctly-recalled but badly-misdated later capability sitting above it."
}
