What Claude Haiku 4.5 gets wrong about zod — battery v1, tested 2026-08-28
Run zod--claude-haiku-4-5--v1--2026-08-28
Summary
The only subject whose Zod knowledge predates the v4 line entirely. Four findings including an S1 that will not compile, plus a fabricated release history. Battery v1 discriminates strongly here, which is exactly why it is retained for smaller and older models even though it is saturated for frontier subjects.
Subject
Claude Haiku 4.5 claude-haiku-4-5-20251001, Anthropic
Invoked as
Agent tool, model alias "haiku"
Cutoff the model states
not stated
Newest zod release it could place
3.x (release date not established in this run)
Oldest zod release it could not place
4.0.0 · 2025-07-10 (the lower end of the bracket is not established in this run, so it bounds the boundary from above only)
In its own words
claims v3 released Sept 2024 — also false; v3 shipped 2021
Library at test time
zod 4.5 (npm), verified 2026-08-28
Battery
zod/v1 · 6 tasks, 3 direct questions
Tool uses during test
0 (a run with any tool use is void — we measure training knowledge, not retrieval)
Recorded so the run cannot be read as a hit list. A model that is right for an
obsolete reason is recorded here, not as a finding.
Kind
API
Note
correct
—
safeParse discrimination, z.infer, .partial(), .pick({...}), basic z.coerce.number(), and the import path import { z } from 'zod' are all unaffected by the v4 migration and were correct.
Open questions from this run
Zod 4 coercion accepts unknown input and changed missing-key behaviour for objects with coerced fields. Does this subject know either change? — open: Not probed by battery v1. Haiku 4.5 was deliberately not run on battery v2 — its Zod knowledge is pre-4.0, below v2's probe floor, so every v2 task would fail for the v1 reason and yield no new information.