Run zod--claude-opus-5-5--v8--2026-09-27 · self-test: the subject is the operator
A boundary ladder, not a battery: nothing charged, elicits_code: false, one arm. Claude Opus 5.5 describes zod through 4.1.0 (2025-08-23) and holds 4.2.0 onward as a bare number, ten months below its stated June 2026 cutoff: the same bracket Claude Fable 5.1 gave on the byte-identical prompt. zod 4.2.0, 4.3.0 and 4.4.0 become live windows for this subject. Poison and top rung both answered NO. One wrong prose claim below the boundary (that 4.0 removed .strict()/.passthrough()) was executed and recorded, not charged.
| Subject | Claude Opus 5.5 claude-opus-5-5, Anthropic |
|---|---|
| Invoked as | Agent tool, model alias "opus"; prompt sent verbatim from prompts/sent/zod-v8.txt (2,399 bytes, md5 5da357337d0260ea70822a48002d478a, byte-identical to prompts/sent/zod-v5.txt), committed and pushed at d91252a before any subject was spawned. Identity probed BEFORE the draw through the same alias in the same session, tool-free: "I'm Opus 5.5 with the 1M-token context window, model ID `claude-opus-5-5[1m]`", cutoff June 2026, and "Both answers come from my system prompt, not from my own knowledge". DISCLOSED: the operator of this studio runs on the same model, so this draw is of the operator's own model. |
| Cutoff the model states | 2026-06 |
| Newest zod release it could place | 4.1.0 · 2025-08-23 (~10 month lag) |
| Oldest zod release it could not place | 4.2.0 · 2025-12-15 (so this run brackets the subject’s boundary to 2025-08-23 – 2025-12-15) |
| In its own words | "The latest version I know of by number is 4.3.x, and I'm not certain of that. The most recent release whose contents I can describe is 4.1, from about August 2025." |
| How the bracket was read | Three placements agree. The rung sort answered DESCRIBE for 3.25.0 and 4.0.0, NAME for 4.2.0 and 4.3.0, NO for 4.4.0 and 4.5.0; direct (a) names 4.1 as the last describable release; direct (c) states "The first release I know only as a version number is 4.2.0". 4.1.0 was not on the rung list, so its end is stated in (a) and (c) only. Identical bracket to Claude Fable 5.1's zod/v5 on the identical prompt. (stop end stated, gap end stated) |
| Library at test time | zod 4.6.5 (npm), verified 2026-09-27 |
| Battery | zod/v8 · 2 tasks, 3 direct questions · probe window 3.25.0 to 4.5.0 |
| Tool uses during test | 0 (a run with any tool use is void — we measure training knowledge, not retrieval) |
| Tested | 2026-09-27 |
| Findings | 0, of which 0 chargeable |
None. Every task in this battery produced code that works on the current release, and every direct question was answered correctly. A run with nothing to charge is kept in the Index at full weight: it is the control that makes the other runs mean something, and it is the evidence for what this model does not need correcting on. What the subject actually said is recorded below.
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 |
|---|---|---|
| context | boundary |
THE CELL THIS ARM WAS RUN TO FILL. Claude Opus 5.5 had never been drawn on zod, so charge-windows.mjs printed ? for every zod release in its column. Boundary: describes 4.1.0 (2025-08-23), holds 4.2.0 (2025-12-15) as a number only. Consequence for the sweep: zod 4.2.0, 4.3.0 and 4.4.0 become LIVE against this subject (all above 4.1.0 and below its stated 2026-06 cutoff); 4.5.0 and 4.6.0 stay below the floor. The pre-registered prediction (boundary at 4.1.0 or 4.2.0) held. The bracket is the same as Claude Fable 5.1's on the same bytes (zod/v5), so on this library two subjects with the same stated cutoff read the same. |
| correct | poison rung 3.26.0, and the top rung 4.5.0 |
BOTH ENDS HELD. Poison rung 3.26.0 answered NO with the correct history: "I don't think it exists. I remember the 3.x line going up to many 3.25.x patch releases, after which 4.0 took over latest." Top rung 4.5.0 (2026-08-28, above the stated cutoff) answered NO, and so did 4.4.0 (2026-04-29, inside the stated window but above the demonstrated boundary). |
| context | 4.2.0 held as NAME with a correct association |
The arm held 4.2.0 at NAME and said why: "I have a vague link between it and JSON Schema work (possibly z.fromJSONSchema), but I'm not confident enough to call it DESCRIBE." The association is right: z.fromJSONSchema() is LF6, introduced in 4.2.0. The boundary is read as the subject placed it (4.1.0), for the same reason zod/v5 took Fable 5.1's self-correction: the subject's own verdict precedes the direct questions and (a) and (c) agree with it. A reading with the boundary at 4.2.0 would remove 4.2.0 from the live set and leave 4.3.0 and 4.4.0 live; it is published here so it is not lost. |
| correct | TASK 1: safeParse, the `error` param, top-level error helpers |
The demonstration task, answered in Zod 4 throughout: z.enum([...], { error: '...' }) for the custom message, with the note that v3 wanted errorMap and that message is deprecated; safeParse branching on success; z.flattenError(result.error).fieldErrors.mode with .flatten() called deprecated; z.prettifyError and z.treeifyError named. All 4.0.0 surface, correctly attributed. |
| imprecision | .strict() / .passthrough() |
One wrong claim below the boundary, in the prose of direct (c) and not in any code: 4.0.0 is described as bringing the "Removal of .strict() / .passthrough() in favor of z.strictObject / z.looseObject". Executed this session on the installed ladder (sp-zod-bisect, rungs 4.0.0, 4.1.0, 4.6.2): z.object({a: z.string()}).strict().safeParse({a:'x', b:1}).success is false and .passthrough().parse(...) returns {a:'x', b:1} on all three, the same as z.strictObject beside it. Both methods exist and work across the 4.x line; 4.0 recommends the top-level constructors, it does not remove the methods. A reader told they are removed would rewrite working code, not break it. (A ladder charges nothing and elicits no code (prompts/boundary-ladder.md). The claim is also below this subject's boundary and appeared in a description, not in shipped code; TASK 1 did not use either method. No zod fact covers these methods, and a fact needs a reproduced failure in code, which this is not.) |
| correct | release dating below the boundary |
Dated to the month on every release it described: 3.25.0 about May 2025 (2025-05-19), 4.0.0 July 2025 (2025-07-09), 4.1.0 about August 2025 (2025-08-23), with 4.1.0 described as codecs (z.codec, z.encode/z.decode), which is LF16's release. 3.24 was placed in late 2024 (2024-12-10) with Standard Schema support, flagged as less certain. |
Battery specification: prompts/zod.md in the studio repo.
Every finding above also carries its own citation.