Skip to content

Keep the site accurate: sitemap dates and Folio's licence - #25

Merged
jasonodoom merged 3 commits into
mainfrom
sitemap-freshness
Sep 6, 2026
Merged

Keep the site accurate: sitemap dates and Folio's licence#25
jasonodoom merged 3 commits into
mainfrom
sitemap-freshness

Conversation

@jasonodoom

@jasonodoom jasonodoom commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Two ways the site was drifting from the truth.

The sitemap misreported freshness. It claimed all three pages were
last modified on 19 August; two changed on the 20th when the icon links
went in. A sitemap that misreports freshness is worse than one that says
nothing, because crawlers learn to disregard the signal.

npm run build now runs scripts/stamp-sitemap.mjs, which asks git when
each page last changed and stamps dist/sitemap.xml. Verified by
corrupting all three dates to 1999-01-01 and rebuilding:

stamp-sitemap: dated 3 of 3 entries from git
2026-08-20  2026-08-20  2026-08-20

A shallow clone with no git history is not a build failure; existing
dates stand.

llms.txt described Folio's licence. It said "Folio itself is
proprietary", which is true today and stops being true at release, so it
would need remembering at exactly the busiest moment. The point that
sentence was making never depended on the licence:

Checking a receipt requires neither Folio nor any trust in it. The
format is specified in the open and the verifier is Apache-2.0, so a
reader holding the file and a browser already has everything the check
needs.

That is accurate in both states, and it is the stronger claim.

npm test passes (169 tests).

@jasonodoom jasonodoom changed the title Date the sitemap from git rather than by hand Keep the site accurate: sitemap dates and Folio's licence Aug 25, 2026
The dates said 19 August while two of the three pages had changed on
the 20th. A sitemap that misreports freshness is worse than one that
says nothing, because crawlers learn to disregard it.

The build now asks git when each page last changed.
The line said Folio is proprietary, which stops being true at release
and would then need remembering. The point it was making does not
depend on the licence: checking a receipt does not involve Folio at
all, which is the stronger claim and true either way.
It counted entries changed, so a correct rebuild reported "0 of 3",
which read exactly like a pattern that had stopped matching. It now
counts entries dated, and fails the build when a configured page is
missing from the sitemap instead of passing silently.
@jasonodoom

Copy link
Copy Markdown
Contributor Author

Rebased onto main after #24.

Found a defect in the stamper while verifying: it counted entries changed, so a clean rebuild reported dated 0 of 3 even though it was working. That reads identically to the regex having silently stopped matching, which is the exact failure the script exists to prevent.

It now counts entries dated, and exits 1 when a configured page is absent from the sitemap. Verified by drifting a URL (build fails, exit 1) and restoring it (exit 0). Added five tests, including one pinning that / cannot match the /privacy row.

@jasonodoom
jasonodoom merged commit cf1c268 into main Sep 6, 2026
3 checks passed
@jasonodoom
jasonodoom deleted the sitemap-freshness branch September 6, 2026 07:32
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