Repository navigation
Record that the floor-crosser premise is measured false, where the next reader of "the floor is a coin flip" will hit it - #10196
Conversation
…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
left a comment
There was a problem hiding this comment.
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
|
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 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 |
Documentation only — one section appended to
docs/plans/floor-cost-distribution-near-the-ceiling.md, which is a hand-authored plan (thefloor_cost_distributionmodules reference it; it is not generated from them). No.dagchange, 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_floornames 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.
interrupted_before_verdictfigure 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. Onlycompleted_over_cost_requirementrows carry costs.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
target_project_arrow_body_to_value_expressionframe 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).A value check is recorded too:
x + yandy + xproject 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