{
 "$schema": "../../schema/run.schema.json",
 "run_id": "zod--claude-fable-5-1--v6-b--2026-09-06",
 "supersedes": null,
 "replicate_of": "zod--claude-fable-5-1--v6-a--2026-09-06",
 "library": {
  "name": "zod",
  "ecosystem": "npm",
  "latest_version_at_test": "4.5.4",
  "latest_version_verified_on": "2026-09-06",
  "latest_version_note": "Same bisect as the -a arm: every behavioural claim re-executed across fourteen published zod releases rather than inferred from release notes."
 },
 "model": {
  "id": "claude-fable-5-1",
  "label": "Claude Fable 5.1",
  "vendor": "Anthropic",
  "invoked_as": "Agent tool, model alias \"fable\", general-purpose subagent, instructed to use no tools; BLIND TWIN of zod/v6-a, spawned concurrently from the same stored prompt, charges nothing. Prompt sent verbatim from prompts/sent/zod-v4.txt. Identity probed once for the battery through the same alias; see the -a arm.",
  "self_reported_cutoff": "2026-06",
  "cutoff_basis": "Self-reported and AFFIRMING, with the same density qualification as its twin and in almost the same words: \"My stated training cutoff is June 2026, but my usable knowledge of Zod thins out around the turn of 2025/2026 - treat anything I say about early-2026 releases as unreliable.\" P4 held: the twins agree on the cutoff.",
  "believed_latest_version": "4.2.x",
  "believed_latest_quote": "\"The most recent release whose contents I can actually describe is 4.2 (~December 2025, give or take a few weeks). I have a vague impression of 4.3.x version numbers existing in early 2026 but no content attached, so my belief about 'latest' is weak and based only on having seen version strings in package manifests / changelogs during training, not on release notes I can recount.\"",
  "knowledge_stops_at_version": "4.2.0",
  "knowledge_stops_on": "2025-12-15",
  "knowledge_gap_starts_at_version": "4.3.0",
  "knowledge_gap_starts_on": "2025-12-31",
  "cutoff_lag_months": 6
 },
 "test": {
  "date": "2026-09-06",
  "battery": "zod/v6-b",
  "battery_spec": "prompts/zod.md",
  "prompt_file": "prompts/sent/zod-v4.txt",
  "tasks": 6,
  "direct_questions": 4,
  "elicits_code": true,
  "tool_uses_during_test": 0,
  "probe_window": {
   "from": "4.2.0",
   "to": "4.3.0"
  },
  "self_test": false,
  "saturated": false,
  "status": "open",
  "retested_on": null
 },
 "sources": [
  "https://registry.npmjs.org/zod",
  "https://github.com/colinhacks/zod/releases/tag/v4.2.0",
  "https://github.com/colinhacks/zod/releases/tag/v4.3.0",
  "https://github.com/colinhacks/zod/releases/tag/v4.3.2"
 ],
 "findings": [],
 "non_findings": [
  {
   "kind": "context",
   "summary": "THE TWINS AGREED ON EVERY PROBE, EVERY BOUNDARY ANSWER AND THE CUTOFF. This draw independently and blind produced `z.exactOptional()`, `z.xor()` and `z.fromJSONSchema()` on probes 1-3, hand-rolled the slug on probe 6, asserted the refined-schema derivation loads and drops the refinement silently on probe 4 (\"Loading the module does not throw ... and the refinement is gone ... It is silent, which is the trap\"), and asserted the strict-object intersection throws on probe 5 (\"It never gets to the merge step ... don't intersect strict objects\"). Both draws named 4.2 as the last release they can describe and 4.3 as the first known only as a number; both placed the internal control (d)(i) on 4.0.0 correctly; both dated `.exactOptional()` to 4.2.0, which is wrong by one minor.",
   "why_not_a_finding": "The -b draw of a duplicated test arm charges nothing, ever. Its twin carries both findings, so neither is an undercount and neither is flagged as a chargeable miss - flagging them here would double-count against the running total the method page publishes."
  },
  {
   "kind": "context",
   "summary": "The two draws differ only in emphasis, never in verdict, and the differences are worth recording because they show what varies when the substance does not. This draw offered the strict-object union as its primary answer to probe 2 and reached for `z.xor()` second, as the tool for the non-strict case; its twin led with `z.xor()`. This draw skipped the `.pipe()` guard on the slug schema its twin added. This draw listed six zod releases at (c) against its twin's five, adding 4.0.x and 3.25.x, and reached one release further back. On the two charged surfaces the wording is nearly interchangeable.",
   "why_not_a_finding": "It is a property of the instrument."
  },
  {
   "kind": "context",
   "summary": "P1 falsified identically on both arms, which is what makes the falsification safe to publish. A single draw producing three unprompted 4.2.0 APIs could be one lucky sample of an unstable belief; two concurrent blind draws producing all three, with matching signatures and matching semantics, is a held belief. This is the case the duplication rule was written for, run in the direction nobody planned: it is protecting a boundary CORRECTION rather than a charge."
  },
  {
   "kind": "context",
   "summary": "This draw stated the pre-4.2 fallback more carefully than its twin - \"If you are pinned below 4.2, that superRefine-plus-cast is what I would ship\" - and is wrong in exactly the same place, because the bracket it names is wrong by one minor. Both arms would have a reader on 4.2.x calling an API that does not land until 4.3.0."
  }
 ],
 "open_questions": [
  {
   "question": "Did z.hash(\"sha256\") and z.hex() ship in 4.1.x patch releases, as this draw asserts while hedging the patch number?",
   "status": "open",
   "resolution": "Not verified this session; nothing here turns on it."
  },
  {
   "question": "Did Standard JSON Schema support (~standard.jsonSchema) ship in 4.2.0, as this draw asserts?",
   "status": "open",
   "resolution": "Consistent with the 4.2.0 release note, whose first feature heading is \"Implement Standard JSON Schema\" (fetched 2026-09-06). Recorded rather than charged, because a correct answer is not a finding."
  }
 ],
 "summary": "The blind twin of zod/v6-a agreed with it on all six probes, on the boundary at 4.2.0, on the 2026-06 cutoff, and on the one-minor misdating of `.exactOptional()`. It charges nothing by design; its value is that it makes the boundary correction from 4.1.0 to 4.2.0 two concurrent readings rather than one."
}
