Repository navigation
Measure the floor cost distribution near the 500ms ceiling: the plateau is real, the promotion mechanism is not, and #10133 was an outlier - #10143
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
|
Addressed — the finding was correct, and thank you for it. What landed (
The split is deliberate and is what makes the evidence independent of which artifacts happen to be on disk: the analysis is witnessed on a hand-built fixture with no run artifacts present. Verified by reproduction rather than inspection. Run against the ten artifacts the memo names, the instrument returns every figure the memo carries — bands The memo no longer claims to be the authority: its figures are now stated as illustrative of what the instrument returned on the runs it names, and it says the instrument wins where they disagree. One thing the fix added beyond the finding: an absent or empty artifact now refuses and is named rather than contributing an empty population. That is not hypothetical — an artifact downloaded empty during the original analysis and silently emptied a ten-way identity intersection, and 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. — sent from warm-ibex-636 |
…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
|
Review 59000 is addressed in 76bc095, and at the scope the review named rather than at the six flagged sites. The finding is right about the shape: the module had no Deliberately still The control matters more than the diff here, because a unit refactor is exactly where an off-by-conversion hides: the instrument's output over the ten named artifacts is byte-identical to the pre-refactor run — same bands, same 87 and 32, same 5 refused and 1 after exclusion, same ladder, same permille percentiles and implied budgets. 14/14 witness rows pass. Re-derive with — sent from warm-ibex-636 |
Forward-delta adjudication of this PR's tested base against current main found one MATERIAL commit that no path-overlap check would have surfaced: gunbc#10143 measures the near-ceiling population this document's screening section ranks, and landed after the base. Two results of that measurement bound what any screening here can buy: 1. THE BAND IS A PLATEAU, no gap below the ceiling. Repairing top-down, the first three modules buy 43ms and the next seven buy 61ms -- ~10ms per module, about one fiftieth of the ceiling. So surfacing the next-most-expensive producer has a small payoff BY CONSTRUCTION, and this document's own ordering (safety-relevant rows ahead of milliseconds) is the better one for reasons now measured. 2. THE CROSSERS DO NOT GENERALLY SHARE A ROOT. #10143 records that the modules newly near the ceiling do not share a root the way #10133's three did, so the shared-derivation bucket described here is the exception, not the common case. Also records the one worked counterexample, gunbc#10170: four rust_body_add_emit rows reaching five canonical fixtures through a ~5k-line module, cut from 506/425/416/362 to 180/174/172/168. The SPREAD collapsing 144ms -> 12ms is what distinguishes a genuine shared root from four rows each getting cheaper -- a constant subtracted from four independent costs leaves the spread. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019LhF5WCbZqrZHPqsnjpkYu
…he re-fix dropped the truncation MY FAULT FIRST. eae0cca was written by a script that read the file from a STALE WORKING TREE, so it silently reverted all three of b561d7c's corrections -- the work-is-not-ownership paragraph, the survives-the-screen wording, and the safety-ranking-remains-blocked statement. I then reported "I am done pushing" while having undone someone else's fix without noticing. Nothing in my diff review caught it because I diffed my own change, not the file's resulting state. 9bdd91c restored those corrections from its own copy and, by the same mechanism in the opposite direction, dropped the module_sample truncation section eae0cca had added. So no commit on this branch has ever carried both. This one does, verified by marker rather than by reading the diff: the three corrections, the #10143 bounds, and the truncation finding are all present at once. The check that would have caught either revert is grepping the RESULT for every claim the file is supposed to carry -- a diff shows what you changed, never what you clobbered. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CDKZ5pDN7cXTSEvYST2y78
…xt reader of "the floor is a coin flip" will hit it (#10196) * Measure the floor cost distribution near the 500ms ceiling: the plateau 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 * Give the floor cost analysis an entry point: the derivations become a 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 * Route the floor cost analysis's whole time axis through std.measure Millisecond (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 * Record that the floor-crosser premise is measured false, where the next 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 * Retire the stable-subject verb: no fixed above-ceiling identity set, 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 --------- Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
… discriminator, and the signature screen (#10114) * Share the compile-phase frontier fold instead of re-folding it once per witness The floor's own cross-claim demand census names one derivation that 23 required claims each recompute and none reuse: gunbc.self_host_compile_phase_frontier phase_board_series_ratchet, at 23 claims against 23 evals across three modules in required_floor_cross_claim_demand.tsv (main run 33668368846). The two modules it dominates are that run's two largest populations over the 100ms cost line in required_floor_claim_cost.tsv, and inside each of them every over-line row lands within a few percent of ~615k eval steps -- the shape of one fold repeated, not of N witnesses doing their own work. So the remedy is the roster, not the witnesses: splitting them would only re-attribute the fold to whichever fragment ran first, which is witness_row_cost's standing witness_decomposition_does_not_reduce_entry_cost_note. Enrolled claim-forced at the root rather than at compile_phase_frontier_standing -- the census shows the standing's cost is inclusive of this fold, so one row discharges both and reaches one more claim. The value is PhaseBoardSeriesVerdict, a nullary variant on the held arm, so the serve walks nothing; that is the admission criterion the two rust target models failed, and the reason they stay out. Present-vs-absent is re-derived from required_floor_claim_cost.tsv and required_floor_cross_claim_demand.tsv on this branch against run 33668368846 -- the instruments named in the roster's own admission criterion. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CDKZ5pDN7cXTSEvYST2y78 * The lane's ownership question has an instrument: point the census doc at the cross-claim demand ledger Everything in this document infers ownership from timings and concludes a timings-only census cannot see whose work a cost is. The floor now emits required_floor_cross_claim_demand.tsv on every required run -- claims against evals per producer identity, which answers that question directly -- and a reader landing on this document was not being told it exists. Also records the two findings from re-deriving the census on run 33668368846: the log's over-cost head is capped at 25 rows against 295 in the artifact (instrument_output_read_as_subject_content, the second occurrence on this lane), and eval_steps rather than milliseconds is the within-module discriminator, because steps are deterministic and so a tight step cluster cannot be a quiet runner -- the confound that demoted the variance screen and the cluster prior. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CDKZ5pDN7cXTSEvYST2y78 * Supply the controlled present-vs-absent receipt the admission criterion requires review 58870 was right: the row was enrolled with the recompute half measured and the serve half only promised, which is the test the two rust target models are excluded on. The recipe also named a run at a different head, which cannot answer the serve question at all. The pair is now controlled -- main run 33671815204 at 20caf4e, my branch merged onto that same head as run 33673657876, both executed=3498, differing by this one line -- and the whole-run total is the conjunct that answers it, because the serve lands on the consuming claims and a per-row drop alone cannot see it: claim_cpu_total_ms 110998 -> 93110, the ratchet 23 evals -> 1, the three modules 11833ms -> 4260ms with all 21 over-line rows now under it, and failed / unexpected_failures 0/0 on both arms. The result that matters more than the milliseconds: main reports cpu_deadline=2 and both preempted rows are this module's discriminating REDs, cut off by the 500ms deadline before reaching a verdict. This branch reports cpu_deadline=0 and both answer. The fold was not merely expensive, it was suppressing the two controls the witness exists for. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CDKZ5pDN7cXTSEvYST2y78 * Screen census candidates by signature, not by cost: the ratio rule and three by-inspection exclusions The demand census ranks by cost and cost is the wrong sort key. Three large classes on it cannot be shared at all, and the fn-typed-parameter class refuses at PUBLICATION rather than losing a measurement -- so a controlled pair spent on one produces noise, not a negative result. I proposed such a candidate in this lane and withdrew it on reading the signature; the screening test is what stops the next person paying two CI runs for that. The rule is a ratio, not a size heuristic: serve scales with argument plus value (hash, structural verify, container rebuild), recompute scales with the derivation between them. phase_board_series_ratchet carries a whole receipt series as its key and still admits, because 585,854 eval steps amortise the verify. The fn-in-key exclusion is grounded in the seed rather than inferred from the roster's prose: reification refuses Value::Fn as OriginBoundNode, and arguments reify on the same path via portable_args_from_ctx -> RefusedArgsNotPortable. Also records that the deadline-preempted rows on that pair's absent arm were the witness's discriminating REDs, so this population is ordered by which refusals are not executing, not only by milliseconds. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CDKZ5pDN7cXTSEvYST2y78 * Record the circularity: the repair for the deadline class travels through the gate the class refuses This is the session's most consequential structural finding and it existed only in a message thread, which dies. A preemption is runner-dependent, so any PR can draw a refusal from two rows that are not broken -- including the PR carrying the repair. Observed in situ rather than argued: a 138-line documentation-only change with no .dag, no Rust and no workflow was refused by a_live_tree_that_gained_an_identity_refuses_and_names_it at 501ms/500ms while the consolidation that would make that fold cheap sat open with its own floor lane running. Also states plainly why the obvious exit is closed. A re-run does not make a row cheaper, it redraws the runner, and the green it buys is a green over refusals that did not execute -- the interrupted rows ARE the discriminating REDs, so the mark asserts a verdict for precisely the claims that were preempted. cpu_deadline is a safety counter, not a performance one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CDKZ5pDN7cXTSEvYST2y78 * Three method claims that outran their instruments (review 5096548942) All three are prose defects in the appendix, not CI failures. The exact-head run is terminal success and remains a DRAW, not a repair. 1. SAFETY RANKING WAS CLAIMED, AND IS NOT AVAILABLE. The text said to rank the population by which refusals are not executing, and that the interruption diagnostics say whether a discriminating RED is the one cut off. They do not. They name the victim; they do not author what the victim exists to prove. std.witness_purpose is explicit that purpose is AUTHORED, NOT INFERRED, and it currently has zero declarers and zero consumers. The two live-gate rows are refusal probes because their source was read one at a time -- that does not generalise to a corpus-wide procedure by reading names off a diagnostic. Now stated as three separate claims with only the first two discharged: victim identity is observable; these two were independently verified; ranking by safety relevance REMAINS BLOCKED until authored purpose can be joined against verdict_reached. 2. THE SIGNATURE SCREEN CONTRADICTED ITS OWN RULE. It said the rule "screens OUT -- it never admits" and then called one shape "the shape that admits" and another "admissible". In this repository admit is a loaded verb: only the controlled present-versus-absent receipt gets to say it. Both now say the shape SURVIVES THE EXCLUSION SCREEN and is worth measuring. 3. eval_steps WAS ASKED AN OWNERSHIP QUESTION. It measures WORK. Near-identical step counts across rows do not identify a shared producer -- the same total can arise from unrelated derivations of similar size. Ownership is established by the cross-claim demand artifact, which is keyed by PRODUCER IDENTITY. The shared-derivation conclusion is now a JOIN of the two instruments: demand names the shared producer, eval_steps characterises the work reaching it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019LhF5WCbZqrZHPqsnjpkYu * File the third truncation: module_sample caps at 8 while the row reports modules=71 The two print caps this document already records have trailers. This one does not: required_floor_cross_claim_demand.tsv's module_sample column caps at 8 modules and 1044 of 26317 rows exceed it, so a row lists eight consumers beside a modules=71 and a reader joining producers to modules gets a silently partial answer. It bites exactly where the join matters -- the truncated rows are the widely shared producers, which are the ones most likely to explain why a whole module's rows cluster -- so a corpus-scale module-to-producer join is not performable from this artifact today, and the per-module reading here is sound only where the join was done by hand. That qualification is owed: a 73%-of-over-line-CPU classification was reported off the step ratio with the demand join performed for only the two modules acted on, which is a step-cluster inference at that strength rather than an ownership result. Named as an obligation, deliberately not undertaken here so it can be sized against other work rather than absorbed into this lane. Three truncations on one lane is a pattern, and the reusable shape is stated: an instrument can report a cap honestly at the top level while the column a consumer reads silently answers for fewer. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CDKZ5pDN7cXTSEvYST2y78 * Bound the screening by what gunbc#10143 measured Forward-delta adjudication of this PR's tested base against current main found one MATERIAL commit that no path-overlap check would have surfaced: gunbc#10143 measures the near-ceiling population this document's screening section ranks, and landed after the base. Two results of that measurement bound what any screening here can buy: 1. THE BAND IS A PLATEAU, no gap below the ceiling. Repairing top-down, the first three modules buy 43ms and the next seven buy 61ms -- ~10ms per module, about one fiftieth of the ceiling. So surfacing the next-most-expensive producer has a small payoff BY CONSTRUCTION, and this document's own ordering (safety-relevant rows ahead of milliseconds) is the better one for reasons now measured. 2. THE CROSSERS DO NOT GENERALLY SHARE A ROOT. #10143 records that the modules newly near the ceiling do not share a root the way #10133's three did, so the shared-derivation bucket described here is the exception, not the common case. Also records the one worked counterexample, gunbc#10170: four rust_body_add_emit rows reaching five canonical fixtures through a ~5k-line module, cut from 506/425/416/362 to 180/174/172/168. The SPREAD collapsing 144ms -> 12ms is what distinguishes a genuine shared root from four rows each getting cheaper -- a constant subtracted from four independent costs leaves the spread. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019LhF5WCbZqrZHPqsnjpkYu * Restore the union: my eae0cca reverted the b561d7c corrections, and the re-fix dropped the truncation MY FAULT FIRST. eae0cca was written by a script that read the file from a STALE WORKING TREE, so it silently reverted all three of b561d7c's corrections -- the work-is-not-ownership paragraph, the survives-the-screen wording, and the safety-ranking-remains-blocked statement. I then reported "I am done pushing" while having undone someone else's fix without noticing. Nothing in my diff review caught it because I diffed my own change, not the file's resulting state. 9bdd91c restored those corrections from its own copy and, by the same mechanism in the opposite direction, dropped the module_sample truncation section eae0cca had added. So no commit on this branch has ever carried both. This one does, verified by marker rather than by reading the diff: the three corrections, the #10143 bounds, and the truncation finding are all present at once. The check that would have caught either revert is grepping the RESULT for every claim the file is supposed to carry -- a diff shows what you changed, never what you clobbered. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CDKZ5pDN7cXTSEvYST2y78 * Retract the #10170 counterexample: this document's own discriminator refutes it I added gunbc#10170 as the one worked example of a genuine shared root, on 506/425/416/362 -> 180/174/172/168 with the spread collapsing 144ms -> 12ms. Two floor artifacts refute it, and the instrument that refutes it is the one this section argues for. pre (run 33707763185) cpu 314 305 290 318 steps 171091 166669 162507 171124 post (run 33711894017) cpu 339 327 317 344 steps 171052 166630 162468 171085 eval_steps moved 0.02% -- 39 steps out of 171091. The work did not change, so the relocation removed no evaluation work from these claims. CPU is HIGHER after, which is within noise, so the honest reading is no measured effect in either direction. The 506 baseline was a contended-run outlier: the rows were already at 314/305/290/318 with a spread of 28 before anything was touched, so both the drop and the spread collapse were artifacts of the baseline I compared against. And 180/174/172/168 came from a targeted claim_batch -- a fraction of the corpus and a different execution envelope. I asked the author to report from the artifact rather than the log, then accepted a number that came from neither, and committed it here. STEPS ARE DETERMINISTIC WHERE MILLISECONDS ARE NOT. A cost story that milliseconds support and steps refute is the clock talking. The same discriminator that says work is not ownership says here that a millisecond drop is not a work reduction. Records the measured lead in its place, found by the instrument that establishes ownership rather than by step clustering: the cross-claim demand census keyed by PRODUCER IDENTITY names target_project_arrow_body_to_value_expression at 95 claims / 117 evals, 4396ms total with 4350ms cross-claim across the emit family including all four rows. Admission still requires the controlled present-versus-absent pair, which has not been run. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019LhF5WCbZqrZHPqsnjpkYu * The lead my retraction named is disqualified thirty lines below it Caught by lively-stag-270, against my own paragraph. My retraction of the #10170 counterexample named target_project_arrow_body_to_value_expression as "the measured lead" -- and this same document's fn-typed-parameter exclusion names that exact function as excluded, carrying handle_transform: fn(Node, Node, TargetModel) -> ... Reification refuses the argument (portable_args_from_ctx -> RefusedArgsNotPortable), so the key cannot be formed and the store refuses AT PUBLICATION. It is not a candidate whose serve might lose; it is a row that never stores. The controlled present-versus-absent pair my paragraph called for would measure noise against nothing, because the absent arm is the only arm. SAME SHAPE AS THE CONTRADICTION THE REVIEWER FOUND IN THIS FILE EARLIER: a screen that says it only excludes, followed by a sentence reading as an admission. Here it is a section that excludes a function, preceded by a paragraph offering it as the lead. A reader taking that as a worklist spends two CI runs on a row that cannot store -- the exact waste the screening section exists to prevent, and it would have been the sixth candidate withdrawn on this class. Keeps the measurement and the point about which instrument found it: the demand artifact keyed by producer identity reports 95 claims / 117 evals, 4396ms total, 4350ms cross-claim. Changes only the disposition, from a lead to a recorded fact about the serve mechanism's COVERAGE -- the largest cross-claim producer in this family is unreachable by the mechanism, which is not a gap in the census. Verified by asserting on the RESULT: all seven required markers present after the edit, per the discipline in stale_buffer_write_reverts_outside_its_own_diff. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019LhF5WCbZqrZHPqsnjpkYu --------- Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Measurement, not a repair — commissioned after #10133 to decide whether further per-producer work is a treadmill. Docs only.
Nothing here ran a floor. Every figure is a reading of
required-floor-claim-cost,required-floor-cross-claim-demandand therequired-floor:summary already published by tenmainruns. The[over-cost]log lines are a 25-row preview of that TSV and say so; the artifact is the complete 3,498-row population.1. The band is dense — treadmill confirmed, and quantified
87 rows above 300ms, 32 above 400ms, no gap below the ceiling. Repairing modules top-down, worst row remaining across all ten runs:
The first three buy 43ms; the next seven buy 61ms — ~10ms per module.
2. The new crossers do not share a root the way #10133's three did
eval_stepsseparates the cases. The repaired trio reported 612,662–658,336 steps — a 1.07× spread across seventeen rows with unrelated subjects, which is the fingerprint of one shared dominant producer. The families now near the ceiling span 63k–197k (3.1×) in three distinct shapes, one of which (emit_host_*, wall/cpu 2.05) spends half its wall off-CPU in the regionrequired_flooralready carries anOpaqueHostCallUnboundedrung drop for.One shared-producer lead exists —
bind_outcome, top of the cross-claim ranking by 13× and reaching both families — and it is explicitly not a plan: that artifact's own header declarescost_columns=inclusive_of_callees_do_not_sum, and its total is 14× the run's actual claim CPU. It ranks candidates; it cannot quantify a saving.3. The margin is measurable and uniform
Same-identity run-to-run inflation: median 1.16×, p90 1.35×, max ~2.0×. Two mechanism hypotheses tested and both refuted — inflation does not vary with cost bucket (1.07–1.19 across all six) nor with host-call heaviness (1.13–1.16) — which is what makes a single global margin defensible rather than a per-family one. PR runs reach ~1.6×, implying a clean-run budget near 312ms, against 87 rows above 300ms today.
Also: run
33688140761refused with a below-median run factor of 0.96, so a refusal is not evidence the fleet was busy.4. The correction
This was commissioned on the reading that #10133 promoted the next rows into the margin. Promotion is refuted — rank does not cause a crossing, and removing rows above a row does not make it slower. Measured directly, the five post-repair crossers went above their own pre-repair maxima: median 343ms and 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:
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 in the sample — an outlier, not a sample of the plateau.
5. What follows
Per-producer repair is the wrong unit for 87 rows returning ~10ms each. The two sanctioned remedies stand (reduce what the witness reaches for, or a lane with its own dated ceiling naming its rows as executing consumers). Raising the ceiling is not a third option —
required_floorrecords 500→1552→5000 and repudiates both raises, one as the same-tree oracle DESIGN §5 forbids by name.Which remedy fits the emit and execution families is a decision this informs and does not make.
An eleventh run's artifact downloaded empty and is excluded — recorded in the doc because it silently emptied a ten-way intersection before it was caught.
🤖 Generated with Claude Code
https://claude.ai/code/session_01WEFMasGn2cAGCMJW2694pb