Repository navigation
conformancefigure: read .toml too — a Hugo site keeps prose in its config - #40
Merged
Merged
Conversation
…nfig
MEASURED 2026-10-30 on go-embedded-ruby.github.io, which states the ruby/spec
total THREE times:
layouts/index.html 23,511 correct
layouts/_default/list.html 23,511 correct
hugo.toml:74 23,481 THIRTY BEHIND, since 2026-10-04
The two that are right are right because this tool reads them. The third sits
in `params.phases[].blurb` -- prose that Hugo renders into the page like any
other -- and neither the `.md`/`.html` filter here nor the lane's
`--root layouts` could reach it. It had been drifting freely for 26 days under
a green check.
So the guard was not wrong. Its POPULATION was, which is the harder failure to
see: "0 disagree" and "0 disagree over the part I can read" print identically.
--root layouts 4 claim(s) checked, 0 disagree ← today, green and blind
--root . 5 claim(s) checked, 1 disagrees ← with this change
hugo.toml:74: claims 23481, the gate records 23511
The file-type test is now a list in one place (hasAnySuffix) rather than a
chain of && that grows a bug each time somebody extends it.
TestATomlFileIsWalked pins the real shape: a `[[params.phases]]` blurb with the
figure inside it, which must exit 1 and name the stale number. 17 subtests, 0
skipped.
The landing's own lane still passes `--root layouts`; widening it is that
repository's change, and the figure it exposes is fixed in the same wave.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
tannevaled
added a commit
to go-embedded-ruby/go-embedded-ruby.github.io
that referenced
this pull request
Oct 30, 2026
The landing imports the landingkit module, so its design cannot drift. It ran
NEITHER of the kit's checks, and the kit ships `workflows/links.yml` precisely
because "a dead link on a landing page breaks nothing that complains".
MEASURED BEFORE WIRING IT, and it earned its place immediately: run by hand on
the built site, `landingkit links` reported 129 distinct URLs and one dead --
FAIL 000 https://github
THE CAUSE, which is more interesting than the symptom. The hero cards show a
trimmed blurb: the first sentence, by design, split with
{{ $first := index (findRE "^[^.]+\\.?" $plain 1) 0 }}
That ends at the first ".", and a URL is full of them. Phase 8's blurb begins
"measured against [ruby/spec](https://github.com/ruby/spec)'s …", so the card
rendered the literal fragment "[ruby/spec](https://github." -- a half Markdown
link whose href resolved to nothing, live on the published page.
The fix reduces [text](url) to its text BEFORE the split. The card shows prose
and never a link, so that is what it wanted anyway; and a sentence can no
longer end inside a URL. After it: 128 distinct URLs, every one resolving.
AND THE FIGURE IN hugo.toml WAS THIRTY BEHIND. The same card read "23,481
examples pass ... (2026-10-04)"; the gate's BASELINE sums to 23,511. The two
copies under layouts/ were correct, because conformancefigure reads them -- it
read only .md and .html, so the third copy, in params.phases[].blurb, drifted
freely for 26 days under a green check. That tool now reads .toml too
(go-embedded-ruby/docs#40), and with it the whole site checks 5 claims instead
of 4, all agreeing.
Verified: actionlint clean; hugo builds; `landingkit links` exit 0 over 128
URLs; `landingkit verify` still PASSES against go-fileshare.github.io,
including 48/48 background pixels in both themes.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
tannevaled
added a commit
to go-embedded-ruby/go-embedded-ruby.github.io
that referenced
this pull request
Oct 31, 2026
…ator (#31) The previous change FIXED the stale figure in hugo.toml. This one makes it GUARDED, which is a different thing: a number corrected by hand is a number that drifts again. This site states the ruby/spec total in three places. `--root layouts` reaches two of them. The third is hugo.toml's `params.phases[].blurb` -- prose Hugo renders into the page like any other -- and it read 23,481 for 26 days under a green check, because neither the tool's .md/.html filter nor this root could reach it. v0.5.0 of the tool reads .toml (go-embedded-ruby/docs#40). Widening the root is the other half: without it the new capability changes nothing here. Measured with the exact published command this lane will run, fetched through the proxy: $ go run github.com/go-embedded-ruby/docs/tools/conformancefigure@v0.5.0 --root . go: downloading github.com/go-embedded-ruby/docs v0.5.0 5 current claim(s) checked against the gate's 23511 Five, not four. actionlint clean. The pin stays a tag, for the reason the comment above it already gives. Co-authored-by: Claude Opus 5 <noreply@anthropic.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.
A Hugo site keeps prose in its configuration, and this guard could not read it.
Measured on the live landing
go-embedded-ruby.github.iostates the ruby/spec total three times:layouts/index.htmllayouts/_default/list.htmlhugo.toml:74The two that are right are right because this tool reads them. The third sits in
params.phases[].blurb— prose Hugo renders into the page like any other — and neither the.md/.htmlfilter here nor the lane's--root layoutscould reach it. It drifted for 26 days under a green check.The guard was not wrong; its population was
That is the harder failure to see:
0 disagreeand0 disagree over the part I can readprint identically. The fifth claim was never in the denominator.The change
.tomljoins.mdand.html.hasAnySuffix(path, ".md", ".html", ".toml")— a list in one place rather than a chain of&&that grows a bug each time somebody extends it.TestATomlFileIsWalkedpins the real shape: a[[params.phases]]blurb with the figure inside, which must exit1and name23481.17 subtests, 0 skipped across the package.
gofmt,go vetclean; the whole module's tests green.What this does not do
It does not widen the landing's lane — that repository still passes
--root layouts, and changing it is its change. Both it and the stale figure move in the same wave, so the fix lands enforced rather than hoping nobody re-breaks it.🤖 Generated with Claude Code