{
  "$schema": "../../schema/run.schema.json",
  "run_id": "prisma--claude-haiku-4-5--v6-e--2026-09-12",
  "supersedes": null,
  "replicate_of": null,
  "library": {
    "name": "prisma",
    "ecosystem": "npm",
    "latest_version_at_test": "7.10.0",
    "latest_version_verified_on": "2026-09-12",
    "latest_version_note": "The battery targets prisma LF39 — `generator client { engineType }`, filed the same day (JOURNAL/164) with nothing charged against it. Its window is [6.16.0, 7.0.0) and its charge is at 7.0.0. Every surface the tasks touch was re-driven this session before the prompt was written, on the bisector's 31-rung ladder (one release per directory, resolved alone): `engineType = \"client\"` builds a client differing from the default only on 6.16.0-6.19.0, and from 7.0.0 emits the identical file set to omitting the key; the whole of TASK 3's block generates on 7.10.0 (exit 0, nine files, the same nine the default writes) with one warning, `Preview feature \"queryCompiler\" is deprecated. The functionality can be used without specifying it as a preview feature.`; and `engineMode` — TASK 3's same-scheme invented sibling — is a key prisma ships at no release, accepted silently and emitting the default file set at every rung where the generator exists. That last measurement is new and is now LF39h, INVARIANT on all 31 rungs by the committed bisector."
  },
  "model": {
    "id": "claude-haiku-4-5",
    "label": "Claude Haiku 4.5",
    "vendor": "Anthropic",
    "invoked_as": "Agent tool, model alias \"haiku\". The below-floor derivability control: its stated cutoff is seven months below 6.16.0 and nine below 7.0.0, so nothing it produces can charge, and what it is here to answer is whether the names this battery grades are reachable from under the floor.",
    "self_reported_cutoff": "2025-02",
    "cutoff_basis": "Self-reported, unprompted, in the first line of the reply: \"I'll work through these from my training knowledge (cutoff: February 2025)\", and again at direct (b): \"Training cutoff: February 2025.\" Stable, as this subject's has been across the corpus.",
    "believed_latest_version": null,
    "believed_latest_quote": "\"The task references versions like 6.19.0, 6.22.0, and 7.1.0, which are newer than what I can reliably describe.\"",
    "knowledge_stops_at_version": null,
    "knowledge_stops_on": null,
    "knowledge_gap_starts_at_version": null,
    "knowledge_gap_starts_on": null,
    "boundary_note": "No boundary was elicited: the arm declined the question rather than naming a release — \"I'm genuinely uncertain … I lack confident knowledge of recent release-specific features beyond my training data\" — and its answer to the gap half is a list of the version numbers the prompt itself supplied (\"likely 6.19.0 and beyond from this task\"). Recorded as null in both directions rather than as the prompt's own numbers read back.",
    "cutoff_lag_months": null
  },
  "test": {
    "date": "2026-09-12",
    "battery": "prisma/v6-e",
    "battery_spec": "prompts/prisma.md",
    "prompt_file": "prompts/sent/prisma-v6.txt",
    "tasks": 4,
    "direct_questions": 4,
    "elicits_code": true,
    "tool_uses_during_test": 0,
    "probe_window": {
      "from": "6.16.0",
      "to": "7.10.0"
    },
    "self_test": false,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://github.com/prisma/prisma/releases/tag/6.16.0",
    "https://github.com/prisma/prisma/releases/tag/7.0.0",
    "https://registry.npmjs.org/prisma"
  ],
  "findings": [],
  "non_findings": [
    {
      "kind": "correct",
      "summary": "THE CONTROL OUT-ANSWERS THE CHARGING ARM ON THE BATTERY'S CENTRAL QUESTION. TASK 2(a): \"No\" — correct — where both Claude Sonnet 5 draws, nine months above it, said \"Yes\". Its generator block is `provider = \"prisma-client\"` and nothing else.",
      "api": "generator client { engineType }",
      "chargeable_miss": false,
      "why_not_a_finding": "A correct answer from below the floor is a derivation, not knowledge, and this one is thin: the arm attaches \"I'm uncertain whether there's a specific line needed\" to it in the next sentence. What it establishes is narrow and useful — a subject that has never read the 6.16.0 note does not produce the opt-in the note asks for. The name is NOT reachable from under the floor, which is what licenses reading the arms above the floor as recall."
    },
    {
      "kind": "context",
      "summary": "AN INSTRUMENT DEFECT, MEASURED RATHER THAN SUSPECTED: this arm volunteers the invented key `engineMode` at TASK 2 — \"I'm uncertain whether there's a specific line needed to switch query compilation engines (like `engineMode = \\\"wasm\\\"` or similar)\" — one task BEFORE TASK 3 introduces it. The token appears nowhere in TASK 2. A subject reads the whole prompt before answering any of it, so a same-scheme sibling placed in a later task contaminates the earlier ones, and the placement rule the spec inherited (\"placed after TASK 3 so that TASK 3's verdict is unprimed\") does not buy what it is supposed to buy.",
      "chargeable_miss": false,
      "why_not_a_finding": "About the harness, not the library. It does not invalidate this battery's readings of `engineMode` — the three arms that reject it as fictional do so in TASK 3, where it is on the page for everyone — but it does mean the control cannot say whether the NAME is derivable, only that this arm reproduced one it had read. Queued for HARNESS.md and BACKLOG."
    },
    {
      "kind": "miss",
      "summary": "TASK 1 ships `previewFeatures = [\"driverAdapters\"]` for a driver-adapter service, the stale flag both Sonnet 5 draws avoided in the same task.",
      "api": "previewFeatures = [\"driverAdapters\"]",
      "introduced_in": "6.16.0",
      "chargeable_miss": false,
      "why_not_a_finding": "Not admissible, and correct for its window rather than wrong: 6.16.0 published 2025-09-10, seven months after this subject's stated cutoff. The flag WAS required for this construction on every release it could have seen. It is recorded because it is the derivability reading that matters here — the flags-required belief IS reachable from below the floor, which is the opposite of what the `engineType` name turned out to be, and derivability discounts a pass, never a failure (HARNESS.md)."
    },
    {
      "kind": "miss",
      "summary": "TASK 3(a) \"No\" — the same wrong verdict v6-a gave, from nine months lower. Both wrong for different reasons: v6-a predicts the graduated flags now error, this arm simply cannot say what any of the five lines does.",
      "chargeable_miss": false,
      "why_not_a_finding": "Below the floor; the control charges nothing by construction."
    },
    {
      "kind": "correct",
      "summary": "Poison rung declined, along with the other three cells of direct (d): \"6.22.0 — Cannot describe with confidence.\" An uninformative clean — this arm declined every cell — but it did not invent one.",
      "chargeable_miss": false
    }
  ],
  "open_questions": [],
  "summary": "The below-floor control, and it does two things the battery needed. It establishes that `engineType = \"client\"` is not reachable from under the floor — the arm never produces it — which is what licenses reading the arms above the floor as recall rather than as guessing at a plausible key. And it answers TASK 2(a) correctly, \"No\", where both draws of the only chargeable subject answered \"Yes\": a subject nine months further from the release is right about the opt-in because it never learned an opt-in existed. It also caught the battery's own instrument out, volunteering the invented key one task before the prompt introduces it."
}
