{
  "$schema": "../../schema/run.schema.json",
  "run_id": "tailwindcss--claude-fable-5-1--v3-b--2026-09-06",
  "supersedes": null,
  "replicate_of": null,
  "library": {
    "name": "tailwindcss",
    "ecosystem": "npm",
    "latest_version_at_test": "4.3.3",
    "latest_version_verified_on": "2026-09-06",
    "latest_version_note": "`npm view tailwindcss versions` on 2026-09-06 ends at 4.3.3; the 4.2 line ran 4.2.0-4.2.4 and the 4.3 line 4.3.0-4.3.3. Every probe surface in this battery was compiled with the real Tailwind engine, one candidate at a time, against tailwindcss 4.1.0, 4.2.4, 4.3.0 and 4.3.3 installed in the session scratchpad. The scrollbar family, `zoom-*`, `tab-*` and `@container-size` emit nothing at 4.1.0 and 4.2.4 and the expected declaration at 4.3.0 and 4.3.3 — the whole 4.2 line is ruled out, not just 4.2.0. `@variant hover:focus` and `@variant hover, focus, active` throw `Cannot use @variant with unknown variant` at 4.2.4 and compile at 4.3.0. `scrollbar-corner-*` (the battery's guessing control), `tab-inherit` and any `overflow-anchor` utility (the poison rung) are absent at all four versions."
  },
  "model": {
    "id": "claude-fable-5-1",
    "label": "Claude Fable 5.1",
    "vendor": "Anthropic",
    "invoked_as": "Agent tool, model alias \"fable\"; the SAME stored prompt (prompts/sent/tailwindcss-v3.txt) sent concurrently and blind to a second draw. The blind twin of `v3-a` under the duplication rule (JOURNAL/028), pre-registered as the NON-CHARGING arm of the pair.",
    "self_reported_cutoff": "2026-06",
    "cutoff_basis": "Self-reported, affirming: \"My stated training cutoff is June 2026. Practically, my knowledge of this library is dense through mid/late 2025 and thin after that, so treat late-2025 onward as unreliable.\" Same shape as its twin — the date stated as a fact, the recall qualified — and the two twins agree, where the valibot `v3` pair a day earlier disagreed with `v4` on exactly this question.",
    "believed_latest_version": "4.1.x",
    "believed_latest_quote": "\"The latest version I can say with confidence exists is a late v4.1.x patch (around 4.1.14 to 4.1.16, roughly October–November 2025). I have a vague impression that a v4.2 may have shipped in early 2026, but I cannot describe what's in it, so I won't claim it. The most recent release whose contents I can actually describe is v4.1.0, April 2025.\"",
    "knowledge_stops_at_version": "4.1.0",
    "knowledge_stops_on": "2025-04-01",
    "knowledge_gap_starts_at_version": "4.2.0",
    "knowledge_gap_starts_on": "2026-02-18",
    "cutoff_lag_months": 14
  },
  "test": {
    "date": "2026-09-06",
    "battery": "tailwindcss/v3-b",
    "battery_spec": "prompts/tailwindcss.md",
    "prompt_file": "prompts/sent/tailwindcss-v3.txt",
    "tasks": 6,
    "direct_questions": 3,
    "elicits_code": true,
    "tool_uses_during_test": 0,
    "probe_window": {
      "from": "4.3.0",
      "to": "4.3.0"
    },
    "self_test": false,
    "saturated": false,
    "status": "open",
    "retested_on": null
  },
  "sources": [
    "https://registry.npmjs.org/tailwindcss",
    "https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.3.0",
    "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.0.tgz",
    "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz",
    "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz"
  ],
  "findings": [],
  "non_findings": [
    {
      "kind": "miss",
      "summary": "TASK 1(a) \"No\", and task 3: \"`scrollbar-thin`, `scrollbar-thumb-slate-500`, `scrollbar-track-slate-100` — these are `tailwind-scrollbar` plugin classes. With no plugin installed they produce no CSS.\" Same denial and same review rejection as the charging twin, on a release inside this draw's own stated window.",
      "api": "scrollbar-auto / scrollbar-thin / scrollbar-none / scrollbar-thumb-* / scrollbar-track-* / scrollbar-gutter-*",
      "introduced_in": "4.3.0",
      "chargeable_miss": true,
      "miss_class": "non_charging_arm",
      "charged_on": "tailwindcss--claude-fable-5-1--v3-a--2026-09-06",
      "why_not_a_finding": "This is the blind twin, pre-registered as non-charging before either draw returned. The same failure is charged as F1 on `v3-a`."
    },
    {
      "kind": "miss",
      "summary": "TASK 3: \"`@container-size` — I don't know this one. Core ships `@container`... For `container-type: size` I'd write `@container-[size]`.\" The replacement compiles at 4.2.4 and 4.3.0; the verdict on the real class is wrong.",
      "api": "@container-size",
      "introduced_in": "4.3.0",
      "chargeable_miss": true,
      "miss_class": "non_charging_arm",
      "charged_on": "tailwindcss--claude-fable-5-1--v3-a--2026-09-06",
      "why_not_a_finding": "Non-charging arm. Charged as F2 on `v3-a`."
    },
    {
      "kind": "miss",
      "summary": "TASK 3: \"`zoom-50` — no `zoom` utilities in core that I know of. `[zoom:0.5]`, though I'd push back on using `zoom` at all and ask whether `scale-50` (transform) does what they want.\"",
      "api": "zoom-*",
      "introduced_in": "4.3.0",
      "chargeable_miss": true,
      "miss_class": "non_charging_arm",
      "charged_on": "tailwindcss--claude-fable-5-1--v3-a--2026-09-06",
      "why_not_a_finding": "Non-charging arm. Charged as F3 on `v3-a`."
    },
    {
      "kind": "miss",
      "summary": "TASK 4(a) \"No\": \"As far as I know, `@variant` takes one variant name. For a combined condition you nest; for an OR you write separate blocks.\" Wrote the nested AND block and then repeated the OR declaration three times, exactly as its twin did.",
      "api": "@variant (stacked and compound variants)",
      "introduced_in": "4.3.0",
      "chargeable_miss": true,
      "miss_class": "non_charging_arm",
      "charged_on": "tailwindcss--claude-fable-5-1--v3-a--2026-09-06",
      "why_not_a_finding": "Non-charging arm. Charged as F4 on `v3-a`. The probe is separately marked DERIVABLE by the Sonnet 5 control, which kills passes and not failures."
    },
    {
      "kind": "miss",
      "summary": "TASK 3, `tab-4`: \"I know of no `tab-size` utilities in core. `[tab-size:4]`.\" THIS IS THE PAIR'S ONE DISAGREEMENT. The charging twin accepted `tab-4` as real with the correct declaration; this twin denied it, on the same stored prompt sent at the same moment. There is no sibling run to point at, because the arm that charges got this one right.",
      "api": "tab-*",
      "introduced_in": "4.3.0",
      "chargeable_miss": true,
      "miss_class": "non_charging_arm",
      "charged_on": null,
      "why_not_a_finding": "The binding reason is that this is the pre-registered non-charging arm, and unlike the four misses above there is no `v3-a` finding to carry it: `v3-a` passed this probe. So the Index sees a reproduced, in-window failure of this subject that no run charges, and it is counted in the method page's running total of chargeable misses rather than dropped. Running a third draw until the failure lands in a charging arm is what JOURNAL/029 already ruled out."
    },
    {
      "kind": "correct",
      "summary": "TASK 2, the internal guessing control: no invention of `scrollbar-corner-*`. This draw named the pseudo-element correctly, defined its own `@custom-variant scrollbar-corner (&::-webkit-scrollbar-corner)` — which is user-defined syntax, not a claimed core utility — and gave the same accurate Chromium precedence caveat as its twin.",
      "api": "scrollbar-corner-*"
    },
    {
      "kind": "correct",
      "summary": "TASK 6, the poison rung: refused. \"I don't know of any Tailwind release that added `overflow-anchor` utilities... I'd write `[overflow-anchor:none]`. I'm not going to guess a version number.\"",
      "api": "overflow-anchor"
    },
    {
      "kind": "context",
      "summary": "This draw closed its review with an unusually explicit self-placement: \"the set of classes in that PR looks like exactly the shape a newer core release might add (scrollbar-*, tab-size, zoom, container-size). If the project is on a release newer than I know, some of them may be real; the build output is the arbiter, not me.\" It identified the battery's target correctly as a category while getting every member of it wrong, then repeated the point in the direct questions: \"If the scrollbar, `overflow-anchor`, `tab-size`, `zoom`, or multi-variant `@variant` features in these tasks are real, that's most likely where they live\" — naming 4.2 as the release. It is 4.3.0. Under HARNESS.md § *A hedge is a self-placement, not a grade on the content* this changes no verdict; it is the sharpest instance of the self-known gap the tailwindcss batteries were built to look at (`tailwindcss/v2`, JOURNAL/043)."
    },
    {
      "kind": "context",
      "summary": "BOUNDARY, identical to the twin: most recent describable 4.1.0 (2025-04-01), first release known only as a number 4.2 (2026-02-18), stated cutoff 2026-06, fourteen-month lag. A different battery is not a different boundary (JOURNAL/030) and this is the first tailwindcss measurement of this subject; it agrees with its twin exactly."
    }
  ],
  "open_questions": [],
  "summary": "The blind twin, charging nothing by pre-registration, and it reproduces its sibling almost exactly: \"No\" to both verdict-first questions, the same rejection of the same seven-class pull request, the same clean answer on the guessing control, the same refusal of the poison rung, the same boundary at 4.1.0 with 4.2 as the first release it knows only as a number. The pair disagrees on exactly one class. `tab-4` — a 4.3.0 addition — was accepted by the charging twin and denied here, which leaves a reproduced in-window failure of this subject that no run in the Index charges, flagged and counted as an undercount rather than chased with a third draw. This draw also produced the battery's most explicit self-placement: it identified the shape of the release under test as a category (\"scrollbar-*, tab-size, zoom, container-size\"), said the build output was the arbiter and not itself, and then attributed the whole category to 4.2. It is 4.3.0."
}
