Repository navigation
v0.85 planning: the artifact set, the refuting commands, and the anchor moved to v0.84.0 - #1514
Merged
Merged
Conversation
…or moved to v0.84.0
THEME — "A correction is an unreviewed claim." This theme is EARNED rather than
asserted, and it is the only property this programme has measured identically in
two consecutive releases: each of the last two cold reviews found twelve false
statements, and in each case nine of the twelve were introduced by the loop's own
corrections and addenda rather than by the original work.
v0.84 also produced the MIRROR of v0.83's sharpest instance. v0.83 found a
correction that replaced a PREFIX and left the original TAIL re-asserting the
error; v0.84 produced a splice that replaced a SUFFIX and broke the HEAD it left
behind. A splice must be read against BOTH sides it leaves behind.
v0.84's theme is CARRIED FORWARD as a standing obligation, because it kept firing
after it was named — including inside the loop's own most-repeated check, where a
standing derivation about an external reporter was scoped to one repository,
re-derived its bounded-complete answer correctly every tick for a whole release,
and was blind to open threads the same reporter had filed in two sibling repos.
THE ANCHOR MOVE, with both counts READ OFF the gate's own printed line rather
than computed:
ANCHOR_TAG v0.83.0 -> v0.84.0
ANCHOR_PROGRAMME 580 -> 594
ANCHOR_DELIVERY 134 -> 134 (unchanged; see below)
and their three mirrors in the claims.yaml anchor entry. The gate prints
`v0.84.0 - 134 delivery commits (pinned 134), 594 artifacts (pinned 594), lag 0`.
TWO MEASUREMENTS WORTH RECORDING, because both are this release's theme appearing
inside the move itself:
(1) `programme-status:` prints 611 artifacts across 287 files while the anchor
line prints 594 in the tree at the tag. Two different globs, two correct
answers. The count was read off the anchor line, which is the one the pin is
about; taking it from `programme-status:` would have pinned a number measured
over a different population.
(2) ANCHOR_DELIVERY STAYED 134, AND THE REASON REFUTES THE MODEL THIS LOOP
CARRIED. The carried note described the count as being of "ID-LEADING
delivery subjects", which predicted 135 — v0.84's window contains
`v0.84 FIRSTTOKEN3 (#1476): ...`, from which the lane gate DOES derive the
artifact id RQ-84-FIRSTTOKEN3. But `anchor_delivery_count` matches
`ARTIFACT_ID`, which is `^(RQ-\d+-[A-Z0-9]+)\b` and requires the subject to
begin LITERALLY with `RQ-NN-`. It matches none of v0.84's five subjects.
So two patterns read the same commit subject and disagree about whether it is
a delivery commit, and the looser phrase in the carried derivation would have
produced a wrong pin. Verified with a positive control: `ARTIFACT_ID` does
match `RQ-67-VFPREACH (#1267)`.
The four patterns in the anchor entry that must not move BY CONSTRUCTION were
asserted unchanged: `PROGRAMME_DELETED_SINCE_ANCHOR = 0` (a constant that resets
at every anchor), the `elif [dp] != ...` code shape, the derived floor
expressions, and the version-AGNOSTIC CI grep `status-evidence-anchor: v[0-9]`.
ANCHOR_DELIVERY is deliberately NOT treated as a fifth: it is value-bearing and
merely has not moved, and treating it as immovable would mean never updating a
pinned count that is overdue to change.
SCOPE. Every artifact carries a REFUTING COMMAND to be RUN BEFORE the artifact is
built on, and a refutation is a legitimate outcome reported with numbers.
MUST — the external and externally-relayed defects, plus the two machinery lanes
whose remedies v0.84 measured but did not ship: FALCON2 (#1318), MEMLAYER2
(#1145), JESSDIVERGE7 (#1436), WIDEFILE8 (#1439), NOTESPOP2 (#1259), TWOSOURCE2
(#1183). Refs #1318, #1145, #1436, #1439, #1259, #1183.
FALCON2 is new to the plan ON THE MAINTAINER'S EXPLICIT DIRECTION. It is the
reporter's own still-open blocker and the loop carried it two releases with no
work on it at all — not even oracle hardening, so the conduct rule about
oracle-only progress does not even apply, which is a worse position than if it
did. Its last acceptance reading predates two releases and the lane must
re-measure before scoping. The two sibling-repo defects filed beside it are not
synth codegen and the maintainer directed staying synth-side.
SHOULD: SELFTEST and PROVENANCE are NEW, both produced by v0.84's cold review —
a self-test that advertises potency against real history and stays green with the
capability it tests REMOVED, and a figure pinned to a pre-squash lane head that is
not an ancestor of the default branch, which squash merging guarantees for every
lane head. Then DISPVOCAB2 (#1458), PINDEBT10 (#1428), RUNNERSHAPE2 (#1451),
NOSHOW3 (#1484), ARCHMODEL4 (#1136), FIRSTTOKEN4 (#1476), NPM4 (#1460),
COMPLIANCE5 (#1453), LADDER7 (#1432). Refs #1458, #1428, #1451, #1484, #1136,
#1476, #1460, #1453, #1432.
NOSHOW3's deliverable is a DECISION rather than another measurement: an empty
derived population is a refusal by this programme's own rule, and measuring the
same emptiness a third time is the instrument reporting that it cannot answer.
NPM4, COMPLIANCE5 and LADDER7 are blocked OUTSIDE this repository and must report
blocked rather than re-measure an unchanged external blocker as progress.
`_release.yaml` is COMMENTS ONLY and carries no statistics, verified by a scan
that scrubs version strings and whose positive control detects a planted figure.
SELFTEST and PROVENANCE GET THEIR OWN ISSUES (#1515, #1516), and the reason is
a MEASURED gate defect rather than tidiness. `authorised_close_set` returns a
dict keyed by ISSUE NUMBER and fills it with `target.setdefault(num, art_id)`,
so two artifacts naming the same issue COLLAPSE TO ONE ENTRY SILENTLY and the
survivor depends on iteration order. Demonstrated with a paired control:
two artifacts, same issue -> {1476: RQ-85-SELFTEST} 1 entry
two artifacts, distinct -> {9001: ..., 1476: ...} 2 entries (control)
same issue, order reversed -> {1476: RQ-85-FIRSTTOKEN4} survivor flips
As first written, this plan had SELFTEST sharing #1476 with FIRSTTOKEN4 and
PROVENANCE sharing #1183 with TWOSOURCE2, so two of the seventeen lanes would
have been invisible to the closure gate at release time — while the gate stayed
green now, because `proposed` with no disposition disarms both of its rules.
It is also the release's own theme: `issue:` names WHERE THE ANALYSIS LIVES, and
a self-test-potency finding's analysis does not live in the escape-detector
issue, nor an unreachable-commit finding's in the two-source-gate issue. Every
v0.85 artifact now maps to a DISTINCT issue, asserted: 17 artifacts, 17 issues,
zero duplicates.
Gates at this commit: rivet validate PASS; status_evidence_check rc=0;
claim_check 75/75; verdict_prose 109 artifacts, 0 disagreements.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
avrabe
force-pushed
the
lane/v0.85-plan
branch
from
October 9, 2026 19:10
49c4482 to
9f4302c
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
The v0.85 plan: the artifact set with a refuting command on every lane, a
comments-only
_release.yaml, and the status-evidence anchor moved tov0.84.0across all six sites in this one PR.
THEME — "A correction is an unreviewed claim." Earned rather than asserted,
and the only property this programme has measured identically in two
consecutive releases: each of the last two cold reviews found twelve false
statements, and in each case nine of the twelve were introduced by the loop's
own corrections and addenda rather than by the original work. A correction is
written in the confident register of a fix, it arrives after the reviewing
attention has moved on, and the numbers it introduces have had zero review
passes.
v0.84 also produced the mirror of v0.83's sharpest instance: v0.83 found a
splice that replaced a PREFIX and left the TAIL re-asserting the error, and v0.84
produced one that replaced a SUFFIX and broke the HEAD it left behind. A splice
must be read against both sides it leaves behind.
v0.84's theme is carried forward as a standing obligation, because it kept
firing after it was named — including inside this loop's own most-repeated check,
where a standing derivation about an external reporter was scoped to one
repository, re-derived its bounded-complete answer correctly every tick for an
entire release, and was blind to open threads the same reporter had filed in two
sibling repositories.
The anchor move
Both counts were read off the gate's own printed line, never computed:
ANCHOR_TAG+ claims.yaml mirrorv0.83.0v0.84.0ANCHOR_PROGRAMME+ mirrorANCHOR_DELIVERY+ mirrorTwo measurements worth recording, because both are this release's theme appearing
inside the move itself:
1. Two globs, two correct answers.
programme-status:prints 611 artifactsacross 287 files while the anchor line prints 594 in the tree at the tag. The
count was read off the anchor line — the one the pin is actually about. Taking it
from
programme-status:would have pinned a figure measured over a differentpopulation.
2.
ANCHOR_DELIVERYstayed 134, and the reason refutes the model this loop wascarrying. The carried note described the count as being of "ID-LEADING delivery
subjects", which predicts 135: v0.84's window contains
v0.84 FIRSTTOKEN3 (#1476): …, from which the lane gate does derive the idRQ-84-FIRSTTOKEN3. Butanchor_delivery_countmatchesARTIFACT_ID, which is^(RQ-\d+-[A-Z0-9]+)\band requires the subject to begin literally withRQ-NN-. It matches none of v0.84's five subjects. So two patterns read the samecommit subject and disagree about whether it is a delivery commit, and the looser
phrase would have produced a wrong pin. Positive control:
ARTIFACT_IDdoesmatch
RQ-67-VFPREACH (#1267).The four patterns that must not move by construction were asserted unchanged:
PROGRAMME_DELETED_SINCE_ANCHOR = 0(a constant that resets at every anchor), theelif [dp] != …code shape, the derived floor expressions, and theversion-agnostic CI grep
status-evidence-anchor: v[0-9].ANCHOR_DELIVERYisdeliberately not treated as a fifth — it is value-bearing and merely has not
moved, and treating it as immovable would mean never updating a pinned count that
is overdue to change.
Scope
MUST — the external and externally-relayed defects, plus the two machinery
lanes whose remedies v0.84 measured but did not ship:
FALCON2, MEMLAYER2, JESSDIVERGE7, WIDEFILE8, NOTESPOP2, TWOSOURCE2.
Refs #1318, #1145, #1436, #1439, #1259, #1183.
FALCON2 is new to the plan on the maintainer's explicit direction. It is the
reporter's own still-open blocker, and the loop carried it two releases with no
work on it at all — not even oracle hardening, so the conduct rule about
oracle-only progress does not even apply, which is a worse position than if it
did. Its last acceptance reading predates two releases, so the lane re-measures
before scoping. The two sibling-repo defects filed beside it are not synth
codegen, and the maintainer directed staying synth-side.
SHOULD — SELFTEST and PROVENANCE are new, both produced by v0.84's cold
review: a self-test that advertises potency against real repository history and
stays green with the capability it tests removed, and a figure pinned to a
pre-squash lane head that is not an ancestor of the default branch — which squash
merging guarantees for every lane head. Then DISPVOCAB2, PINDEBT10,
RUNNERSHAPE2, NOSHOW3, ARCHMODEL4, FIRSTTOKEN4, NPM4, COMPLIANCE5, LADDER7.
Refs #1458, #1428, #1451, #1484, #1136, #1476, #1460, #1453, #1432.
NOSHOW3's deliverable is a decision, not another measurement: an empty derived
population is a refusal by this programme's own rule, so measuring the same
emptiness a third time is the instrument reporting that it cannot answer. NPM4,
COMPLIANCE5 and LADDER7 are blocked outside this repository and must report
blocked rather than re-measure an unchanged external blocker as progress.
A gate defect this plan tripped over, measured
As first written, SELFTEST shared
issue: "#1476"with FIRSTTOKEN4 andPROVENANCE shared
issue: "#1183"with TWOSOURCE2. That is not a cosmeticduplication.
authorised_close_setreturns a dict keyed by issue number andfills it with
target.setdefault(num, art_id), so two artifacts naming one issuecollapse to a single entry silently, and which one survives depends on
iteration order. Demonstrated with a paired control and an order reversal:
{1476: RQ-85-SELFTEST}— 1 entry from 2 artifacts{9001: …, 1476: …}— 2 entries (control){1476: RQ-85-FIRSTTOKEN4}— survivor flipsSo two of the seventeen lanes would have been invisible to the closure gate at
release time, while every gate stayed green now, because
proposedwith nodisposition disarms both of the rules that would notice.
It is also this release's own theme, in the PR that plans it:
issue:nameswhere the analysis lives, and a self-test-potency finding's analysis does not
live in the escape-detector issue. So SELFTEST and PROVENANCE got their own
issues, #1515 and #1516, and every v0.85 artifact now maps to a distinct issue —
asserted mechanically: 17 artifacts, 17 issues, zero duplicates.
Gates at this commit
rivet validate— PASSscripts/status_evidence_check.py— rc=0, anchor line abovescripts/claim_check.py claims.yaml— 75/75 claims holdscripts/verdict_prose_check.py— 109 artifacts, 0 disagree with their own fields_release.yamlno-statistics scan — 0 bare numerals after version scrub, with apositive control that detects a planted figure
🤖 Generated with Claude Code
https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L