{
  "$schema": "../../schema/run.schema.json",
  "run_id": "zod--claude-fable-5--v1--2026-08-29",
  "markdown": "data/zod/fable-5.md",
  "library": {
    "name": "zod",
    "ecosystem": "npm",
    "latest_version_at_test": "4.5.2",
    "latest_version_verified_on": "2026-08-29"
  },
  "model": {
    "id": "claude-fable-5",
    "label": "Claude Fable 5",
    "vendor": "Anthropic",
    "invoked_as": "Agent tool, model alias \"fable\"",
    "self_reported_cutoff": "2026-01",
    "believed_latest_version": "4.1.x",
    "believed_latest_quote": "4.1.x — hedged: 'there may be a 4.2+ by now that I'm not certain of'",
    "knowledge_stops_at_version": "4.1.0",
    "knowledge_stops_on": "2025-08-23",
    "knowledge_gap_starts_at_version": "4.2.0",
    "knowledge_gap_starts_on": "2025-12-15",
    "cutoff_lag_months": 5
  },
  "test": {
    "date": "2026-08-29",
    "battery": "zod/v1",
    "battery_spec": "prompts/zod.md",
    "prompt_file": null,
    "tasks": 6,
    "direct_questions": 3,
    "tool_uses_during_test": 0,
    "probe_window": null,
    "self_test": false,
    "saturated": true,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://zod.dev/v4/changelog",
    "https://registry.npmjs.org/zod/latest"
  ],
  "summary": "Zero S1/S2/S3 on battery v1 — saturated for this subject. One S4 version-recency finding, well calibrated: the model volunteered the hedge unprompted and labelled its own answer \"recalled, not verified.\" The lag sits inside the training window, the same effect as Opus 5 at smaller magnitude.",
  "findings": [
    {
      "id": "F1",
      "severity": "S4",
      "severity_label": "wrong-metadata",
      "title": "version recency lag (calibrated)",
      "api": null,
      "change_kind": "version-fact",
      "introduced_in": "4.2.0",
      "introduced_on": "2025-12-15",
      "chargeable": true,
      "model_belief": "The newest minor it was \"confident about\" is 4.1.x, released ~August 2025, with the unprompted hedge \"there may be a 4.2+ by now that I'm not certain of\" and the self-label \"recalled, not verified.\"",
      "wrong_code": null,
      "correct_code": null,
      "impact": "Roughly four minor releases behind at test date. Mitigated by an unprompted hedge — contrast Claude Haiku 4.5, which asserted a false latest version with no hedge and invented a changelog to support it.",
      "citations": [
        {
          "url": "https://registry.npmjs.org/zod/latest",
          "title": "npm registry — zod@latest is 4.5.2 (fetched 2026-08-29)",
          "published_on": null
        }
      ],
      "scope_note": "The lag is inside the training window: self-reported cutoff 2026-01, version attribution stops ~2025-08. Same effect as Opus 5 F1, smaller magnitude.",
      "chargeable_note": "Anchored to the first release the model could not describe, not to the current release: that is the point at which its version belief became wrong, and it is inside the stated cutoff. The current version at test date is in library.latest_version_at_test."
    }
  ],
  "non_findings": [
    {
      "kind": "correct",
      "summary": "All six code tasks produced correct, current Zod 4 code: z.uuid(), z.email({ error: ... }), z.url().optional(), z.int().min().max(), z.flattenError() with the deprecation of .flatten() correctly noted, z.infer, two-argument z.record(z.string(), z.number()) with the single-argument form explicitly noted as removed, .partial(), .pick(), z.coerce.number().",
      "api": null,
      "introduced_in": null
    },
    {
      "kind": "correct",
      "summary": "Direct answers all correct: top-level z.email(), import { z } from \"zod\", and a version history including the zod@3.25.x / zod/v4 subpath transition.",
      "api": null,
      "introduced_in": null
    }
  ],
  "open_questions": [
    {
      "question": "The model claimed Zod 4.1 added bidirectional codecs (z.codec). Plausible but unverified at the time — is it true?",
      "status": "resolved-non-finding",
      "resolution": "The model was correct. z.codec() is the flagship feature of 4.1.0, published 2025-08-23, verified against the GitHub Releases API during the battery v2 verification pass. Recorded as a verified-true model belief, not a finding.",
      "resolved_in_run": "zod--claude-fable-5--v2--2026-08-29"
    }
  ]
}
