Print the token file's undecided contrast claims as owed [#211] - #215
Merged
iderex merged 1 commit intoAug 29, 2026
Merged
Conversation
The role of the third ink step in data/design-tokens.json states a contrast floor of 4.5 against every surface and a bound of one and a quarter on its distance from the second step. Nothing in this tree decides either, and the gate said nothing about that: it printed 39 rules decided and one owed, which reads as the whole of what this gate is meant to carry. Six hex values decide both margins and both clear by two hundredths, so a one-step edit to any of them makes the file assert something false and every leg here stays green. The gap is now printed on every run with what would end it, which is what the owed register is for. What the row waits on is not this repository's to land. The file is a pinned copy of one published elsewhere, so the fields the row would read are declared where the values are authored and arrive here with the next re-pin. The citation case beside it read only the first owed entry. It covered the whole register while that held one entry and would have covered half of it from today, without anybody editing the case, so it walks every entry now. Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
iderex
deleted the
tests/the-token-files-contrast-claims-are-printed-as-owed
branch
August 29, 2026 11:47
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.
Closes nothing. #211 asks for a row that refuses a text token whose contrast
falls under the floor the token file declares, and that row cannot be built
here yet. This is the disclosure that says so on every run, and the reason is
below.
What was wrong
The role of the third ink step in
data/design-tokens.jsonstates two claimsabout the file's own values:
Nothing in this tree decides either of them, and the gate said nothing about
that. At
80942fa:One owed entry, and it is the image-dimension one. A reader takes that line for
the whole of what this gate is meant to carry, and it was not.
Both margins are two hundredths wide, computed from the declared sRGB values
with the script on #36, saved as
contrast.pyand cut to the text scale. Run2026-08-29 at
aab9434:So six hex values decide both, a one-step edit to any of them makes the file
assert something false, and every leg here stays green while the page that
renders the file goes on printing the sentence.
What this change does
One entry in the owed register, which is this repository's own form for a rule
the gate is meant to carry and cannot decide yet, and the second half of the
suite case that walks it.
Both run at
aab9434, the second elided for length.Why the row itself is not in this change
#211 asks first that the file declare the floor and the step distance as fields,
because a number inside an English sentence cannot be read out of prose without
guessing and a floor typed into Go beside it is a second copy of one value.
That file is a pinned copy rather than something this repository authors:
and the copy agrees with the published file today, so two fields added here
would be read as a copy that has drifted rather than as a declaration:
Both run 2026-08-29, the first at
aab9434and the second at80942fa. So thefields are declared where the values
are authored, and the row starts deciding on the re-pin that brings them here.
The reading behind that is written on #211.
That the guards bite
The entry is named by the suite, so a run that stopped printing what it is owed
reds. The three lines of
Runthat print the register, deleted:The citation case read
owed[0]. It covered the whole register while that heldone entry and would have covered half of it from today. With the second entry
renamed to a row the table does decide, which is the mistake the case exists to
catch, the widened form refuses it and the old form passes the same tree:
The second run is the same tree with the case reverted to
owed[0]and nothingelse changed. Both near-misses were reverted; the gate output above is the tree
being pushed.
The means
Go, in
internal/invariant, because the register being extended is there and anentry in it is a struct literal. Nothing is added to the toolchain and no
parallel apparatus appears. The row the entry stands in for is also Go for the
reason #211 gives, and this change does not build it.
Second reader
There is none. The ruleset on this branch requires no approving review, so nothing here
is held back for a second person:
Run 2026-08-29. So no approval is asked for and none was given, and the merge
below is made by the same account that opened this. What stands in place of a
reader is the gate output and the two near-misses above.