Skip to content

Say that the prose half of the prettier row is in the tree (#26) - #141

Merged
iderex merged 1 commit into
mainfrom
parity/the-prettier-row-still-says-the-prose-half-is-absent
Aug 16, 2026
Merged

Say that the prose half of the prettier row is in the tree (#26)#141
iderex merged 1 commit into
mainfrom
parity/the-prettier-row-still-says-the-prose-half-is-absent

Conversation

@iderex

@iderex iderex commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Closes nothing. Issue #26 stays open. This is a correction to the same document
the set is assembled from, found while checking that the change before it had
covered every name.

What was wrong

The prettier row said "the prose half is issue #50 and nothing in this tree
formats Markdown today". The row is one day older than the check it calls
absent:

git log -1 --format='%h %ad %s' --date=short --diff-filter=A \
  -- docs/quality-parity.md
28b9142 2026-08-10 Walk the sso required set and say what survives here

git log -1 --format='%h %ad %s' --date=short --diff-filter=A \
  -- .github/workflows/prose.yml
a9f3b74 2026-08-11 Refuse a whitespace change that hides the sentence next to it

So a sixth declared check name carried no verdict in this document. It is a
different failure from the five that were given one at d645d4e: those were
never written down at all, and this one was written down as absent and went
stale where it stood. That is the harder of the two to find, because a reader
searching the row for the prose half finds a sentence rather than nothing.

How it was found

By comparing the names the tree declares against the literals the document
carries, rather than by reading the row:

git grep -h -oE '\{Name: "[^"]+"' origin/main \
  -- internal/contexts/contexts.go | sed 's/{Name: "//; s/"$//' | sort -u \
  | while read -r n; do
      grep -qF "$n" docs/quality-parity.md || echo "no literal in doc: $n"
    done
no literal in doc: prose format

Run against the head of this branch the same sweep prints nothing for
prose format. The six build (...) entries it also prints are not this case:
their verdict is in the build row and reaches them through
docs/decisions/0012-the-supported-platforms.md rather than through six
literals, which is the rule against enumerating in a document working as
intended.

What this changes

One table row. It names the format job and the prose format job, says both
are kept and belong in the required set, and keeps the thing the old sentence
had right: neither of them rewrites anything. That is where the split departs
from the target, since prettier formats and these two refuse, so a departure
is a red tick here and a diff there.

The measurements

Run at 27fb1cd, the head of this branch:

go test ./internal/prose ./internal/invariants -count=1
ok  	github.com/Flowfin/lab/internal/prose	0.590s
ok  	github.com/Flowfin/lab/internal/invariants	0.827s

go run ./cmd/lab check . | tail -1
0 refused

The means

One row of an existing Markdown document, because what is wrong is a sentence in
that row. No language, runtime or dependency is added.

What this does not do

It does not assemble the required set and it does not touch the ruleset, which
is what the done-condition of #26 ends on. It moves no state in
internal/contexts/contexts.go, for the same reason the change before it did
not: a kept name leaves the deliberate-absence list by entering the ruleset, and
the entry for prose format already says exactly that.

The reading

There is no second reader on this board tonight, so nothing here has been read
by anybody but its author. The commands above are quoted with their output in
place of one, so every claim in this body can be re-run rather than taken.

Signed-off-by: Nils Lehnen 30603423+iderex@users.noreply.github.com

What was wrong. The `prettier` row read "the prose half is issue #50 and nothing
in this tree formats Markdown today". Both halves of that sentence stopped being
true on 2026-08-11. The row is a day older than the check it says is absent:

    git log -1 --format='%h %ad %s' --date=short --diff-filter=A \
      -- docs/quality-parity.md
    28b9142 2026-08-10 Walk the sso required set and say what survives here
    git log -1 --format='%h %ad %s' --date=short --diff-filter=A \
      -- .github/workflows/prose.yml
    a9f3b74 2026-08-11 Refuse a whitespace change that hides the sentence next to it

So a sixth declared check name had no verdict in this document, for a different
reason from the five that were given one a commit ago. Those were never written
down. This one was written down as absent and the entry went stale where it
stood, which is the harder of the two to find, because a reader searching the
row for the prose half finds a sentence rather than nothing.

How it was found. By comparing the names the tree declares against the literals
this document carries, rather than by reading the row:

    git grep -h -oE '\{Name: "[^"]+"' origin/main \
      -- internal/contexts/contexts.go | sed 's/{Name: "//; s/"$//' | sort -u \
      | while read -r n; do
          grep -qF "$n" docs/quality-parity.md || echo "no literal in doc: $n"
        done
    no literal in doc: prose format

The six build entries the same sweep prints are not this case. Their verdict is
in the `build` row and reaches them through the platform record rather than
through six literals, which is the enumeration rule working as intended.

What this changes. The row names both jobs, says both are kept and belong in the
required set, and keeps the one thing the old sentence had right underneath it:
neither of them rewrites anything. That is where the split departs from the
target, since `prettier` formats and these two refuse, so a departure is a red
tick here and a diff there.

Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
@iderex
iderex merged commit 1593bb1 into main Aug 16, 2026
25 checks passed
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