Skip to content

v0.86 records: WIDEFILE9, JESSDIVERGE8, SELFTEST2, CLOSESCOPE — four refuting commands run - #1529

Closed
avrabe wants to merge 3 commits into
mainfrom
v086-records
Closed

avrabe wants to merge 3 commits into
mainfrom
v086-records

Conversation

@avrabe

@avrabe avrabe commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

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:

  • 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

🤖 Generated with Claude Code

https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L

… 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
@avrabe avrabe changed the title v0.86 WIDEFILE9 (#1439) + JESSDIVERGE8 (#1436): two refuting commands run, two findings, no code v0.86 records: WIDEFILE9 (#1439), JESSDIVERGE8 (#1436), SELFTEST2 (#1515) — three refuting commands run Oct 14, 2026
avrabe and others added 2 commits October 14, 2026 07:57
…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
@avrabe avrabe changed the title v0.86 records: WIDEFILE9 (#1439), JESSDIVERGE8 (#1436), SELFTEST2 (#1515) — three refuting commands run v0.86 records: WIDEFILE9, JESSDIVERGE8, SELFTEST2, CLOSESCOPE — four refuting commands run Oct 14, 2026
@avrabe

avrabe commented Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #1537, which carries this branch's content in full.

Why: a dependabot auto-merge moved main and put every lane PR behind=1. The merge gate's currency check (rev-list --count head..base must be zero) means merging any one lane PR re-stales the rest, so the six lanes were forced sequential — six rebases and six full CI cycles, with three more auto-merge-enabled dependabot PRs still queued to move main again.

The consolidation was verified by simulation before being chosen: the whole wave applied to a detached worktree off origin/main, the single ci.yml conflict resolved with both steps kept, and gated there at no CI cost — status_evidence 0 failures, claim_check 75/75, verdict_prose clean, and the window anti-vacuity guard untripped.

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 issue-scope: outlives, because #1515's own subject is the SELFTEST2 vacuity and that lane is partial.

@avrabe avrabe closed this Oct 14, 2026
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