Skip to content

Re-read the target's required set against the table it carries a row per (#26) - #231

Merged
iderex merged 1 commit into
mainfrom
parity/a-table-row-whose-entry-left-the-target-set
Aug 31, 2026
Merged

Re-read the target's required set against the table it carries a row per (#26)#231
iderex merged 1 commit into
mainfrom
parity/a-table-row-whose-entry-left-the-target-set

Conversation

@iderex

@iderex iderex commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

What was wrong

docs/quality-parity.md opens by printing the target's required set rather than
copying it, says that on 2026-08-10 the command returned thirteen contexts and
that the table carries one row for each of them, and names a row with no entry
behind it as the drift it is most likely to develop.

That drift is here. I re-ran the command the document hands the reader before
writing anything, at 5500dc763f2f91c910b1e8c59abc1f05c611017d, and compared it
against the row literals in the table in both directions:

gh api repos/Flowfin/jellyfin-plugin-sso/rules/branches/main \
  --jq '.[] | select(.type=="required_status_checks")
        | .parameters.required_status_checks[].context' | sort > entries.txt
wc -l < entries.txt
12

git show origin/main:docs/quality-parity.md \
  | sed -n '/^| Target context/,/^$/p' | grep '^| `' \
  | sed 's/^| `//; s/`.*//' | sort > rows.txt
wc -l < rows.txt
13

comm -23 rows.txt entries.txt
Package (JPRM) / Generate SBOM

comm -13 rows.txt entries.txt
(no output)

Thirteen rows over a set of twelve, one row with nothing behind it, and nothing
the other way.

What this changes

The document carries both readings, the comparison in both directions, and the
row is marked in the table as one whose entry has left the target's set.

It also writes down what the difference does not change, because that is the part
a reader gets wrong in the expensive direction:

The job the entry named is still declared on the target, behind a job-level
condition:

gh api repos/Flowfin/jellyfin-plugin-sso/contents/.github/workflows/build.yml \
  --jq '.content' | base64 -d | sed -n '102,105p'
  sbom:
    name: Generate SBOM
    if: ${{ inputs.attest }}
    runs-on: ubuntu-latest

A job behind a condition reports nothing rather than reporting success, which is
the third of the three cases #62 is written against, and this is the first of
them readable on the target rather than on this board.

What I am not claiming

That the condition is why the entry is no longer required. Neither command above
says so, and I asked nothing that would answer it. The last reading in which that
row had an entry is the document's own 2026-08-10, so when the entry left is also
not something this change establishes.

Nothing here observes a run, on either board. Both readings are of a live ruleset
and of a workflow file.

The means

Prose in the document that already holds this walk, edited in place. The result
this change carries is a comparison between a live setting and a table, which is
what that document exists to hold, and no other means was considered because
adding one would put the answer somewhere a reader of the table would not meet
it.

The gate

Run at the head of this branch, from a checkout:

go build ./cmd/... ./internal/...
go vet ./cmd/... ./internal/...
gofmt -l cmd internal
(no output)
go test -count=1 ./cmd/... ./internal/... 
ok  	github.com/Flowfin/lab/cmd/bom	54.510s
ok  	github.com/Flowfin/lab/cmd/contexts	3.788s
ok  	github.com/Flowfin/lab/cmd/lab	16.728s
ok  	github.com/Flowfin/lab/cmd/notices	33.116s
ok  	github.com/Flowfin/lab/cmd/pullrequest	1.633s
ok  	github.com/Flowfin/lab/internal/bom	3.673s
ok  	github.com/Flowfin/lab/internal/check	12.010s
ok  	github.com/Flowfin/lab/internal/contexts	7.741s
ok  	github.com/Flowfin/lab/internal/hardware	1.638s
ok  	github.com/Flowfin/lab/internal/invariants	8.510s
ok  	github.com/Flowfin/lab/internal/notices	3.796s
ok  	github.com/Flowfin/lab/internal/prose	5.658s
ok  	github.com/Flowfin/lab/internal/pullrequest	1.634s

go run ./cmd/lab check .
examined .
1 experiment directory walked, 1 record read
27 decision records read
0 refused

No guard is added or changed here, so nothing is proved by deletion: this change
is text.

No second reader

Nothing on this board read this change before it was opened. The evidence above
stands in place of one: every claim it makes is a command a reader can re-run,
and the two that decide the change are the comparison in both directions at the
top.

…per (#26)

docs/quality-parity.md says the target's required set printed thirteen contexts
on 2026-08-10, that the table below carries one row for each of them, and that a
row with no entry behind it is the drift this document is most likely to develop.
That drift is here. The command the document hands the reader returns twelve
today, `Package (JPRM) / Generate SBOM` is the row with nothing behind it, and
nothing goes the other way.

The document now carries both readings, the comparison in both directions, and
what the difference does not change. The row stays, because its verdict rests on
this board's own reason for owing a bill of materials rather than on the target
requiring one, and the set #26 assembles is unmoved, because that row was already
outside this board's gate rather than kept in it. The job the entry named is
still declared on the target behind a job-level condition, which is read and
bounded rather than offered as the reason the entry left.

The failure this prevents is a reader assembling the required set from a table
whose frame promises one row per target context while one row answers to nothing,
and taking the count for the answer.

Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
@iderex iderex added documentation Improvements or additions to documentation ci labels Aug 31, 2026
@iderex iderex self-assigned this Aug 31, 2026
@iderex
iderex merged commit d101262 into main Aug 31, 2026
25 checks passed
@iderex
iderex deleted the parity/a-table-row-whose-entry-left-the-target-set branch August 31, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant