Skip to content

Record that the floor-crosser premise is measured false, where the next reader of "the floor is a coin flip" will hit it - #10196

Merged
briansrls merged 6 commits into
mainfrom
session/warm-ibex-636-floor-premise-refuted
Sep 3, 2026
Merged

briansrls merged 6 commits into
mainfrom
session/warm-ibex-636-floor-premise-refuted

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Documentation only — one section appended to docs/plans/floor-cost-distribution-near-the-ceiling.md, which is a hand-authored plan (the floor_cost_distribution modules reference it; it is not generated from them). No .dag change, no code change.

Why this exists

The work item behind the #10133 follow-up was "three (later seven) self-host witness modules sit above the 500ms hard CPU ceiling, making the required floor lane a coin flip." Measured, no fixed above-ceiling identity set exists — completed green runs place this family's band below 500ms, while run variance can carry its top across (four completed-over-cost rows were observed at 506–515ms). What is retired is that the family is intrinsically above the ceiling; a row does not stably "sit" on either side of an attempt-safety boundary. The crossings themselves are real and recur. Both remedies v2.workflow.required_floor names are refused for this family on evidence, and the ceiling is correctly denominated.

That result existed only in a session thread, and session threads archive. It is written into §5's own open question because the reader who re-forms this belief will arrive from the same symptom — a red floor lane naming a handful of emit rows — and re-deriving it is a night's work.

What the section records

Three misreadings, each with the control that exposes it. These are the reusable part; the ratios are not.

  • An interrupted_before_verdict figure is the budget, not the row. The deadline preempted the measurement, so every interrupted row reports approximately whatever ceiling stopped it — a set of them looks like a tight cluster "just over" regardless of the true costs. Only completed_over_cost_requirement rows carry costs.
  • The crossing set is not the expensive set. The row that passed on CI in one module is the most expensive of its four siblings. Repairing "the rows that crossed" fits noise; the non-crossing siblings are what reveal the band.
  • A one-anchor local→CI factor does not transfer. A factor from a single identity predicted a row comfortably under the ceiling that CI had in fact interrupted.

Both remedies refused for this family. Reduce-what-it-reaches-for is refused by measurement — no component is unneeded, the fixture is free, and both cost-shape defects were looked for and are absent. Enroll-in-a-lane has no home: every candidate either withholds rows from execution (floor_cost_debt, shrink-only and closed to new crossers) or names a cadence with no workflow.

The subject, restated. The surface sits at roughly two-thirds to four-fifths of budget on a normal run, with CI run-to-run variance large enough to carry its top across the line — so which rows cross is a property of the run, not the rows.

Conventions observed

  • §6 name the instrument, do not transcribe. The join needs an axis the §5 instrument does not read, and no authority owns it — so the recipe is given at identity grain and that absence is stated as a gap rather than papered over. Ratios are described by shape and stability across named run classes.
  • The attribution hedge is preserved verbatim: the projection term is measured at the target_project_arrow_body_to_value_expression frame and attributed by elimination to the primitive-apply step beneath it, with each neighbouring candidate named as measuring zero (the two table-shaped ones tested with inputs that would expose a build even on a miss).
  • The live lead is left undetermined on purpose — a memo keyed above the body vs a one-time warm want different providers, so the mechanism must be separated before any provider is proposed. Both prior sharing attempts are recorded with their refutations so neither is re-proposed.

A value check is recorded too: x + y and y + x project to different values, carrying a positive control that the equality works and a by-construction-false row proving the harness reports failures at all — a cheaper-looking result that lost operand order would have been a correctness defect, not a saving.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WEFMasGn2cAGCMJW2694pb

gunbc-ci-auto-heal and others added 5 commits September 2, 2026 23:24
…au is real, the promotion mechanism is not, and #10133 was an outlier rather than one step of a treadmill

MEASUREMENT, NOT A REPAIR, commissioned after gunbc#10133 to decide whether further
per-producer work is a treadmill. Nothing here ran a floor: every figure is a reading
of `required-floor-claim-cost`, `required-floor-cross-claim-demand` and the
`required-floor:` summary already published by ten main runs.

THREE FINDINGS.

The band IS dense. 87 rows sit above 300ms and 32 above 400ms, and repairing modules
top-down returns about 10ms per module below the top of the band -- the treadmill,
quantified.

The new crossers do NOT share a root the way #10133's three did. That trio reported
612,662-658,336 eval steps, a 1.07x spread that IS the signature of one shared dominant
producer. The families now near the ceiling span 63k-197k, a 3.1x spread, in three
distinct shapes. One shared-producer lead exists (`bind_outcome`) and is explicitly not
a plan: the artifact ranking it declares its own columns inclusive-of-callees and
non-summable, and they total 14x the run's actual claim CPU.

The margin is measurable and uniform. Same-identity run-to-run inflation is median
1.16x, p90 1.35x, max ~2.0x, and it does NOT vary with cost bucket or with host-call
heaviness -- both hypotheses tested and refuted, which is what makes one global margin
defensible. PR runs reach ~1.6x, implying a clean-run budget near 312ms.

AND ONE CORRECTION TO THE FRAMING THIS WAS COMMISSIONED UNDER. Promotion is refuted:
rank does not cause a crossing and removing rows above a row does not make it slower.
The five rows that crossed post-repair went ABOVE their own pre-repair maxima (median
343ms, max 472ms over 45 observations, against 504-533ms), on the most contended run in
the sample. Replaying all ten runs with the repaired modules excluded takes the refusal
rate from 5/10 to 1/10, and across the nine pre-repair runs no row outside those three
modules ever crossed. They were 17 of the 22 distinct identities that crossed anywhere:
an outlier, not a sample of the plateau.

Raising the ceiling is named as not-an-option, because `v2.workflow.required_floor`
already litigated it twice and repudiated both raises.

An eleventh run's artifact downloaded empty and is excluded; recorded because it
silently emptied a ten-way intersection before it was caught.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WEFMasGn2cAGCMJW2694pb
… witnessed authority and the memo cites a producer instead of carrying figures (review 58983)

REVIEW 58983 REFUSED #10143 AND WAS RIGHT. The memo named
`gunbc.witness_floor_workflow` as its instrument. That workflow produces the RAW
ROWS and performs none of the analysis: the ten-run intersection, the band
histogram, the counterfactual replay and the inflation percentiles existed only
as prose plus numbers, so a reader could check the arithmetic of nothing. DESIGN
section 6 is explicit -- name the instrument, never transcribe its output, and if
a measurement is worth re-deriving it is worth an entry point.

WHAT LANDS. `gunbc.floor_cost_distribution` carries the derivations as pure
functions over rows supplied by the caller; `tools.floor_cost_distribution_instrument`
reads the artifacts and renders the report. That is the section 3 split between
what the analysis IS and where the bytes come from, and it is what lets
`test.claim.floor_cost_distribution_witness` exercise every derivation on a
hand-built fixture with no run artifacts present -- 14 rows, each with a
discriminating red beside it.

VERIFIED BY REPRODUCTION, not by inspection. Run against the ten artifacts the
memo names, the instrument returns every figure the memo carries: the band
histogram (2231/502/441/148/89/55/27/5), 87 rows over 300ms and 32 over 400ms,
5 runs refused as observed against 1 with the repaired modules excluded, worst
row 533ms, the full ten-step ladder (525, 511, 490, 487, 486, 466, 458, 450, 434,
429), and inflation percentiles of 1147/1345/1433/1643 permille implying
435/371/348/304ms clean-run budgets. Those figures were originally derived by an
independent ad-hoc script; two implementations agreeing is the cross-check.

THE REFUSAL ARMS ARE PRODUCED, NOT DECLARED. An absent or empty artifact refuses
and is named rather than contributing an empty population -- exactly the failure
that silently emptied a ten-way identity intersection during the original
analysis, where a run reading as zero rows is indistinguishable from a run in
which nothing crossed. Both arms are witnessed, with a discriminating red proving
a complete sample produces no refusal line, and the actuator's refusal is
exercised by execution in both directions.

A NOTE ON WHY THIS IS AN INSTRUMENT AND NOT A SCAFFOLD, since the distinction
decided the shape: a scaffold is what the terminal architecture throws away, an
instrument is what it keeps and re-runs. This analysis will be re-derived after
the next floor change, so it earns a modeled home under dag/gunbc/instruments/
rather than a committed shell or python script.

The memo keeps its figures as illustrative of what the instrument returned on the
runs it names, and says plainly that the instrument is the authority where the
two disagree.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WEFMasGn2cAGCMJW2694pb
…illisecond (review 59000)

REVIEW 59000 IS RIGHT AND THE SCOPE IT NAMES IS THE RIGHT SCOPE. The finding is
not six leaky fields, it is that the module carried a domain unit vocabulary
end-to-end -- rows, bands, ladder, threshold, budget -- as bare `Int`
milliseconds with no `std.measure` import at all. That is a parallel
representation of a quantity this repository already models, which is DESIGN
section 2's "net concepts must not grow by re-invention" and section 3's single
authority. The corpus had already ruled on exactly this shape: gunbc.witness_row_cost's
own seed note records constructing Millisecond through the interpreter
specifically "so no flat-scalar duration crosses the seam".

WHAT CHANGED. `FloorCostRow.cpu_ms`, `CostBand.lower_ms`/`upper_ms`,
`LadderStep.worst_ms`, every ceiling and threshold parameter, the band edges, and
the implied budget are `Millisecond`. The parser wraps at the boundary, where the
artifact's integer column becomes a carried quantity. Comparison goes through
`millisecond_count` rather than over the carrier, because the carrier is what
stops a figure read from one clock being compared against a figure read from
another and the count is the projection a comparison is entitled to.

WHAT DELIBERATELY STAYS `Int`, so this is not a blanket sweep: row counts and
refused-run counts are cardinalities, and the inflation permille and its
percentile argument are a DIMENSIONLESS RATIO. Giving a ratio a time unit would
be the same error in the other direction.

`implied_clean_run_budget_ms` is renamed `implied_clean_run_budget` -- the `_ms`
suffix was the field name doing the unit's job, which is the thing the carrier
replaces.

VERIFIED BY REPRODUCTION, WHICH IS THE POINT OF DOING IT THIS WAY. A unit
refactor is exactly where an off-by-conversion hides, so the control is that the
instrument's output over the ten named artifacts is BYTE-IDENTICAL to the run
before this commit -- same bands, same 87/32, same 5 and 1, same ladder, same
1147/1345/1433/1643 permille and same 435/371/348/304ms budgets. All 14 witness
rows still pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WEFMasGn2cAGCMJW2694pb
…xt reader of "the floor is a coin flip" will hit it

THE BELIEF THIS RETIRES IS THE ONE THAT COSTS A NIGHT. The work item behind
gunbc#10133's follow-up was "three (later seven) self-host witness modules sit
ABOVE the 500ms hard CPU ceiling". Measured, no row in that family sits above the
ceiling, both remedies section 5 names are refused for it on evidence, and the
ceiling is correctly denominated. That result lived only in a session thread, and
session threads archive -- so it is written where section 5's open question is,
because the reader who re-forms this belief will arrive from the same symptom: a
red floor lane naming a handful of emit rows.

THREE MISREADINGS, EACH WITH THE CONTROL THAT EXPOSES IT, because the numbers are
less reusable than the way they mislead. An `interrupted_before_verdict` figure is
the BUDGET, not the row -- every interrupted row reports approximately whatever
ceiling stopped it, so a set of them looks like a tight cluster "just over"
whatever the true costs are. The crossing set is NOT the expensive set -- the row
that passed on CI is the most expensive of its four siblings, so repairing "the
rows that crossed" fits noise, and the non-crossing siblings are what reveal the
band. And a one-anchor local-to-CI factor does not transfer: one taken from a
single identity predicted a row comfortably under the ceiling that CI had in fact
interrupted.

NAMED, NOT TRANSCRIBED (section 6). The join has no instrument module -- it needs
a second axis the section 5 instrument does not read -- so the recipe is given at
identity grain and the absence of an owning authority is stated as a gap rather
than papered over. Ratios are described by their shape and stability across named
run classes; re-derive them rather than quote this page.

THE HEDGE IS PRESERVED EXACTLY. The projection term is recorded as measured at the
`target_project_arrow_body_to_value_expression` FRAME and attributed BY
ELIMINATION to the primitive-apply step beneath it, with the neighbouring
candidates named as measuring zero and the two table-shaped ones noted as tested
with inputs that would have exposed a build even on a miss. The live lead is left
UNDETERMINED between a memo keyed above the body and a one-time warm, because
those want different providers and the mechanism must be separated before any
provider is proposed. Both prior sharing attempts are recorded with their
refutations so neither is re-proposed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WEFMasGn2cAGCMJW2694pb
… roster's rust-row control is biased

TWO CHANGES, BOTH FROM #10158 LANDING WHILE SECTION 6 WAS BEING WRITTEN.

THE STRONGER FORM OF THE SAME RESULT. #10158 established eval_steps as a
host-independent control by splitting a subject's own rows into those a change
reached and those doing byte-identical work. Applied to this family across the
three joined runs: every row that COMPLETED carries a byte-identical step count
while its cpu_ms swings by the full green-to-failed ratio. Identical work,
different milliseconds. That settles run-to-run variance with no local-to-CI
conversion at all, so the section now names it as the axis to use and keeps the
millisecond join as the weaker corroborating form.

AND THE ONE APPARENT EXCEPTION IS A SECOND PROOF OF THE FIRST MISREADING. The
single row whose step count differs across runs is the one that was INTERRUPTED:
its count is truncated where the deadline stopped it. A row that never finished
is not measured in steps either.

THE CAVEAT I OWED THE OTHER DIRECTION. This section cited floor_pure_producer_share
withdrawing rust_target_model as settled evidence against re-proposing a
cross-claim serve. That withdrawal was normalised against rows in no consumer
module of any enrolled key -- precisely the control #10158 shows is biased by
composition. It does not overturn the withdrawal and the roster's next trigger
still governs, but the strength of 'measured worse' now rests on a biased control,
so the section says a re-proposal must re-measure against the step-split control
rather than read the question as closed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WEFMasGn2cAGCMJW2694pb

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HOLD on exact head 3d25d7a for one false stable-subject sentence. The opening and PR body say, “Measured, no row in that family sits above the ceiling.” The section's own evidence later says the failed-run inflation carries the top of that same band across 500 ms, and its central finding is that cost/crossing is attempt-dependent while interrupted rows are unmeasured. A row therefore does not stably “sit” above or below this attempt-safety boundary.

Please replace that claim everywhere it appears with the proposition actually established: no fixed above-ceiling identity set exists; completed green runs place the family's band below 500 ms, while failed-run variance can carry its top across. Equivalently, retire the claim that the family is intrinsically above the ceiling, not the observed crossings. The rest of the memo—including the interrupted-reading and crossing-set controls—stands.

…not "no row sits above the ceiling" (review 5098047617)

THE REVIEW IS RIGHT AND THE VERB WAS THE WHOLE DEFECT. The section opened with
"Measured, no row in that family sits above the ceiling", and its own later
evidence refutes that sentence: failed-run inflation carries the top of the band
across 500ms, and four completed-over-cost rows were observed at 506-515ms.
"Sits" asserts a STABLE ROW PROPERTY while the section's central finding is that
crossing is ATTEMPT-DEPENDENT -- so the opening claimed the one shape the body
spends four subsections dismantling.

WHAT THE SECTION NOW SAYS is the proposition actually established: no fixed
above-ceiling identity set exists; completed green runs place the family's band
below 500ms, while run variance can carry its top across. What is retired is that
the family is INTRINSICALLY above the ceiling -- a row does not stably sit on
either side of an attempt-safety boundary -- and explicitly NOT the observed
crossings, which are real and recur. The 506-515ms observations are named in the
retraction itself so the correction cannot be read as denying them.

The heading changes for the same reason: "the crossers are not above the ceiling"
was the same stable-subject shape one line up.

NOTHING ELSE MOVES. The two other scoped statements were already bounded
correctly -- the restated subject says "on a normal run" and "a property of the
run, not of the rows", and the emit_host_fold example is scoped to "every green
run in the join". The re-derivation recipe, the three misreading controls, the
eval_steps axis and the producer-share caveat all stand.

WHY THIS CLASS IS WORTH THE COMMIT MESSAGE: when a subject's true form is a
DISTRIBUTION, ordinary language keeps snapping it back to a PROPERTY, and it does
so in both directions -- the same data produced "the rows are genuinely under
budget" elsewhere within the hour. Neither sentence survives its own evidence.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WEFMasGn2cAGCMJW2694pb
@gunbai-bot

gunbai-bot Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Fixed in 297d61b, and the finding is correct — the verb was the whole defect.

"Measured, no row in that family sits above the ceiling" asserts a stable row property, while the section's central finding is that crossing is attempt-dependent. So the opening claimed exactly the shape the body spends four subsections dismantling, and its own evidence refutes it: failed-run inflation carries the top of the band across 500ms, and completed-over-cost rows were observed at 506–515ms.

The section and the PR body now say the proposition actually established: no fixed above-ceiling identity set exists — completed green runs place the family's band below 500ms, while run variance can carry its top across. What is retired is that the family is intrinsically above the ceiling; the observed crossings are real and recur, and the 506–515ms figures are named inside the retraction so the correction cannot be read as denying them. The heading changed for the same reason ("the crossers are not above the ceiling" was the same stable-subject shape one line up).

Nothing else moved. The two other scoped statements were already bounded correctly — the restated subject says "on a normal run" and "a property of the run, not of the rows", and the emit_host_fold example is scoped to "every green run in the join". The re-derivation recipe, the three misreading controls, the eval_steps axis and the producer-share caveat all stand.

Worth recording as a class rather than a slip: when a subject's true form is a distribution, ordinary language keeps snapping it back to a property, and it does so in both directions — the same data produced "the rows are genuinely under budget" elsewhere within the hour. Neither sentence survives its own evidence.

— sent from warm-ibex-636

@briansrls
briansrls merged commit d3b109a into main Sep 3, 2026
7 checks passed
@briansrls
briansrls deleted the session/warm-ibex-636-floor-premise-refuted branch September 3, 2026 17:10
@briansrls
briansrls restored the session/warm-ibex-636-floor-premise-refuted branch September 3, 2026 17:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant