Skip to content

Pin the reading of the gate's script count to the commit it was taken at - #426

Merged
iderex merged 1 commit into
mainfrom
the-commit-this-count-was-read-at-425
Sep 17, 2026
Merged

iderex merged 1 commit into
mainfrom
the-commit-this-count-was-read-at-425

Conversation

@iderex

@iderex iderex commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

The issue this belongs to

Closes #425

What changed

One paragraph in CONTRIBUTING.md. The command deriving how many shell scripts
the gate runs keeps its place and loses the number under it, because what it is
for is the set the tree holds when somebody runs it. The seventeen it used to
carry moves to a second command naming the commit that reading was taken at,
where it reproduces, and a correction paragraph says what was wrong.

What failure it prevents

It has already happened. The paragraph handed a reader a command against
origin/main and pasted 17 under it, while naming the commit seventeen came
from only in the prose two sentences below. The reference moves, so the two
agreed on the day of the reading and on no day after it:

git show origin/main:CONTRIBUTING.md | sed -n '566,568p'
    git ls-tree -r --name-only origin/main -- .github | grep '\.sh$' | wc -l
    17
    git ls-files -- '.github/**/*.sh'
git ls-tree -r --name-only origin/main -- .github | grep '\.sh$' | wc -l
22

A reader running the line as written got a number the paste under it contradicted
by five, with nothing on either line saying which of the two was theirs. This is
the file that tells a contributor every asserted fact carries the command that
produced it, and the paste in it had stopped being produced by the command above
it.

What was wrong: an output taken at a fixed commit standing under a command that
asks a moving reference. How it was found: by running the command as it was
written and comparing the answer with the paste.

Evidence

The base this is measured against:

git rev-parse origin/main
4e95353399ef7eec5aad2c782d8a861ac39de66a

Seventeen is what the count answers at the commit the prose named, and the pinned
command in the change reproduces it as written:

git ls-tree -r --name-only 74066f7b9ac3972b779ed1ef60e1d48a6dd74965 -- .github \
  | grep '\.sh$' | wc -l
17

Five scripts landed between that commit and this base, which is why the number
moved:

diff <(git ls-tree -r --name-only 74066f7b -- .github | grep '\.sh$') \
     <(git ls-tree -r --name-only origin/main -- .github | grep '\.sh$')
0a1
> .github/branch-health/branch-health.sh
2a4,5
> .github/cross-toolchain/cross-toolchain.sh
> .github/decision-records/decision-records.sh
5a9
> .github/fixture-scrub/fixture-scrub.sh
13a18
> .github/statements/statements.sh

No output is pasted under the unpinned command any more, and the only number left
in the paragraph is under a command naming the commit it came from:

git show HEAD:CONTRIBUTING.md | sed -n '564,580p'
the set goes the same way. Neither line below has a number under it, because the
answer is whatever the tree holds when you run it:

    git ls-tree -r --name-only origin/main -- .github | grep '\.sh$' | wc -l
    git ls-files -- '.github/**/*.sh'

THE OUTPUT PASTED HERE SAID TWELVE AND THE TREE CARRIED SEVENTEEN, which is this
paragraph's own subject arriving in this paragraph. It records a list that went
four short and hands the reader a command instead, and the output beside that
command then went five short. The reading that recorded seventeen was taken at
`74066f7b9ac3972b779ed1ef60e1d48a6dd74965`, and it is pinned to that commit here
rather than left standing under a command that asks the mainline:

    git ls-tree -r --name-only 74066f7b9ac3972b779ed1ef60e1d48a6dd74965 -- .github \
      | grep '\.sh$' | wc -l
    17

The change reaches one file and it is one commit:

git rev-parse HEAD
979b2b3ad6c0a68004c0c5eb317c486e0550e31c
git diff --name-only origin/main...HEAD
CONTRIBUTING.md
git rev-list --count origin/main..HEAD
1
git diff --shortstat origin/main...HEAD
 1 file changed, 20 insertions(+), 6 deletions(-)

Both gate commands at this head, reported by exit code because the build's own
last line names a profile and this body is judged by a gate that reads the word
in it:

cargo build --locked --all-targets >/dev/null 2>&1 ; echo "build exit=$?"
build exit=0
cargo test --locked >/dev/null 2>&1 ; echo "test exit=$?"
test exit=0

The document check that reads this file, run whole:

bash .github/doc-paths/doc-paths.sh check
Every path these documents name resolves against the tracked set.

The means is unchanged and no artefact is built here: this edits Markdown prose
and two indented command blocks in a document that already exists, so there is no
language, format, tool or runtime to choose.

What this does not cover

  • The four records Four records anchor their measurements to a sha under git rev-parse origin/main, and 0269 deletes the anchor rather than a stale reading #366 holds. They anchor measurements with git rev-parse origin/main inside docs/decisions/, where 0269 decides what happens to a
    paste that stopped reproducing and where the repair is the rule question that
    issue carries. CONTRIBUTING.md is not a landed record, so nothing here turns
    on that answer and no record is touched.
  • Every other reading in CONTRIBUTING.md. Only the one paste whose command
    named a moving reference is read and repaired. No other paragraph in the file
    was re-run.
  • CODE_OF_CONDUCT.md. It met this shape and pinned its own command on
    2026-09-16. It is the pattern followed here and is not touched.
  • A check that would refuse the next one. Nothing in this tree compares a
    pasted output against the command above it, and this adds no rule. The same
    shape can land tomorrow in any document here and no run will say so.
  • Whether the five scripts that landed should have opened this paragraph.
    They are named above as the reason the number moved and none of them is judged.
  • No guard is added or edited. The template's section for one is deleted
    rather than filled in, because nothing here refuses anything new.
  • Nothing was skipped for needing elevation, a platform nothing built for, or a
    real server.
    Every command above ran whole on this machine.

Who has read it

Nobody other than the author has read this change. The evidence above stands in
place of a second reading, and it is weaker than one: every command in it was run
by the same party that wrote the change.

The paragraph deriving how many shell scripts the gate runs handed a reader a
command against `origin/main` and pasted `17` under it, while naming the commit
that seventeen came from only in the prose two sentences later. The reference
moves, so the two agreed on the day of the reading and on no day after it: the
same command answers twenty-two at `4e95353399ef7eec5aad2c782d8a861ac39de66a`.

The unpinned command keeps its place and loses its output, because what it is for
is the set the tree holds when somebody runs it. The seventeen moves under a
command naming `74066f7b9ac3972b779ed1ef60e1d48a6dd74965`, which reproduces it,
so the number and the reference it belongs to are on the same lines rather than a
paragraph apart.

What failure it prevents: a reader running the line as written and getting a
number the paste under it contradicts, with nothing on either line saying which of
the two is theirs. This is the file that tells a contributor every asserted fact
carries the command that produced it, and the paste in it had stopped being
produced by the command above it.

What was wrong: an output taken at a fixed commit standing under a command that
asks a moving reference. How it was found: by running the command as it was
written and comparing the answer with the paste. The distance is five, which is
the distance this paragraph already records twice - the list that went four short
and was replaced by a command, and the output beside that command which then went
five short. This is the third instance and the first one where the reference
rather than the number is what changes.

The number is pinned rather than refreshed. A fresh reading under a moving
reference is the same defect one merge later, which is why the sentence calling
seventeen a reading rather than a fact about the tree tomorrow is kept rather than
replaced: it was right, and the command beside it was what did not carry it.

`cargo build --locked --all-targets` and `cargo test --locked` are green at this
commit. No code changes.

Closes #425

Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
@iderex
iderex merged commit 53cd699 into main Sep 17, 2026
28 checks passed
@iderex
iderex deleted the the-commit-this-count-was-read-at-425 branch September 17, 2026 21:41
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.

CONTRIBUTING.md asks a moving reference for the count of the gate's shell scripts and pastes a reading taken at a fixed one

1 participant