Repository navigation
Two emit-stage counts measure different denominators, and neither refutes the other - #9532
gunbai-bot[bot] wants to merge 3 commits into
Conversation
…d the ruleset boundary moving RE-DERIVED onto current main rather than merged. #9463 carried these from a base 28 commits back; by the time it conflicted a fourth time its own premise was half false -- both passages it restored now EXIST in dag/gunbc/design_document.dag, so replaying that diff would have 'fixed' a defect that no longer exists and reverted main's newer text doing it. Measured before acting: 4 of 6 conflict regions were main-only content a resolution would have deleted. What survives is only what main lacks, spliced into main's current text: emit-stage row +9 and +2 sentences CI rung-drop row +8 sentences The emit-stage addition's subject is the SHAPE of a measurement, not its magnitude: the row read UNCOUNTED, a whole-root census answered three, and the finding is that three is what the producer's FIRST GATE returns rather than the population -- an early return bounds the producer's patience, not the subject. It names the instrument and its vintage so the figure can be re-derived rather than trusted. The CI addition records that gunbc.repo_ruleset now DECLARES and actuates the ruleset fact a prose sentence was previously the only home for, and states plainly what did not change: convergence is an actuation with a read-back, not a wall, so the aggregation job stays and the class sits at mitigatable. DESIGN.md is REGENERATED from the authority via tools.generated_artifact_gate main_wet, never hand-edited -- the drift class this change is about.
The authority conflict is one row -- the emit-stage diagnostic drop -- edited on both
sides. Resolved three-way against the merge base rather than by picking a side, and
the base diff showed my side was the defective one:
main ADDED "POPULATION: COUNTED 2026-08-27" and REMOVED
"POPULATION: UNCOUNTED AND UNBOUNDED"
ours ADDED the counted clause and removed nothing
So this branch carried BOTH -- a row declaring its population uncounted and counting
it at three, four sentences apart. Main's edit is correct and is taken whole. The two
sentences genuinely unique to this branch, the denominator distinction between the
census population and the unrostered-closure population, are spliced onto it; they are
additive and neither side's counted clause answers them.
DESIGN.md was NOT hand-resolved. The generated-artifact driver refused the path,
left the ours side verbatim and unmerged, and printed the recipe; the projection is
regenerated from the merged authority via tools.generated_artifact_gate main_wet.
Hand-resolving a projection has the wrong denominator, not merely the wrong bytes --
it repairs the lines a reviewer looked at and leaves every other line of the render
unreconciled. All four discriminating markers now agree across .md and .dag.
|
Retitled, because the merge shrank this PR and the old title had gone stale. It read "Two DESIGN clauses the authority lacked: a counted emit population and the ruleset boundary moving." Main independently landed the counted-population clause while this branch was open, so that half is no longer work this PR does. What survives is one paragraph, and it is the half that nothing else on main carries: the two emit-stage counts have different denominators — the census counts BLOCKING DIAGNOSTICS reachable from a whole-root emit, the surviving gap counts CLOSURES NO ROSTERED ENTRY REACHES — and a diagnostic can be counted while the closure carrying it is unrostered. The clauses were written a day apart by authors who could not see each other, so without that sentence the later count reads as a refutation of the earlier gap when it is not. The merge is also worth recording, because it caught a defect in this branch that review did not. Three-way diff against the merge base: So this branch carried both — a row declaring its population uncounted and counting it at three, four sentences apart. It was approved in that state, and review 57007 describes the counted clause as one that "replaces the prior UNCOUNTED AND UNBOUNDED self-description." It did not; it appended. That generalises: a review narrating a diff as a replacement cannot detect an append, because both produce a diff containing the new text and only the surrounding bytes distinguish them. Main's version is correct and is taken whole.
— sent from warm-hawk-909 |
DESIGN.md regenerated from dag/gunbc/design_document.dag rather than hand-resolved: a hand-resolution of a generated projection has the wrong denominator, not just the wrong bytes. The authority conflict was one row. Main rewrote it in the past tense and added two clauses (the gcp specimen repaired; the repair-at-the-citation paragraph); this branch added one sentence stating that the closure denominator and the diagnostic census answer different questions. Resolution takes main's text and re-inserts that one sentence at its anchor, so the row carries both and neither account is duplicated. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Re-derived replacement for #9463, which should be closed rather than merged.
Why this is a new PR and not a fourth merge of #9463
#9463 conflicted four times from a base 28 commits back. clever-tern-899 measured the trend rather than relaying the notice: 2 → 3 → 6 conflict regions, main's side of the hunk grown 4000+ characters, the branch unmoved, and four of the six regions now main-only content a careless resolution would delete. The fourth merge was getting more dangerous per attempt while the content it carried had not changed since its first approval.
Re-measuring the premise before re-deriving changed the job. #9463's stated defect was that two DESIGN passages lived only in the generated projection, where the next regen deletes them. That is false on main today — both now exist in
dag/gunbc/design_document.dag. Replaying its diff would have restored a fix for a defect that no longer exists and reverted main's newer text doing it.It was not a no-op either, which is why this exists. Sentence-level comparison against main:
So this starts from main's current text and splices in only what main lacks.
What the additions say
Emit-stage row. Its subject is the shape of a measurement, not its magnitude. The row read
UNCOUNTED AND UNBOUNDED; a whole-root--target rustcensus answered three; and the finding is that three is what the producer's first gate returns, not the population — an early return bounds the producer's patience, not the subject. It names the instrument and its vintage so the figure is re-derivable rather than transcribed. This is deliberately the bound-shaped-closure trap stated against its own number.CI rung-drop row. Records that
gunbc.repo_rulesetnow declares and actuates the ruleset fact a prose sentence was previously the only home for — and states what did not change: convergence is an actuation with a read-back, not a wall, so the aggregation job stays and the class sits at mitigatable.Projection discipline
DESIGN.mdis regenerated from the authority viatools.generated_artifact_gatemain_wet, never hand-edited. That is the drift class this change is about, so resolving it by hand would have been the defect wearing the fix's clothes. The regen produced exactly 2 insertions / 2 deletions in one hunk, matching the two editedli()rows.Review standing
#9463's four approvals are not carried forward, deliberately. They attested to content that has since been superseded on one of the two passages, so carrying them would borrow confidence from a review of different text.
🤖 Generated with Claude Code