Skip to content

The floor-cost receipt, adjudicated: (b) refutes at corpus grain, and the episode is admitted only in part - #10228

Merged
briansrls merged 6 commits into
mainfrom
session/tidy-lynx-804
Sep 3, 2026
Merged

briansrls merged 6 commits into
mainfrom
session/tidy-lynx-804

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

Three things, filed into floor_cost_claim_qualification_unavailable. The second is a negative result and the third is a correction to this PR's own earlier framing.

1. The gunbc#10192 episode — admitted in part, not end to end

Earlier revisions of this PR called it "one complete mitigation episode." That was wrong, and the row now adjudicates the sequence rather than smoothing it.

attempt job disposition
1 — executed zero jobs (run created awaiting workflow approval); not an instance
2 100543957851 claims_failed=33, both cost arms zero — outside the domain; a negative eligibility control, not a denominator member
3 100573179841 presents the two-arm shape this row admits
4 100606296727 the one reroll, actuated and consumed

The attempt 2 → attempt 3 transition is unadjudicated and is recorded as such. Being outside this row's budget means attempt 2 spent no reroll; it does not mean it earned one. That re-run was not admitted by this row and no other authority is named for it — so the sequence is an unadmitted retry of an ordinary red on byte-identical input, then a cost-only refusal this row does admit, then its one reroll. A clean attempt 4 does not retroactively discharge attempt 2.

Attempt 2's 33 failures are not characterised as semantic. claims_failed enumerates ordinary claim-failure dispositions and does not say why they failed; a missing host capability surfacing as a runtime error lands in the same counter as a genuine false assertion.

2. Missing item (b) is measured, and it refutes

(b) asks for an identity join of eval_steps across two attempts of one identical tree, cpu allowed to move and steps required not to. Attempts 3 and 4 are that pair — and they checked out the same synthetic merge commit, so this is byte-identical executed input, not merely a stable branch label.

  • cpu_ms disagrees on 1394 / 3519, max |delta| 128ms
  • eval_steps disagrees on 18 / 3519

99.49% exact against cpu's 60.4% — far more stable, and not invariant. (b) required invariance.

The job log says the opposite. Its printed over-cost list shows identical eval_steps on every identity while cpu swings by a third, so (b) reads as satisfied from the log alone. That list is ranked by cost and truncated at 25, and 17 of the 18 disagreeing rows are too cheap to appear. A subset selected by the variable you are not testing cannot test the one you are.

Seventeen are pass/pass under 0.43% and clustered — sixteen in three modules of one partition/unit witness family. That establishes module-clustered variance exists; it does not establish that the refused set redraws by module. The eighteenth is the interrupted row, whose step count is a partial at the stop, bearing on missing item (a).

3. The planned population is not a function of the tree

Same synthetic merge, three attempts: planned=executed of 3534, 3519, 3519. known_red_held, route_gap_held and stale_quarantine are identical across all three — only the population moves. Which fifteen identities differ is not recoverable (the 3534-attempt uploaded no cost artifact), so this is honestly bounded to count grain.

This makes exact head insufficient as a comparability identity. It leaves exact head intact as the deliberately coarse budget key — the allowance stays one per exact head, and letting a changed population mint a fresh signature would recreate retry-until-green precisely when the roster becomes unstable.

4. gunbc#10231's episode — the sharpest instance the row carries

A ledger-only prose PR was refused at completed_over_cost_requirement=1, every other counter zero, on rust_produced_decl_name_discriminates at cpu_ms=523. One reroll: pass at cpu_ms=404 — while eval_steps is identical at 169297 on both. Same head, same tree, same identity, opposite verdicts, and the measured work did not move by one step. An independent lane had named that identity hours earlier at 81% of budget on green main (406ms) with the arithmetic that a 1.27× envelope crosses 500.

Independent replication of the spread from this row's other episode's artifacts (no shared instrument): over 556 identities ≥50ms in both attempts, cpu ratio median 1.045, p90 1.219, max 1.721. The median is the uninteresting number; the tail decides verdicts.

Net

(ii) moves from unmeasured to measured and failing. The trigger is a conjunction of three; (i) and (iii) untouched. Nothing here retires the row, and raising the ceiling is not proposed — "the comparison does not qualify the claim" and "the threshold is too low" are different claims, and only the first is recorded.

Citation to the mechanism row is one-way (narrower → capability). An earlier revision claimed both directions "so the triggers cannot drift"; there is no typed relation field, so cross-citation makes the relationship review-visible and nothing stronger.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RDCRC6CKcQGBSx3JcaGe3V

Brian Searls and others added 6 commits September 3, 2026 12:07
…em (b) measured at corpus grain — it refutes

`floor_cost_claim_qualification_unavailable` gains the gunbc#10192 episode enumerated in
full, including the two attempts that do NOT qualify, because an episode listing only the
qualifying attempts overstates the mitigation's hit rate. Attempt 1 executed zero jobs
(awaiting workflow approval); attempt 2 refused semantically with both cost arms at zero, so
it is outside this row's domain; attempt 3 qualifies with one row on each arm; attempt 4 is
the consumed reroll.

The row's missing item (b) — an identity join of `eval_steps` across two attempts of one
identical tree, cpu allowed to move and steps required not to — is now MEASURED, and it
REFUTES rather than discharges. Attempts 3 and 4 join totally at 3519 rows: cpu disagrees on
1394, `eval_steps` on 18. The step measure reproduces exactly on 99.49% of the corpus against
cpu's 60.4% — far more stable, and not invariant.

The job log says the opposite. Its printed over-cost list shows identical `eval_steps` on
every identity while cpu swings by a third, so (b) reads as satisfied from the log alone. That
list is ranked BY COST and truncated at 25, and 17 of the 18 disagreeing rows are too cheap to
appear in it. A subset selected by the variable you are not testing cannot test the one you
are — so (b) must be joined on the uploaded artifact, never on the printed summary.

The 18 are two classes. Seventeen are pass/pass with deltas under 0.43%, and 16 of those sit
in three modules of one partition/unit witness family — clustered, not uniform. That
establishes module-clustered variance EXISTS in the corpus, which is the mechanism a
module-clustered redraw would require; it does NOT establish that the refused set redraws by
module, and the row says so. The eighteenth is the interrupted row, whose step count is a
partial at the stop rather than the claim's work — the step-domain twin of the printed ms
being the budget — which bears directly on missing item (a): a step-denominated line would
compare against that partial for precisely the rows it exists to judge.

Net: (ii) moves from unmeasured to measured-and-failing. The trigger is a conjunction of
three, (i) and (iii) are untouched, so nothing here retires the row or raises the ceiling.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDCRC6CKcQGBSx3JcaGe3V
…as not a toolchain incident

Two corrections to the episode just filed, both measured from the same three jobs.

First: on the single head b65a0eb the three attempts carrying a floor job report
planned=executed of 3534, 3519 and 3519. Fifteen claims of difference across attempts of one
head with no change to the source. No cause is asserted — if the plan is computed relative to
a moving main rather than to the head under test, this is expected rather than anomalous, and
that is the first thing to check. What it establishes regardless of cause is that EXACT HEAD
DOES NOT BY ITSELF FIX THE POPULATION A REROLL IS DRAWN FROM, so the bounded
per-head-per-signature rule this row admits must say whether a changed planned count is
receipt detail or a fresh signature. Left open deliberately: answering it by preference would
be the unmeasured narrowing this row exists to refuse.

It does not contaminate the (b) join in the previous commit — attempts 3 and 4 both planned
3519 and their identity join is total at 3519 with zero rows on either side.

Second: attempt 2 was characterised elsewhere as a cargo/toolchain incident belonging to a
runner population. Its own summary reports `host_tool_unresolved=0` beside
`claims_failed=33`, so it is an ordinary red floor and belongs to no such population. The
disposition is unchanged — both cost arms are zero and the failed=0 precondition does not
hold — but the ground for excluding it from the mitigation is the cost-arm test, not a
tooling attribution.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDCRC6CKcQGBSx3JcaGe3V
…nthetic merge — and the missing back-citation

The previous commit named a likely cause for the differing planned counts and said to check
it first. Checked, and it is dead. Actions evaluates a synthetic merge rather than the branch
head, and all three attempts checked out THE SAME synthetic merge commit — each job log
carries the identical "Merge b65a0eb… into 3547b3f" line. So the three ran a
byte-identical tree, the base did not move between them, and the planned population varies
across attempts of a genuinely fixed tree.

The counters that do NOT vary narrow it further, and they are the ones a reader reaches for
first: `known_red_held`, `route_gap_held` and `stale_quarantine` are identical across all
three. Only planned/executed/terminal move, together, by fifteen.

What cannot be said, and it is an artifact gap rather than a judgement: WHICH fifteen
identities differ is not recoverable, because the 3534-attempt uploaded no per-claim cost
artifact. So this is a COUNT-grain finding, which is the weaker form this row elsewhere
refuses to accept as a population — recorded as a count because that is what was measured.

One conjecture, labelled as one and carrying its own test: the same unpinned iteration order
that would explain the module-clustered `eval_steps` variance could also change how many
claims a generator emits, giving both observations one root. Nothing establishes that; the
discriminating test is named in the row so the next lane need not invent it.

Also adds the back-citation to `claim_forced_and_unbracketed` that the mechanism row's own
filing claimed was "stated in both directions" and was not — only the forward direction had
landed. Both now cite each other, so the two triggers cannot drift apart silently.

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

#10106 and #10200 moved `floor_cost_claim_qualification_unavailable` from line 102 to 315 and
replaced `authored: String` with `declaration: RungDropDeclaration`, so this row is now the
legacy `AuthoredProse` arm. Git therefore reported my edit at a stale position with an EMPTY
opposite side, which reads as "main deleted the row" and is not what happened.

Resolved by transplant rather than by side-picking: verified main's authored text is
byte-identical to the merge base (delta 0 chars), so main changed the carrier and the position
and not the prose; extracted my append as the suffix of the base text (11179 chars); took
main's file wholesale and re-applied that suffix to the row at its new location inside the new
carrier. Both sides' content asserted present before writing.

`docs/design-rung-drops.md` was NOT hand-resolved. It is a projection, so it was regenerated
from the resolved authority and verified by content — which is also what proves the authority
parses, since the generator had to read and fold the row to emit it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDCRC6CKcQGBSx3JcaGe3V
…tion one-way, and enumerate #10231

Three corrections, two of them to claims I made.

"Stated in both directions so the two triggers cannot drift apart silently" was an overclaim.
`RecurringFailureMode` and `RungDrop` carry no typed relation field, so editing either trigger
invalidates nothing and refuses nothing. Cross-citation makes the relationship
REVIEW-VISIBLE; it does not make drift mechanically impossible, and saying otherwise is the
rung inflation §4b(1) forbids applied to a relationship instead of a guarantee.

So the backlink is removed and the citation is one-way: the narrower row cites this one as the
capability it blocks, and this row stays cause-agnostic. That also restores this row's own
opening discipline — it declares that it NAMES NO CAUSE, and enumerating a mechanism here
starts undoing the rename that removed a refuted attribution from its identity.

Adds the explicit refusal of the reading the planned-cardinality finding most invites: a
differing planned count weakens comparability between two attempts and lowers confidence they
covered the same claims. It does NOT expand the allowance, which stays at one per head per
signature, consumed on actuation. An attempt outside this row's domain spends nothing and
EARNS nothing — an ineligible red is not a free retry.

Enumerates the #10231 episode, which is the sharpest instance this row carries: a ledger-only
prose PR, refused at `completed_over_cost_requirement=1` with every other counter zero, on
`rust_produced_decl_name_discriminates` at cpu_ms=523; one reroll actuated and consumed; pass
at cpu_ms=404 — while `eval_steps` is IDENTICAL at 169297 on both. Same head, same tree, same
identity, opposite verdicts, and the measured work did not move by one step. An independent
lane had named that identity hours earlier at 81% of budget on green main (406ms) with the
arithmetic that a 1.27× envelope crosses 500; the reroll reproduces that figure to within 2ms.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDCRC6CKcQGBSx3JcaGe3V
…s row had already ruled on

Review caught that my appended receipt reintroduced spellings this same row had already
refuted, and asserted a cause its counters do not establish. All four are mine.

"The refusal is semantic" exceeds the measurement. `claims_failed` enumerates ordinary
claim-failure dispositions and does not say why they failed — a missing host capability
surfacing as a runtime error lands in the same counter as a genuine false assertion. Now:
ordinary claim-failure floor refusal, cause unestablished.

Attempt 2's role was wrong. I kept it to avoid overstating the mitigation's hit rate, but a
mitigation's eligible population is the attempts satisfying its admission predicate, so an
attempt outside the class can no more count as a failed use of it than an ordinary compile
error can. It is a NEGATIVE ELIGIBILITY CONTROL — kept because it proves the predicate
excludes something real.

The attempt 2 → attempt 3 transition was unadjudicated, and calling the whole sequence "one
complete episode" laundered it. Outside this row's budget means attempt 2 SPENT no reroll; it
does not mean it EARNED one. That re-run was not admitted by this row and no other authority
is named for it, so the sequence is an unadmitted retry of an ordinary red on byte-identical
input, then a cost-only refusal this row does admit, then its one reroll. A clean attempt 4
does not retroactively discharge attempt 2.

`failed=0` is not the eligibility key and is no longer restated as one: this row already
ruled that test defective because it reads the floor's own COST disposition counters, which
cannot report that anything else failed and so could only confirm themselves. The current
surface is the run's phase verdict.

"One per head per SIGNATURE" is not the budget: the row already ruled the signature an
ADMISSION PREDICATE and never a budget key. The planned-count finding makes exact head
insufficient as a COMPARABILITY identity while leaving it intact as the deliberately coarse
BUDGET key — and I had left that "open" when the row had already decided it, which invited
the reading it forbids.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDCRC6CKcQGBSx3JcaGe3V
@gunbai-bot gunbai-bot Bot changed the title floor cost: one complete mitigation episode by run id, and missing item (b) measured at corpus grain — it refutes The floor-cost receipt, adjudicated: (b) refutes at corpus grain, and the episode is admitted only in part Sep 3, 2026
@briansrls
briansrls merged commit c98433b into main Sep 3, 2026
7 checks passed
@briansrls
briansrls deleted the session/tidy-lynx-804 branch September 3, 2026 17:10
@briansrls
briansrls restored the session/tidy-lynx-804 branch September 3, 2026 17:16
gunbai-bot Bot added a commit that referenced this pull request Sep 3, 2026
…ipt, two of which discharge open conjuncts by assertion (#10260)

* Forward-fix: six overclaims landed in the floor-cost receipt, two of which discharge open conjuncts by assertion

#10228 merged at the head BEFORE these repairs, so the overclaims are live in
`floor_cost_claim_qualification_unavailable` on main and the fixes belonged to no PR. This is
that forward-fix, re-derived against main rather than replayed from the orphaned branch.

`failed=0` survives in the attempt-2 passage after being retired one paragraph away. There is no
`failed=0` precondition; the relevant fact is that the cost-arm admission predicate does not
hold.

Attempt 3's eligibility lost its proof rather than gaining a better one — the internal counter
argument was removed and nothing put in its place, leaving a correct qualification unsupported by
the surface this row names as adjudicating. Now enrolled: `phases_run=3`, `phases_failed=1`,
floor the only failed phase, `unexpected_failures=0`.

"(ii) moves to MEASURED AND FAILING" is too broad. (ii) is a DISJUNCTION — invariant OR bounded
by construction — and only the first arm was tested. Exact invariance: refuted. Boundedness:
unestablished, since the 556-identity distribution calls itself a spread and not a bound. The
whole conjunct REMAINS UNSATISFIED, which is a different finding from both alternatives failing.

"A module-clustered nondeterminism SOURCE" asserts as fact the conjecture the next paragraph
labels as one. The measurement establishes that module-clustered variance exists in this A/B.

"A change of that shape cannot produce a cost regression" does not follow: the ledger is accepted
`.dag` source, so altering a large literal can move parsing, resolution, allocation or closure
work. The sufficient control is that the diff was identical across both attempts and so cannot
explain the flip.

"What decided the floor was the execution envelope and not the claim's work" exceeds the
instrument. Identical `eval_steps` establishes identical counted evaluator entries AFTER the
netting rule; host work, closure work, attribution and cache behaviour are uncounted. The
supportable claim is that the cpu verdict is not determined by `eval_steps` alone. This row keeps
charge-subject alignment open as conjunct (i), so using this pair to place the varying component
outside the claim would discharge (i) by assertion.

The last two are the reason this is a forward-fix rather than a wording pass: as landed, the row
silently weakens two of the three conjuncts its own restoration trigger depends on.

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

* The advance prediction had no carrier, and having found one it refutes the framing

The remaining two blockers from review, both about evidence rather than wording.

The row claimed an independent lane had named this identity in advance — 406ms, 81% of budget,
with the arithmetic that a 1.27× envelope crosses 500 — and named no PR, run, job or artifact it
could be re-derived from. That is the transcribed-number failure §6 forbids: I copied a value
that reached me by relay and made it load-bearing.

The carrier exists and is now cited: run 33754393519, floor job 100645180812, event push on main
head 75873c2, reporting `cpu_ms=406` with `eval_steps=169297` — the same step count as both
attempts of the episode, at a third distinct cpu. That strengthens the eval_steps observation.

But finding it refutes the framing it was supposed to support. The job timestamps show the
green-main job ran 12:17:45Z–12:45:05Z and the refusing attempt ran 12:40:20Z–13:10:22Z, so THE
TWO RUNS OVERLAPPED. The value was observable 25 minutes before the refusal was observed, which
makes this corroboration at a third sample and NOT a prediction made before the event. The
advance-prediction claim is withdrawn rather than restated more carefully.

"The two measurements share no instrument" was false. They share the required-floor cpu producer,
its accounting semantics, the evaluator-step counter and the artifact schema. What they do not
share is a run or an artifact, and that is the whole of the independence now claimed.

The ratio percentiles were published without their function, and B/A versus max/min give
materially different numbers, so the figures were not independently reconstructible. Now defined
per joined identity as max(cpu_A, cpu_B) / min(cpu_A, cpu_B) — direction-free, never below 1.0.

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

* Seventh correction: the trigger's own sentence said BOUNDED while both glosses said BOUNDED BY CONSTRUCTION

Found by warm-seal-35 reviewing #10260. Four occurrences of BOUNDED in the row; the two
carrying BY CONSTRUCTION are both TALKING ABOUT the trigger, while the canonical trigger
sentence -- the one a future lane reads to decide whether the drop retires -- said plain
BOUNDED.

Under DESIGN 4b(3) a drop is retired BY ITS TRIGGER AND BY NOTHING ELSE, so commentary
does not save it. This is the grain mismatch that section names: a trigger naming less
than the capability it restores is satisfied while the capability stays dead.

Live, not hypothetical: a 12-run campaign on this exact subject reports a worst-observed
2.280x. Against (ii) as it was WRITTEN, that campaign could be presented as the basis
being bounded and retire this row. Against (ii) as its own glosses state it, no campaign
can, because every observed maximum is a LOWER bound on the smallest possible bound.

The row already knew this -- 'a maximum of 1.721 observed over one pair of attempts on
one host pair is a FLOOR on the spread, not a bound on it' -- but that sentence is scoped
to that one measurement, so it read as an invitation to sample more hosts rather than as
a statement about what sampling can establish at all.

Same class as the six corrections already in this PR: an overclaim in the row's own text.

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

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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