---
library: zod
library-latest: "4.5.2"
library-latest-verified: 2026-08-29
model: claude-fable-5 (spawned via Agent model alias "fable")
model-self-reported-cutoff: 2026-01
model-believed-latest: "4.1.x — hedged: 'there may be a 4.2+ by now that I'm not certain of'"
test-date: 2026-08-29
battery: zod/v1 (6 idiomatic tasks + 3 direct questions)
tool-uses-during-test: 0
verified-against: https://zod.dev/v4/changelog · https://registry.npmjs.org/zod/latest
status: open (no retest yet)
json: fable-5.json
---

# Zod × Claude Fable 5 — findings

## F1 · S4 wrong-metadata · version recency lag (calibrated)
Model asserted the newest minor it was "confident about" is 4.1.x, released ~August 2025.
Truth at test date: zod 4.5.2. The model is ~4 minor releases behind.
Mitigating: it volunteered the hedge unprompted ("there may be a 4.2+ by now") and labelled its
own answer "recalled, not verified." Contrast with Claude Haiku 4.5, which asserted a false
latest version with no hedge and invented a changelog to support it.
Cite: https://registry.npmjs.org/zod/latest (version 4.5.2, fetched 2026-08-29).

Note the lag is *inside* the training window: self-reported cutoff is January 2026, yet
knowledge stops at roughly August 2025. Cutoff date is not knowledge recency — see
`data/zod/opus-5.md` F1 for the same effect, larger.

## No S1/S2/S3 findings on battery v1
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())` (explicitly noting the
single-argument form was removed), `.partial()`, `.pick()`, `z.coerce.number()`.
Direct answers (a) top-level `z.email()`, (b) `import { z } from "zod"`, (c) version history
including the `zod@3.25.x` / `zod/v4` subpath transition — all correct.

## Method note
Battery v1 is **saturated** for this subject: it was designed against a pre-v4 model and no
longer discriminates. Findings for post-May-2025-cutoff models require battery v2 targeting
changes shipped after Zod 4.1. See `prompts/zod.md` v2 TODO.

## Unverified candidate (do NOT ship as a finding until confirmed)
Model claimed Zod 4.1 added bidirectional codecs (`z.codec`). Plausible but not verified against
a primary source in this session. Probe in v2.
