Say how much shell this gate is written in by reading the tree, not a count - #411
Merged
Merged
Conversation
… count Closes #410 The shell-analysis workflow file, the script's own header and the parity row describing that leg each opened by saying two of this gate's legs are shell scripts. That was the tree on 2026-08-22, the day the leg landed, when it held those two legs and the analyser beside them. The tree holds twenty-two tracked shell files now, and `check` reads every one of them through `git ls-files`, so each of the three understated the reach of the check it introduces by an order of magnitude in the first sentence a reader meets. No number replaces the two. A count in a comment here is read by nothing that could say when it went stale, which is how this one survived nineteen arrivals, so each site now hands the reader `git ls-files '*.sh'` and says what it claimed, when that stopped being true and how it was found. The same answer README.md already takes for its own counts. What was wrong: three sites stating a population of two shell legs. How it was found: by reading the first paragraph of the script against the paragraph forty lines below it, which already said the authority for what is analysed is the tracked set. What survives unchanged: the analysed set and the executed set had come apart in the language the checks are written in, the defect class that made this worth a leg is an expansion left unquoted, and the inputs these scripts read carry spaces. No severity, exclusion, rule, register entry, fixture or setting of this leg moves, and every added line is a comment or prose. 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.
The issue this belongs to
Closes #410
What changed
Three sites said two of this gate's legs are shell scripts: the first sentence of
.github/workflows/shell-analysis.yml, the first paragraph of.github/shell-analysis/shell-analysis.sh, and the shellcheck row indocs/gate-parity.md. Two paragraphs further down in the script rested on thesame two - the arrangement "the other two legs use", and "both scripts here read
paths and pull-request bodies". All five sentences now say what the tree holds
instead, which is that most of this gate is written in shell and that the leg
analyses every tracked shell file.
No number replaces the two. Each site hands the reader
git ls-files '*.sh'andsays what it claimed, when that stopped being true and how it was found. That is
the answer
README.mdalready takes for its own counts, in its own words: anumber in a file that nothing reads goes stale a second time.
Every added line is a comment or a table cell. No severity, exclusion, rule,
register entry, fixture or setting of this leg moves.
What failure it prevents
A check understating its own reach in the sentence a reader opens it on. The
first paragraph is where somebody decides whether the shell this gate runs is
covered, and two of twenty-two reads as a leg pointed at a named pair. That sends
a reader looking for a gap that is not there, and it would run the other way the
moment a shell file stopped being tracked, because a reader holding the number
two has no reason to ask what the tracked set is.
This is a correction and the failure has already happened. What was wrong: three
files stating a population of two shell legs. How it was found: by reading the
first paragraph of the script against the paragraph forty lines below it, which
already said the authority for what is analysed is the tracked set.
Evidence
Read at
30578fe69978351a9d6610c66fe7fa6d8117a65c, which is the base of thisbranch. The head being pushed is
636162d.The sentences as they stood.
What the tree holds, and every one of them under one directory.
What the leg is pointed at.
So one header states a population of two and a reach of the whole tracked set,
about the same check, forty lines apart.
It was true for three days.
doc-paths.shreads paths andhygiene.shreads pull-request bodies, which isexactly what the sentence said of them. The fourth arrived three days later, and
no change that added one had a reason to open a comment in another leg.
The claim the script's middle paragraph now makes, checked. It says the
arrangement is every other leg's but one helper that judges nothing:
Nothing is left saying two.
What ran here
The leg this change is about did NOT run on this machine, and this is not a
green tick for it.
shellcheckis not installed here, and the script exits atits first fixture without it:
Its verdict on this branch comes from the run the pull request triggers. The
change touches only comment lines in that script, so nothing it analyses moves,
but that is a reading of the diff rather than a run of the analyser.
What this does not cover
workflow and some by another script. No count replaces the two, so the question
does not have to be answered to land this, and it is not answered here.
docs/gate-parity.md. Two of this board's three waiting labels describe a meaning the vocabulary does not have, and the fourth label is absent #321 and Eight parity rows wait on a register that closed with every entry answered #377 hold whatthose take. The row touched here is a satisfied one and only the clause naming
the count moves.
carrying the count and the paragraph naming what
checkis pointed at. That isa sweep of one claim rather than of the two files.
script comment is read by nothing here -
.github/doc-paths/doc-paths.shprints on every run that a tracked file which is not
.mdis outside what itreads - and how many other sites carry one is a sweep this change does not
make.
above stands in place of one.