Repository navigation
Conversation
… run, two findings, no code Both lanes are measurement-and-record; neither ships a lowering, and both state conduct rule 4 against themselves. WIDEFILE9 — the suspect rung is unreachable from every input we hold. Drove the recovery-statistics flag at a version-matched binary over all four local fixtures, under the reporter's own target and relocatable flags: fixture exhausted wide-file tries rungs tried vfp_local_pressure_1069 0 0 spill, frame-locals, 2 pool-grows falcon_opt_1318 2 0 NONE - pre-ladder selector decline vfp_spill_881 0 0 spill, spill+pool-grow vfp_home_redef_881 0 0 spill, frame-locals, pool-grow Zero on all four, against the reading frozen in the rung's own test file, which records it reached TWICE on the reporter's full module. A zero has two meanings and the controls separate them: the rung is still IN the ladder (the backend still notes it and still selects between its plain and integer-combined forms), so this is NOT REACHED rather than REMOVED; and the rung's own test drives the flag directly and passes on this tree, so the rung works and nothing routes to it. THE NEW FINDING: the committed reduction of the reporter's declines exists precisely so this class has a LOCAL input, and it reaches none of the float rungs. Its two declines are a carried i64 and a carried f64 over a branch, refused by the direct selector BEFORE any register-allocation recovery runs - the statistics line reads a null rung because the ladder never started. A different defect class. So the reduction reproduces the declines but not the rung-reaching behaviour, and the hope that this differential could be built from local inputs is refuted. Honestly unmeasured rather than assumed: the reporter's full module is not retained and was not re-fetched, so the second half of the comparison was not run. The half measured is zero. JESSDIVERGE8 — the held draft is not ready, and that is the finding. Both held drafts were re-read against this tree. The multi-memory one's technical claims were re-verified and HOLD: per-memory size and PMSA-extent symbols for every memory, each memory sized by its own declared page through the twinned getters, the capability reachable on exactly the reporter's flag set. But its own anti-slip sentence is now FALSIFIED THREE TIMES OVER. It promises the reporter a reason rather than a slip if the work proves unbuildable; it has since slipped three releases with the reason never sent, because the reply was never approved. Quietly bumping its stamp each release IS the slip that sentence promised not to perform. Whatever goes out must lead with the slip and its count or drop the sentence - it cannot keep the promise while breaking it. The divergence draft carries NO stamp at all, which is worse than a stale one, and its substance is read from a disassembly of the reporter's object, which is not in this tree - so it cannot be re-verified here, only checked for internal consistency. A durability finding, found by falling for it: the previous release's cold review recorded that the held draft's content "is not in the tree and cannot be reviewed" - true of the repo, FALSE of the durable store where both live verbatim. This lane still spent a search over a half-gigabyte transcript recovering bodies already held, and the recovered divergence copy was an OLDER revision carrying a lead the store records as RETRACTED. Working from it would have reinstated a withdrawn claim to an external reporter. The bodies stay OUT of this public repo: publishing an unsent draft routes around the approval being withheld. The object is not re-derived and the residual is left unexplained, as the artifact instructs. Refs #1439 Refs #1436 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
…en vacuous, and the sweep's own first run was vacuous
Population measured from the self-tests' OWN OUTPUT, not from a pattern over the
source, because the pattern got it wrong first: a regex counting assertion-like
calls returned zero for most files. Running them instead: of twelve files
mentioning the flag, NINE implement a runnable self-test reporting 202 cases;
one REJECTS the flag as unknown, and two use a different idiom and report none.
THE SWEEP neutralises one of each file's own top-level functions at a time and
re-runs the self-test. 62 subjects: 18 cleanly RED, 27 red by CRASHING, 17 GREEN.
Nine of the seventeen are the entry point, where the self-test is dispatched
from inside it - so neutralising removes the TEST, not the subject. That is an
artefact of the mutation and is reported as one; counting them would have more
than doubled the finding.
EIGHT real uncovered subjects remain, and THE POSITIVE CONTROL LANDS: the
function whose removal v0.85 found undetected is among them, so the sweep
reproduces the known case from a different direction rather than reporting an
unavoidable zero.
Classified by reading what each does, because "uncovered" and "vacuous" are not
the same claim:
* 5 cross a process/network boundary a self-test cannot exercise - honestly
uncovered, not vacuous
* 1 reaches a boundary INDIRECTLY through those helpers (a first pass
misclassified it as pure because it looked only in the function's own body)
and has a pure fixture branch that could be covered
* 2 are genuinely coverable and uncovered - one reads a workflow directory, the
other is the known vacuity
Matching function names against case descriptions was tried and REFUSED as an
instrument: a function named for the gate matched inside the string
"merge-gate-self-test". So the eight are reported as uncovered subjects and only
the proven one is called vacuous.
AND THE SWEEP'S OWN FIRST RUN WAS VACUOUS - 100% skip across all 62 subjects,
which would have read as "nothing could be measured". The cause was in the
sweep: walking a function's syntax tree yields an argument node with no line
number, and a broad handler swallowed the error as an unparseable mutation. An
empty positive control is the finding; it was fixed, not reported.
Refs #1515
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
… release, and an experiment corrects the reading
Delivered on the done-when's SECOND branch. The authorised-and-held-open
derivation was read and every status/disposition combination enumerated. FOUR
produce a non-empty set:
* a CLAIMING status authorises its issue by default
* a claiming status declaring the issue OUTLIVES it holds it open instead
* a NON-claiming artifact whose disposition is a REFUTATION and which also
declares it closes its issue authorises the closure
* nothing else
So exactly ONE route is open to a non-claiming artifact, scoped to a refutation
on purpose: only a refutation says the question itself was answered, where
partial or deferred says the scope did not ship. A release whose lanes are
honestly all partial therefore has NO legal way to be non-vacuous. The gate
demands something such a release cannot supply - and what follows is about the
RELEASE's shape, not the gate's demand. Flipping a status to green it would
claim a completion no lane reached.
THE EXPERIMENT CAUGHT WHAT READING GOT WRONG, which is the method point worth
keeping. Declaring that an issue OUTLIVES a NON-CLAIMING artifact DOES enter the
held-open set - the gate's printed count moved 0 -> 1 - so reading the
derivation function alone says that route is open to a partial lane. It is not:
the ENFORCING rule reds it, on the ground that the issue of an undelivered
artifact stays open anyway and the declaration states nothing. Two places answer
the same question; the enforcement binds. A reading of the derivation alone would
have reported the vacuity as avoidable, the opposite of the truth.
THIS RELEASE ESCAPES THE VACUITY, measured by simulating the merged state rather
than predicting it: 2 authorised, 0 held open, 0 closed, 0 failures - against the
previous release's empty set and hard failure. Not a fix to the gate: two lanes
this release genuinely reached a claiming status, which is the shape the
enumeration says is required.
HONEST CAVEAT, stated rather than counted as progress: both authorised issues are
ALREADY CLOSED, so the authorisation is a no-op. One is also the stale
attribution recorded against its own lane; it is left in place rather than
relabelled, because the field vocabulary has no term for a mis-attribution and
inventing one would be worse.
The gate's own potency controls were re-run and both fire: an unauthorised
closure reds by name, and the vacuous authorised set reds on its own in both the
nothing-closed and allow-unclosed forms. The per-issue verdicts are no longer
collapsed into one message, so the defect this issue describes is itself already
fixed.
Refs #1454
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
|
Superseded by #1537, which carries this branch's content in full. Why: a dependabot auto-merge moved The consolidation was verified by simulation before being chosen: the whole wave applied to a detached worktree off Nothing was dropped. The artifact records are byte-identical apart from the PR number they name, plus one correction the simulation surfaced: SPELLSCAN now carries |
v0.86 WIDEFILE9 (#1439) + JESSDIVERGE8 (#1436): two refuting commands run, two findings, no code
Both lanes are measurement-and-record; neither ships a lowering, and both state
conduct rule 4 against themselves.
WIDEFILE9 — the suspect rung is unreachable from every input we hold.
Drove the recovery-statistics flag at a version-matched binary over all four
local fixtures, under the reporter's own target and relocatable flags:
fixture exhausted wide-file tries rungs tried
vfp_local_pressure_1069 0 0 spill, frame-locals, 2 pool-grows
falcon_opt_1318 2 0 NONE - pre-ladder selector decline
vfp_spill_881 0 0 spill, spill+pool-grow
vfp_home_redef_881 0 0 spill, frame-locals, pool-grow
Zero on all four, against the reading frozen in the rung's own test file, which
records it reached TWICE on the reporter's full module.
A zero has two meanings and the controls separate them: the rung is still IN the
ladder (the backend still notes it and still selects between its plain and
integer-combined forms), so this is NOT REACHED rather than REMOVED; and the
rung's own test drives the flag directly and passes on this tree, so the rung
works and nothing routes to it.
THE NEW FINDING: the committed reduction of the reporter's declines exists
precisely so this class has a LOCAL input, and it reaches none of the float
rungs. Its two declines are a carried i64 and a carried f64 over a branch,
refused by the direct selector BEFORE any register-allocation recovery runs -
the statistics line reads a null rung because the ladder never started. A
different defect class. So the reduction reproduces the declines but not the
rung-reaching behaviour, and the hope that this differential could be built from
local inputs is refuted.
Honestly unmeasured rather than assumed: the reporter's full module is not
retained and was not re-fetched, so the second half of the comparison was not
run. The half measured is zero.
JESSDIVERGE8 — the held draft is not ready, and that is the finding.
Both held drafts were re-read against this tree. The multi-memory one's
technical claims were re-verified and HOLD: per-memory size and PMSA-extent
symbols for every memory, each memory sized by its own declared page through the
twinned getters, the capability reachable on exactly the reporter's flag set.
But its own anti-slip sentence is now FALSIFIED THREE TIMES OVER. It promises
the reporter a reason rather than a slip if the work proves unbuildable; it has
since slipped three releases with the reason never sent, because the reply was
never approved. Quietly bumping its stamp each release IS the slip that sentence
promised not to perform. Whatever goes out must lead with the slip and its count
or drop the sentence - it cannot keep the promise while breaking it.
The divergence draft carries NO stamp at all, which is worse than a stale one,
and its substance is read from a disassembly of the reporter's object, which is
not in this tree - so it cannot be re-verified here, only checked for internal
consistency.
A durability finding, found by falling for it: the previous release's cold review
recorded that the held draft's content "is not in the tree and cannot be
reviewed" - true of the repo, FALSE of the durable store where both live
verbatim. This lane still spent a search over a half-gigabyte transcript
recovering bodies already held, and the recovered divergence copy was an OLDER
revision carrying a lead the store records as RETRACTED. Working from it would
have reinstated a withdrawn claim to an external reporter. The bodies stay OUT
of this public repo: publishing an unsent draft routes around the approval being
withheld.
The object is not re-derived and the residual is left unexplained, as the
artifact instructs.
Refs #1439
Refs #1436
SELFTEST2 (#1515): the class sweep ran - 8 uncovered subjects, 1 proven vacuous, and the sweep's own first run was vacuous
Population measured from the self-tests' OWN OUTPUT, not from a pattern over the
source, because the pattern got it wrong first: a regex counting assertion-like
calls returned zero for most files. Running them instead: of twelve files
mentioning the flag, NINE implement a runnable self-test reporting 202 cases;
one REJECTS the flag as unknown, and two use a different idiom and report none.
THE SWEEP neutralises one of each file's own top-level functions at a time and
re-runs the self-test. 62 subjects: 18 cleanly RED, 27 red by CRASHING, 17 GREEN.
Nine of the seventeen are the entry point, where the self-test is dispatched
from inside it - so neutralising removes the TEST, not the subject. That is an
artefact of the mutation and is reported as one; counting them would have more
than doubled the finding.
EIGHT real uncovered subjects remain, and THE POSITIVE CONTROL LANDS: the
function whose removal v0.85 found undetected is among them, so the sweep
reproduces the known case from a different direction rather than reporting an
unavoidable zero.
Classified by reading what each does, because "uncovered" and "vacuous" are not
the same claim:
uncovered, not vacuous
misclassified it as pure because it looked only in the function's own body)
and has a pure fixture branch that could be covered
other is the known vacuity
Matching function names against case descriptions was tried and REFUSED as an
instrument: a function named for the gate matched inside the string
"merge-gate-self-test". So the eight are reported as uncovered subjects and only
the proven one is called vacuous.
AND THE SWEEP'S OWN FIRST RUN WAS VACUOUS - 100% skip across all 62 subjects,
which would have read as "nothing could be measured". The cause was in the
sweep: walking a function's syntax tree yields an argument node with no line
number, and a broad handler swallowed the error as an unparseable mutation. An
empty positive control is the finding; it was fixed, not reported.
Refs #1515
🤖 Generated with Claude Code
https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L