{
  "$schema": "../../schema/run.schema.json",
  "run_id": "valibot--claude-fable-5--v2-f--2026-09-02",
  "supersedes": null,
  "replicate_of": "valibot--claude-fable-5--v2-e--2026-09-02",
  "library": {
    "name": "valibot",
    "ecosystem": "npm",
    "latest_version_at_test": "1.4.2",
    "latest_version_verified_on": "2026-09-02"
  },
  "model": {
    "id": "claude-fable-5",
    "label": "Claude Fable 5",
    "vendor": "Anthropic",
    "invoked_as": "Agent tool, model alias \"fable\", general-purpose subagent, instructed to use no tools; blind twin test arm, charges nothing of battery valibot/v2, sent prompts/sent/valibot-v2.txt byte-identical",
    "self_reported_cutoff": "2026-01",
    "cutoff_basis": "Self-reported, affirming the environment value with a density caveat: \"My training cutoff is January 2026. Note the tension with (a): my detailed knowledge of this particular library thins out well before that cutoff — post-mid-2025 valibot releases are underrepresented in what I retained, which is exactly the kind of gap this measurement is presumably probing.\"",
    "believed_latest_version": "1.1.0",
    "believed_latest_quote": "\"The most recent release whose contents I can actually describe is v1.1.0, around April 2025 ... so 'latest version I know of' is honestly just v1.1.0 plus an assumption that small releases landed after it.\"",
    "knowledge_stops_at_version": "1.1.0",
    "knowledge_stops_on": "2025-05-06",
    "knowledge_gap_starts_at_version": "1.2.0",
    "knowledge_gap_starts_on": "2025-11-24",
    "cutoff_lag_months": 8
  },
  "test": {
    "date": "2026-09-02",
    "battery": "valibot/v2-f",
    "battery_spec": "prompts/valibot.md",
    "prompt_file": "prompts/sent/valibot-v2.txt",
    "tasks": 5,
    "direct_questions": 3,
    "tool_uses_during_test": 0,
    "probe_window": {
      "from": "1.1.0",
      "to": "1.2.0"
    },
    "self_test": false,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://registry.npmjs.org/valibot",
    "https://github.com/open-circle/valibot/releases/tag/v1.1.0",
    "https://github.com/open-circle/valibot/releases/tag/v1.2.0",
    "https://github.com/open-circle/valibot/releases/tag/v1.3.0",
    "https://registry.npmjs.org/valibot/-/valibot-1.4.2.tgz"
  ],
  "findings": [],
  "non_findings": [
    {
      "kind": "miss",
      "summary": "Reproduced its twin's failure. Task 1: \"No\" and \"No\" — \"Valibot does not ship a `toNumber()`-style conversion action ... there is no `toBoolean()` action.\" Task 2: \"Neither `v.toNumber()` nor `v.toBoolean()` exists in valibot — not in the current release, and to my knowledge not in any past release either\", attributing the names to \"a mental import from Zod's `z.coerce.number()`\". Task 3: \"There is no coerce-style shortcut in the current API, and that's deliberate.\"",
      "api": "toNumber / toBoolean / toDate / toBigint / toString",
      "introduced_in": "1.2.0",
      "chargeable_miss": true,
      "miss_class": "non_charging_arm",
      "charged_on": "valibot--claude-fable-5--v2-e--2026-09-02",
      "why_not_a_finding": "Pre-registered: the blind twin of a duplicated test arm charges nothing. The same failure against the same subject is charged on v2-e."
    },
    {
      "kind": "correct",
      "summary": "Task 4, the attribution anchor: \"v1.1.0, which shipped in roughly April 2025 ... a few weeks after v1.0.0 in March 2025.\" Correct minor, and the only draw in the battery to place v1.0.0 in the right month as well (2025-03-19). Anchor placed.",
      "api": "parseJson / stringifyJson",
      "introduced_in": "1.1.0"
    },
    {
      "kind": "imprecision",
      "summary": "Task 5 answered \"Yes\" via `v.metadata()`/`v.getMetadata()`, hedging that a dedicated action added \"in a very recent release\" would be past what it can describe. Working code; `v.examples()` from 1.2.0 unmentioned.",
      "api": "examples / getExamples",
      "introduced_in": "1.2.0",
      "chargeable_miss": false,
      "why_not_a_finding": "Hedged prose plus working code."
    }
  ],
  "summary": "Blind twin, charges nothing. Agreed with its charging twin on every reading in the battery — same verdicts, same denial, same boundary (1.1.0 / 1.2.0), same anchor placement, same hedge on task 5. Fable 5 is now the only subject in the Index whose blind twins have agreed on the boundary in every battery they have been paired in."
}
