Skip to content

v0.86 SHOULD wave: nine lanes, four findings, and two instruments shipped - #1536

Closed
avrabe wants to merge 2 commits into
mainfrom
v086-should-records
Closed

avrabe wants to merge 2 commits into
mainfrom
v086-should-records

Conversation

@avrabe

@avrabe avrabe commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

v0.86 SHOULD wave: nine lanes, four findings, and two instruments shipped

Nine SHOULD lanes recorded, each with its refuting command run FIRST. Four
produced findings; three are reported blocked outside this repository without
re-measuring their surroundings.

ARCHMODEL5 (#1136) — THE FILING WAS INVISIBLE TO THE STEP MATCHER.
Derived by ARTIFACT IDENTITY with both refusals armed (duplicate identifier,
empty population): the series runs unbroken from v0.63, no duplicates, so this
filing is ORDINAL 24, stated with ancestor commit 479982e. But it carried only
two tags where the matcher requires feature-loop AND aadl-or-spar, so the matcher
reported this release's step as a FAILURE naming a v0.63 filing - the exact lapse
its own docstring records from v0.65. Adding the tag flips the slot DERIVED-FAIL
-> NA-FILED naming this release's artifact. Measured before and after.

PINDEBT11 (#1428) — A THREE-WAY CONTROL CORRECTS A STANDING CLAIM.
Only the NAME differing between runs, all anchors verified before any write:

rename a LISTED table out of the pattern tripwire below pin LEDGER REDS
add a NEW table under a non-matching name tripwire unchanged LEDGER GREEN
add the SAME table under a matching name tripwire above pin LEDGER REDS

So a renamed table is shown TO COUNT. CLAUDE.md says a non-matching name escapes
"the tripwire AND the ratchet entirely" and cites a demonstration leaving the
ledger green; measured here the RENAME is CAUGHT and only ADDITION escapes - with
both the pin count and the summed case count unchanged while real cases are
pinned.

FIRSTTOKEN5 (#1476) — REFUTED AS SCOPED, and the replacement is sharper.
The disposition branch is REACHED 101 times (vs 141 for the status branch), so it
is not dead. The green-population caveat is addressed by EXECUTION, not argument:
what is dead is two VOCABULARY MEMBERS, and they are UNUSABLE rather than unused.
One gate advertises five dispositions, the other accepts three; planting one of
the extras reds the stricter gate BY NAME while the looser one passes. That word
is exactly the one this release's three blocked lanes would reach for, which is
how the mismatch surfaced.

RUNNERSHAPE3 (#1451) — tested against a REAL instance, not a fixture.
Cancelling superseded runs this tick left genuinely cancelled check-runs on
commits whose runs had been progressing. The classifier exits non-zero on such a
commit reporting 65 unverified check-runs, and zero on a released commit over 83

  • exit codes captured DIRECTLY, not through a pipe. The three runner-name states
    (a real name, the EMPTY STRING, null) are enumerated over a STATED window; an
    earlier sample found only two and the reason was the sample, not the field. The
    SPLIT remains non-derivable: a cancelled unstarted job appears under BOTH the
    empty string and null, and every start==created job in the window was an ordinary
    queued job.

TWO INSTRUMENTS SHIPPED, each with its negative control executed:

DISPVOCAB3 (#1458) — the census printed its REACH above a table summing to the
FIELD OCCUPANCY: one word, two questions, smaller number above the larger table.
Both printed lines now name their denominators. Figures re-derived at this branch
rather than carried, and the previous release's refutation CONFIRMED as a
comparison on two named denominators rather than a multiplier.

PROVENANCE2 (#1516) — a check now proves both halves for a shipped record, with a
positive control in EACH. Measured first: the absent-tool half is clean
everywhere (the earlier defect is fixed by tracking the script) while ancestry is
systemic - 7 pre-squash branch shas in one record, 1 in the next, 2 in the
newest. CI gates the SELF-TEST, not the report, because the gating form defaults
to the newest record and would red on day one over history it cannot change.

NPM5 (#1460), COMPLIANCE6 (#1453), LADDER8 (#1432) — REPORTED BLOCKED with state
re-read AT THE SOURCE, nothing around them re-measured as progress. The registry
was queried directly with the response piped STRAIGHT into the parser: 39
versions, highest 0.69.0, this release absent. Git tags after it: SIXTEEN,
re-derived - the carried figure was fifteen, correct before the last tag.
ATTEMPTING PASSWORDS STAYS DECLINED.

All nine carry issue-scope: outlives, so none authorises a closure: nine issues
are HELD OPEN explicitly, where the previous release held none.

Refs #1136
Refs #1460
Refs #1453
Refs #1432
Refs #1458
Refs #1428
Refs #1516
Refs #1451
Refs #1476

🤖 Generated with Claude Code

https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L

avrabe and others added 2 commits October 14, 2026 08:27
…pped

Nine SHOULD lanes recorded, each with its refuting command run FIRST. Four
produced findings; three are reported blocked outside this repository without
re-measuring their surroundings.

ARCHMODEL5 (#1136) — THE FILING WAS INVISIBLE TO THE STEP MATCHER.
Derived by ARTIFACT IDENTITY with both refusals armed (duplicate identifier,
empty population): the series runs unbroken from v0.63, no duplicates, so this
filing is ORDINAL 24, stated with ancestor commit 479982e. But it carried only
two tags where the matcher requires feature-loop AND aadl-or-spar, so the matcher
reported this release's step as a FAILURE naming a v0.63 filing - the exact lapse
its own docstring records from v0.65. Adding the tag flips the slot DERIVED-FAIL
-> NA-FILED naming this release's artifact. Measured before and after.

PINDEBT11 (#1428) — A THREE-WAY CONTROL CORRECTS A STANDING CLAIM.
Only the NAME differing between runs, all anchors verified before any write:

  rename a LISTED table out of the pattern   tripwire below pin   LEDGER REDS
  add a NEW table under a non-matching name  tripwire unchanged   LEDGER GREEN
  add the SAME table under a matching name   tripwire above pin   LEDGER REDS

So a renamed table is shown TO COUNT. CLAUDE.md says a non-matching name escapes
"the tripwire AND the ratchet entirely" and cites a demonstration leaving the
ledger green; measured here the RENAME is CAUGHT and only ADDITION escapes - with
both the pin count and the summed case count unchanged while real cases are
pinned.

FIRSTTOKEN5 (#1476) — REFUTED AS SCOPED, and the replacement is sharper.
The disposition branch is REACHED 101 times (vs 141 for the status branch), so it
is not dead. The green-population caveat is addressed by EXECUTION, not argument:
what is dead is two VOCABULARY MEMBERS, and they are UNUSABLE rather than unused.
One gate advertises five dispositions, the other accepts three; planting one of
the extras reds the stricter gate BY NAME while the looser one passes. That word
is exactly the one this release's three blocked lanes would reach for, which is
how the mismatch surfaced.

RUNNERSHAPE3 (#1451) — tested against a REAL instance, not a fixture.
Cancelling superseded runs this tick left genuinely cancelled check-runs on
commits whose runs had been progressing. The classifier exits non-zero on such a
commit reporting 65 unverified check-runs, and zero on a released commit over 83
- exit codes captured DIRECTLY, not through a pipe. The three runner-name states
(a real name, the EMPTY STRING, null) are enumerated over a STATED window; an
earlier sample found only two and the reason was the sample, not the field. The
SPLIT remains non-derivable: a cancelled unstarted job appears under BOTH the
empty string and null, and every start==created job in the window was an ordinary
queued job.

TWO INSTRUMENTS SHIPPED, each with its negative control executed:

DISPVOCAB3 (#1458) — the census printed its REACH above a table summing to the
FIELD OCCUPANCY: one word, two questions, smaller number above the larger table.
Both printed lines now name their denominators. Figures re-derived at this branch
rather than carried, and the previous release's refutation CONFIRMED as a
comparison on two named denominators rather than a multiplier.

PROVENANCE2 (#1516) — a check now proves both halves for a shipped record, with a
positive control in EACH. Measured first: the absent-tool half is clean
everywhere (the earlier defect is fixed by tracking the script) while ancestry is
systemic - 7 pre-squash branch shas in one record, 1 in the next, 2 in the
newest. CI gates the SELF-TEST, not the report, because the gating form defaults
to the newest record and would red on day one over history it cannot change.

NPM5 (#1460), COMPLIANCE6 (#1453), LADDER8 (#1432) — REPORTED BLOCKED with state
re-read AT THE SOURCE, nothing around them re-measured as progress. The registry
was queried directly with the response piped STRAIGHT into the parser: 39
versions, highest 0.69.0, this release absent. Git tags after it: SIXTEEN,
re-derived - the carried figure was fifteen, correct before the last tag.
ATTEMPTING PASSWORDS STAYS DECLINED.

All nine carry `issue-scope: outlives`, so none authorises a closure: nine issues
are HELD OPEN explicitly, where the previous release held none.

Refs #1136
Refs #1460
Refs #1453
Refs #1432
Refs #1458
Refs #1428
Refs #1516
Refs #1451
Refs #1476

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
All nine records named PR #1531, predicted from the last number seen. The PR
opened as #1536 - five numbers were consumed in between. R15 requires `landed:`
to name the delivering PR, so every one of the nine was wrong.

This is the "pin it, never predict it" rule generalised past squash subjects to
PR numbers: read the number back from the created PR rather than extrapolating.

Refs #1136

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
@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