American English sweep, and the deploy bug it uncovered

Private deliverable. Enter the hub password to continue.

That's not right. Try again.

← Back to the hub

American English sweep, and the deploy bug it uncovered

Twenty repos, about 570 spellings, and a deploy pipeline that had been lying about where it published.

Prepared 2026-08-02

American English sweep, 2026-08-02

American English has been a standing rule for every site since 2026-07-31. This session swept all of them, fixed what was wrong, and found a deploy bug on the way that had nothing to do with spelling.

Scope was reader-facing copy only, Annette's call. Code comments, stylesheets, identifiers and internal engineering docs were left alone.

Where each site stands

Site Result Deploy
annettethompson.com Clean GitHub Actions
curecaninedisease.com Clean, validator GREEN GitHub Actions
seobeliever.com Clean GitHub Actions
newtoboulder.com Clean SiteShipper
outdoorboulder.com Clean, after the branch fix SiteShipper
boulderthingstodo.com Clean SiteShipper
tasteboulder.com Clean SiteShipper
testosteroneinwomen.com Clean SiteShipper
buildamensgroup.com Clean wrangler, no git integration
verityagentic.com Clean verified live
househelperhub.com Clean verified live
vitalency.com Clean verified live
nottoooldforai.com Clean verified live
recipememoir.com Clean see the correction below
medspasboulder.com Fixed, not published no known publish path
trainerbooked.com Fixed, not published no known publish path
bobmanthy.com Fixed, not published no known publish path
proteinfirstrecipes.com Fixed, not published no known publish path
smartstrongalive.com Fixed, not published no known publish path

About 570 spellings across 20 repos, roughly 50 commits, all pushed. Typical fixes: licence to license, colour to color, towards to toward, centre to center, labelled to labeled, judgement to judgment, oestrogen to estrogen, yoghurt to yogurt, programme to program, grey to gray.

The deploy bug

SiteShipper was publishing to preview and reporting success.

Cloudflare Pages decides production versus preview purely by branch name. A deployment whose branch is not the project's production branch lands in preview, and the custom domain never sees it.

SiteShipper defaulted to main. The outdoorboulder project's production branch is master. So every deploy of that site went to preview, while the run printed a green Production: https://outdoorboulder.com.

The site had been serving a stale build through repeated successful deploys. It surfaced only because a copy fix would not go live:

main.outdoorboulder.pages.dev  -> british=0  american=2   (correct)
outdoorboulder.com             -> british=2  american=0   (stale)

Fixed in SiteShipper/scripts/ship.py, which now reads the production branch off the project at Cloudflare and warns loudly on a mismatch. All eight SiteShipper projects were audited; outdoorboulder was the only one affected.

This is worth caring about beyond spelling. It would have silently broken any content change on that site, and the failure mode is the dangerous kind: the tool reports success, the deploy really did succeed, and only the destination is wrong.

Two other deploy gaps found

  1. buildamensgroup has no git integration. It is a Cloudflare Pages project, but pushing to GitHub deploys nothing. That is the entire reason the site sat 64 findings stale. It needs an explicit wrangler deploy, or a siteshipper.yml of its own.

  2. Five sites have no known publish path. medspasboulder.com, trainerbooked.com, bobmanthy.com, proteinfirstrecipes.com and smartstrongalive.com all answer from Cloudflare but are not Pages projects in the known account, and the API token lacks Workers read permission, so the hosting could not be identified. Their fixes are safe in git. Unblocking needs either Workers:Read added to the token, or confirmation that these live in a second Cloudflare account.

What was deliberately left in British spelling

This is the part worth keeping. A future scan will flag all of it again, and it is correct as it stands.

  1. Direct quotations and cited titles. The competitor copy inside tw-quote blocks on the hub is verbatim scraped text from other clinics. Cited paper titles keep their published spelling, including the UK BASIL "randomised controlled trial" and "behavioural activation" on buildamensgroup.
  2. Proper nouns. National Research Centre Cairo, New You Cosmetic Centre, Saint Anne Adoption Centre, Ministry of Labour, and the journal Pet Behaviour Science.
  3. Non-English pages. The French site under site/fr/ and the Spanish pages. "programme", "utiliser" and "eglise" are correct French, not British English.
  4. Third-party data. MedSpasBoulder's data/*.json holds scraped customer reviews. Rewriting a review falsifies a quote.
  5. Identifiers. CSS class names like fc-tile-grey and icon-grey, and object keys like "licence": "CC BY-SA 4.0". Renaming one breaks the code or the styling that reads it.
  6. A preserved archive. The Precious In His Sight adoption site under public/archive/ is a historical record.
  7. A parser that needs both spellings. RecipeMemoir's ingredient parser deliberately matches liters? and litres?, so recipes imported either way still parse. Collapsing it quietly breaks British recipe imports.
  8. Words that only look British. "analyses" is the correct American plural of "analysis", as in "multiple meta-analyses". It appears on six pages and is not a defect.

A correction

An earlier note in this session said 33 live recipe pages carried em-dashes in violation of the zero-tolerance rule. They are not live. recipememoir.com is the product marketing site, served from a different directory, and a recipe URL returns 404 there. The 1,742 recipe pages sit in the repo but are not published on that domain. The 46 em-dashes were removed and the fixes are correct, but the urgency was overstated.

Lessons for the next sweep

The scan is only as good as its exclusions, and two mistakes cost real time:

  • Skipping src/data/. In Astro that is page copy, not third-party data. A real British spelling rendered on newtoboulder.com from src/data/wildfire-insurance.ts.
  • Masking Astro frontmatter as code. Its data arrays render straight onto the page, so a spelling there is fully reader-facing.

Both hid genuine problems behind green runs. The general lesson: verify a fix by reading the live page, never by trusting the tool's own success output. That applies to the deploy bug too.

Where the detail lives

Every repo touched has its own SESSION-HANDOFF.md with the repo-specific notes, committed and pushed. The deploy engine's own writeup is in SiteShipper/SESSION-HANDOFF.md.

Published to Annette's hub. Rebuilt from the source markdown, so edit the source and rerun rather than editing this page.