Read 0291's fourth reversal condition as a price paid rather than as a trigger - #510
Merged
Merged
Conversation
…a trigger 0291 ends on four conditions that would retake the choice holding M3 and everything behind it. Three of them are states of the world outside this tracker. The fourth counts the open issues on this board that can be worked without a request and fires when that count reaches zero, and zero is a state no arrangement of this board's issues produces: #98 is in the set, its done-condition is the first release and the chain from there arrives at the issue 0291 was written for, and the only other way out of the count is a blocked-on label whose removal was argued on #98 itself on 2026-08-22. 0351 records that the condition is read as the price this board has been paying since 0291 landed rather than as a trigger, that the floor of one is what the reading rests on rather than any particular count, and that the three conditions beside it stand. It goes further than 0291 rather than editing it, because rewording what would reverse a landed record is not one of the edits 0001 allows, and 0291 gains the Narrowed-by field 0267 requires in the other direction. The record carries one correction of its own subject. #351 derived the count as one with #98 its only member, and the decision of 2026-09-18 restates that figure; the same command answers eight today. The section that says so is in the record rather than in a message, because the count is the one figure in the argument that moves and a reader meeting a third number should find the difference already accounted for. What this prevents is a reader of 0291 taking the fourth condition for something that can happen and waiting for it, which is the failure the condition was written against arriving through the condition itself; and, where the reader does notice, an hour of re-derivation from the tracker that ends where this record already is. Closes #351 Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
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 changed
docs/decisions/0351-the-condition-that-counts-this-board.mdis added. It reads0291's fourth reversal condition as a price this board has already paid rather
than as a trigger that can fire, and says why the count that condition names has
a floor of one. 0291 gains the
Narrowed-by:field 0267 requires in the otherdirection, and
docs/decisions/README.mdgains the index line.It goes further than 0291 rather than editing it. Rewording what would reverse a
landed record is not one of the edits 0001 allows, and #351's own done-condition
asks for a record for that reason.
The specific failure it prevents
A reader of 0291 meets four reversal conditions and has no way to tell that one
of them cannot happen. Taking it for a trigger means waiting for a state this
board does not produce, which is the failure the condition was written against
arriving through the condition itself. Noticing that it cannot fire means
re-deriving the chain behind #98, the label history and the reason of
2026-08-22 from the tracker, which is an hour of reading that ends where the
record now is.
Evidence
Read on 2026-09-18 at the mainline this branch is cut from,
243f6e1.
The condition, as it stands in the record:
What that command answers, and who is in the set:
#98's first exit, closing, is downstream of the wait:
Its second exit, a
blocked-on-label, was applied and removed twice and arguedshut on the issue itself:
The comment of 2026-08-22T16:14:55Z gives the reason, and the record quotes it
rather than restating it.
The correction this change carries
#351's body derives the count as one with #98 as its only member, and the
decision of 2026-09-18 on that issue restates that figure. The same command
answers eight today, as pasted above. The reading is unchanged by it, because
what the argument needs is the floor and not the number - both of #98's exits
are shut at any count, and eight is no closer to zero than one - but the
difference is real and is written into the record under its own heading rather
than left for a reader to trip over. It was found by running the command before
writing the record rather than by carrying the figure out of the issue.
The guards this ran through
No guard is added or edited, so there is no deliberate violation to show. The
checks that read this register were run at the commit being pushed:
The
Narrowed-by:field on 0291 is what takes the field count from 8 to 10; itand the new record's
Narrows:line are one pair, and the check reads it in bothdirections.
Three files are touched, all inside the
docs/decisionsscope #351 declares:No
cargorun was made, because nothing this change touches is compiled.What this does not cover
that do fire are untouched. This reads the fourth and takes no position on
whether waiting is still right.
is added is how it is read, which is the form 0291's fourth reversal condition has one member left, and no state of this board takes it to zero #351's done-condition asks for
and the only one 0001 allows.
stand. Neither is argued for or against here.
release, a runner image measured with a working C cross-toolchain, and a triple
leaving 0113's set are states of the world outside this tracker, and none of
them is read here.
blocked-on-labeland nothing else. That rule is neither widened nor narrowed.
target leg, and nothing here moves it.
Who has read this
Nobody other than its author. There is no second reader on this board tonight,
and every reading above is quoted with the command that produced it so it can be
repeated rather than trusted.
Closes #351