Skip to content

conformancefigure: read .toml too — a Hugo site keeps prose in its config - #40

Merged
tannevaled merged 1 commit into
mainfrom
conformancefigure-toml
Oct 30, 2026
Merged

tannevaled merged 1 commit into
mainfrom
conformancefigure-toml

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

A Hugo site keeps prose in its configuration, and this guard could not read it.

Measured on the live landing

go-embedded-ruby.github.io states the ruby/spec total three times:

where figure
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 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 drifted for 26 days under a green check.

The guard was not wrong; its population was

--root layouts   4 claim(s) checked against the gate's 23511          ← today
--root .         5 claim(s) checked against the gate's 23511
                 hugo.toml:74: claims 23481, the gate records 23511   ← with this change

That is the harder failure to see: 0 disagree and 0 disagree over the part I can read print identically. The fifth claim was never in the denominator.

The change

  • .toml joins .md and .html.
  • The file-type test becomes hasAnySuffix(path, ".md", ".html", ".toml") — a list in one place 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, which must exit 1 and name 23481.

17 subtests, 0 skipped across the package. gofmt, go vet clean; 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

…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
tannevaled merged commit bcd9e26 into main Oct 30, 2026
2 checks passed
@tannevaled
tannevaled deleted the conformancefigure-toml branch October 30, 2026 13:54
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>
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