Skip to content

ratchet: name the unloaded spec files on every run, not only on a regression - #719

Merged
tannevaled merged 1 commit into
mainfrom
wave50-ratchet-names
Sep 27, 2026
Merged

tannevaled merged 1 commit into
mainfrom
wave50-ratchet-names

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

What changes

run.sh names the spec files that failed to load on every run. Before, the
count was printed always and the names only inside the regression branch.

passing examples: 23386   (files loaded: 2202, failed to load: 4)
frozen floor:     23260
-- files that failed to load (4) --
   …

Exercised in both directions before pushing: with FILES_FAIL=0 the block prints
nothing, with FILES_FAIL=3 it names all three, and the two outputs differ — a
block that printed the same either way would not be reporting.

Why it matters more than its size

A file that fails to load carries tens of examples. Ten consecutive runs of this
workflow on main:

head passing files loaded
960c8ff 23386 2202
990c7e4 23342 2202
be2598d 23299 2201
87e418b 23265 2201
…
eab6af7 23215 2198

And on #716's branch a documentation-only commit moved the total by +43, with
files loaded flipping 2201 → 2202.

So the largest source of movement in this number was visible and
unattributable
: you could see the total step and not learn which file caused it.
A regressed spec and an unloaded file need opposite responses — one is a defect, the
other is usually an environment or a timeout — and the count alone cannot tell them
apart.

This is the change that would have prevented a wrong decision of mine, recorded in
#710: I raised FLOOR with a 6-example margin believing the variation was the
±1 of core/random/bytes_spec.rb. The dominant term is ~43. The count was in front
of me on every run; the cause was not.

🤖 Generated with Claude Code

…ession

A spec file that fails to load carries tens of examples, so its coming and going
is the largest single term in the total -- larger than every per-example flake
combined. Measured on ten consecutive runs of this workflow on main, `files
loaded` moves between 2198 and 2202, and on one branch a documentation-only
commit moved the total by 43 because a single file flipped from loading to not.

Printing only the count makes that step visible and unattributable, which is the
worst of both: a reader sees the number move and cannot tell whether a spec
regressed or a file merely did not load. Those need opposite responses. So the
names now print whenever any file failed to load, and the regression branch
points at them rather than repeating the list.

This is the change that would have saved a wrong decision: I set the floor with a
6-example margin on the belief that the variation was the +/-1 of
core/random/bytes_spec.rb, when the dominant term is a whole file. The count was
in front of me on every run and the cause was not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit 7145749 into main Sep 27, 2026
9 checks passed
@tannevaled
tannevaled deleted the wave50-ratchet-names branch September 27, 2026 16:25
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