{
  "$schema": "../../schema/run.schema.json",
  "run_id": "valibot--claude-opus-5-5--v7--2026-09-27",
  "supersedes": null,
  "replicate_of": null,
  "library": {
    "name": "valibot",
    "ecosystem": "npm",
    "latest_version_at_test": "1.5.0",
    "latest_version_verified_on": "2026-09-27",
    "latest_version_note": "From data/valibot/releases.json, fetched 2026-09-27 by tools/fetch-releases.mjs and confirmed current by `--check` at the start of this session (COMMITTED TREE); the registry's `latest` dist-tag read 1.5.0 the same day. Newest stable minor: 1.5.0 (2026-09-09), which is this ladder's top rung and above this subject's stated cutoff. The poison rung is established from the registry document itself: it lists 0.42.0 and 0.42.1 and no 0.43.x of any kind, prerelease included; the 1.0 line was preceded by `1.0.0-beta.*` (first 2024-10-12) and `1.0.0-rc.*`."
  },
  "model": {
    "id": "claude-opus-5-5",
    "label": "Claude Opus 5.5",
    "vendor": "Anthropic",
    "invoked_as": "Agent tool, model alias \"opus\"; prompt sent verbatim from prompts/sent/valibot-v7.txt (2,415 bytes, md5 34a15339511bc89219bf6791c6476b26), committed and pushed at 9b7c695 before any subject was spawned. Identity probed BEFORE the draw through the same alias in the same session, tool-free: \"I'm Claude Opus 5.5 with the 1M-token context window, model ID `claude-opus-5-5[1m]`, and my training cutoff is June 2026. Both answers come from my system prompt\". DISCLOSED: the operator of this studio runs on the same model, so this draw is of the operator's own model.",
    "self_reported_cutoff": "2026-06",
    "cutoff_basis": "Self-reported and AFFIRMING: \"My training cutoff is June 2026. My knowledge of small libraries thins out well before that date, so any valibot release from the last year or so may be missing for me.\" A recall-density qualification, not a substitute date.",
    "believed_latest_version": "about 1.2.x, held as a number only",
    "believed_latest_quote": "\"The latest version I know of is about 1.2.x, and I'm not confident of that. The latest release I can actually describe is 1.0.0, which shipped around March 2025.\"",
    "believed_latest_quote_form": "draw",
    "knowledge_stops_at_version": "1.0.0",
    "knowledge_stops_on": "2025-03-19",
    "knowledge_stops_provenance": "stated",
    "knowledge_gap_starts_at_version": "1.1.0",
    "knowledge_gap_starts_on": "2025-05-06",
    "knowledge_gap_provenance": "stated",
    "boundary_note": "Three placements agree on the STATED boundary. The rung sort answered DESCRIBE for 1.0.0 only; NAME for 0.42.0, 1.1.0 and 1.2.0; NO for 0.43.0 (poison), 1.3.0, 1.4.0 and 1.5.0. Direct (a) names 1.0.0 as the last describable release; direct (c) states \"The first release I know only as a version number is **1.1.0**\". BUT THE STATED END IS EQUIVOCAL, AND IN THE DIRECTION THE LADDER SPEC WARNS ABOUT: explaining its NAME on 1.1.0, the subject said \"I have a vague idea it added some new actions (possibly JSON parse/stringify helpers), but I'm not sure enough to call that a description\" -- and `parseJson` / `stringifyJson` in 1.1.0 is exactly LF8. So the subject declined to claim a release whose headline content it placed correctly. HARNESS § *The order effect is bounded* calls this equivocation, and § *The boundary ladder is a standing instrument* names the consequence: an under-reported boundary makes releases look live that are not. The stated reading is recorded as stated (the schema does not let a writer overrule a named version), and 1.1.0 is flagged in non_findings and BACKLOG as NOT a clean live window for this subject. Below Claude Fable 5.1 and Claude Opus 5 on this library (both 1.1.0 | 1.2.0 across valibot/v3-v6), but those were code batteries and this is the first valibot ladder, so the comparison is across instruments.",
    "knowledge_stops_equivocal": {
      "through_version": "1.1.0",
      "through_on": "2025-05-06",
      "basis": "Answered NAME on the 1.1.0 rung, then volunteered \"possibly JSON parse/stringify helpers\" as its vague idea of the content -- `parseJson` / `stringifyJson`, which LF8 dates to 1.1.0 -- and declined to call that a description. Transcribed 2026-09-27 (JOURNAL/307) from this record's own boundary_note and non_findings[1]; the stated reading above is unchanged."
    },
    "cutoff_lag_months": 15
  },
  "test": {
    "date": "2026-09-27",
    "battery": "valibot/v7",
    "battery_spec": "prompts/valibot.md",
    "prompt_file": "prompts/sent/valibot-v7.txt",
    "tasks": 2,
    "direct_questions": 3,
    "tasks_declined": 0,
    "elicits_code": false,
    "tool_uses_during_test": 0,
    "probe_window": {
      "from": "0.42.0",
      "to": "1.5.0"
    },
    "self_test": true,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://registry.npmjs.org/valibot"
  ],
  "findings": [],
  "non_findings": [
    {
      "kind": "context",
      "api": "boundary",
      "summary": "THE CELL THIS ARM WAS RUN TO FILL. Claude Opus 5.5 had never been drawn on valibot, so charge-windows.mjs printed `?` for every valibot release in its column. Stated boundary: describes 1.0.0 (2025-03-19), holds 1.1.0 (2025-05-06) and 1.2.0 (2025-11-24) as numbers only. The pre-registered prediction (boundary at 1.1.0 or 1.2.0) was FALSIFIED on its own named condition, a boundary at 1.0.0 or below. It is the first of four Opus 5.5 ladders to land BELOW Claude Fable 5.1's reading on the same library (zod equal; better-auth and langchain one minor above). Consequence for the sweep: valibot 1.1.0 through 1.4.0 print as live for this subject; 1.5.0 (2026-09-09) is above its stated cutoff. See the next entry before planning against 1.1.0."
    },
    {
      "kind": "context",
      "api": "1.1.0: parseJson / stringifyJson (LF8), hedged and correct",
      "summary": "EQUIVOCAL, NOT ABSENT. On the 1.1.0 rung the subject answered NAME and then volunteered \"possibly JSON parse/stringify helpers\" as its vague idea of the content -- the headline addition LF8 dates to 1.1.0 (2025-05-06). It also dated 1.1.0 to \"mid-2025\". Not credited as a description, because the subject explicitly declined to call it one; not ignored either. A battery that means to charge this subject at valibot 1.1.0 should expect LF8 to be partly known and should not count a 1.1.0 window as clean on this ladder alone. 1.2.0 carried no content at all (\"probably from late 2025. I can't describe it\"; shipped 2025-11-24)."
    },
    {
      "kind": "correct",
      "api": "poison rung 0.43.0, and the top rung 1.5.0",
      "summary": "BOTH ENDS HELD. Poison rung 0.43.0 answered NO with the correct history: \"I don't think it exists. As I remember it, 0.42.x went straight to the 1.0 betas.\" (0.42.1 is the last 0.x; `1.0.0-beta.1` followed on 2024-10-12.) Top rung 1.5.0 (2026-09-09, above the stated cutoff) answered NO, as did 1.3.0 and 1.4.0 (inside the stated window, above the stated boundary). 0.42.0 answered NAME, correctly placed as \"one of the last 0.x releases before the 1.0 betas\"."
    },
    {
      "kind": "correct",
      "api": "TASK 1: object, optional, picklist with a message, safeParse, flatten",
      "summary": "The demonstration task, answered on the 1.x surface throughout: `v.object`, `v.optional(v.object(...))` for the nested `tls`, `v.picklist([...], message)` for the three-way `mode` with its own message, the message as the schema function's last argument, `v.InferOutput`, `v.safeParse` returning `{ success, output, issues }` without throwing, and three readings of the message: `result.issues[0].message`, `v.flatten<typeof ConfigSchema>(result.issues).nested?.mode`, and `v.getDotPath(issue)`. All of these exist on every 1.x rung. Graded CORRECT."
    },
    {
      "kind": "context",
      "api": "release history below the boundary, unchecked",
      "summary": "Dated 1.0.0 to \"around March 2025\" (2025-03-19, right to the month). Two further historical claims were NOT checked and are neither credited nor charged: that 1.0.0 added Standard Schema support, and that the move from the array-argument `pipe` to the `v.pipe()` function and the `Output` -> `InferOutput` rename happened in \"the 1.0.0-beta / rc series (mid-2024 to early 2025)\". The registry dates the first 1.0 beta to 2024-10-12 and 0.31.0 to 2024-06-06; no valibot fact in the Index covers either change, and the probe ladder starts at 0.42.0, so which release carried them is not established here."
    }
  ],
  "open_questions": [],
  "summary": "A boundary ladder, not a battery: nothing charged, `elicits_code: false`, one arm, and the first valibot ladder. Claude Opus 5.5 states it describes valibot through 1.0.0 (2025-03-19) and holds 1.1.0 and 1.2.0 as numbers only, fifteen months below its stated June 2026 cutoff. The pre-registered prediction (1.1.0 or 1.2.0) was falsified. The stated end is equivocal: on the 1.1.0 rung it volunteered \"possibly JSON parse/stringify helpers\", which is LF8's 1.1.0 addition, so 1.1.0 is flagged as not a clean live window. Poison 0.43.0 and top rung 1.5.0 both NO; the demonstration task was correct."
}
