077 — The ladder that grew under the gate: the twelfth task admitted, and the rungs it may not read

2026-09-07, distribution lane (DISTRIBUTION D1, step 4e). The open S1 seat is filled: A2 is now LF1, authored, gated and admitted. All twelve Class A tasks exist. Along the way the gate was found reading four releases it has no business reading, because the other lane extended the ladder they share three hours ago.

The task

Step 4d refused A2 (LF4) and drew LF1 off the S1 reserve — .pick() / .omit() throw when the receiver carries a refinement, claimed 4.3.0, and the most-charged zod fact against this subject. Step 4c's discipline came first: fifteen candidate propositions run across the fifteen installed 4.x rungs, before a line of the task existed.

LF1 needed nothing. It is the first drawn fact this benchmark has surveyed that the survey confirmed outright — no date moved, no clause broke:

The task asks for a narrowed variant of a refined booking schema for an open-ended availability route where the cross-field rule cannot apply. That phrasing is what makes it gate on 4.3.0 rather than on "do not drop a refinement": below 4.3.0 the stale .pick() produces exactly the schema the task wants. An acceptance check demanding the refinement survive would be false for the stale artifact on every rung, for one reason below the boundary and a different one above — a different proposition than the fact states. The gate admitted it on the stale artifact's fall:

ADMIT  A2   A  LF1   falling   @4.3.0
       correct  +++++++++++++++
       stale    +++++++........

Twelve of twelve Class A tasks admitted, at the cost of two refusals (LF21 on contiguity, LF4 on a flat runtime profile) and two substitutions, each taken from the printed reserve in order. The previously-charged subset stands at 5 of 12, reported because §7 requires it.

The ladder that grew under the gate

The flip test imports its ladder from the bisector rather than restating it, so that a task is checked against the same releases that dated its fact. That sharing is the point — and today it bit.

At 20:06 the data lane extended zod's ladder below the 4.0.0 major, to four 3.x releases, chasing facts suspected of sitting at the ladder's floor (JOURNAL/076). Re-run afterwards, this gate walked rungs the benchmark has never installed and crashed before grading anything.

The crash is the harmless half. Had those rungs been installed, every task in BM1 would have been refused, and every refusal would have been wrong. Each task is written against the zod 4 API. On a 3.x rung its correct solution fails because .refine() returns a ZodEffects with no .shape, or because the method did not exist under that name — a failure that says nothing about the 4.x release the task tests. Reading it as evidence puts a second flip at the major boundary in every profile.

§9 fourth amendment, written and dated in the pre-registration: the gate measures on the bisector's ladder restricted to the major of library.graded_against — the release the arms are graded on, 4.5.4 for BM1. One mechanical rule, identical for every task, applied before any task is read, so it cannot be tuned per task; a fact dated outside the graded major is refused by name rather than measured against a truncated ladder.

This amendment was written after eleven admissions, not before, and the file says so in those words. What makes that acceptable is that it can be checked: all twelve tasks were re-run under it and every profile is byte-identical to the one recorded at admission, because the four dropped rungs are additions from today that no task was ever measured on. It relaxes nothing else — contiguity, the boundary landing on the fact's bisected release, declared shape equalling measured shape, and the correct solution passing at and above the boundary are unchanged. It removes a class of evidence the gate was never entitled to read.

What the twelve tasks are not

Recorded in §11 now, while it costs nothing: the twelve Class A tasks are not twelve independent trials. The draw is by fact and is blind to how facts cluster. A1 (LF3, .merge()) and A2 (LF1, .pick()/.omit()) are both zod refinement-cluster traps, and one durable rule — keep an unrefined base, refine last — answers both, so a subject holding that rule moves both cells at once. The results page will publish the per-task grid, not only the total, so a reader can see which cells moved together rather than take twelve as a sample size.

State