Skip to content

chore: enable Nimbus internal-link validation in CI#32263

Draft
mvvmm wants to merge 4 commits into
productionfrom
feat/nimbus-link-validation
Draft

chore: enable Nimbus internal-link validation in CI#32263
mvvmm wants to merge 4 commits into
productionfrom
feat/nimbus-link-validation

Conversation

@mvvmm

@mvvmm mvvmm commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Wires up nimbus/internal-link — currently "error" in config but never actually enforced, since it's an authoring-tier rule that only runs via nimbus-docs lint, which nothing in CI called.

  • Adds an ignore list, translated from the pre-Nimbus starlight-links-validator exclude config (git history, before chore: Starlight → Nimbus migration cleanup #32203) into picomatch glob syntax — needs cloudflare/nimbus#34, which adds real glob support (the old hand-rolled matcher couldn't express **/llms.txt-style leading wildcards the old exclude list depended on).
  • Adds a CI step (pnpm run lint:nimbus) in the build job, right after Build — needs .nimbus/routes.json, only materialized by a full astro build.
  • Fixes real broken links the rule surfaced once wired up:
    • /changelog/access/#2025-06-30 → wrong shape; real route is /changelog/post/2025-07-01-browser-based-rdp-open-beta/
    • /changelog/cloudflare-one-client/ (×4 files) → missing /product/ segment; real route is /changelog/product/cloudflare-one-client/
    • Stale references to retired workers-ai models (removed from the model catalog, pages now 404) — dropped the dead entries, swapped one for its current equivalent (llama-guard-3-8b)

Temporary: @cloudflare/nimbus-docs is pinned to the pkg.pr.new preview build for cloudflare/nimbus#34 (https://pkg.pr.new/@cloudflare/nimbus-docs@34), not a real release. Needs to be swapped to a published version once that PR merges and ships — do not merge this as-is until then.

Documentation checklist

- Add ignore list to nimbus/internal-link, translated from the
  pre-Nimbus starlight-links-validator exclude config (glob syntax
  now works via cloudflare/nimbus#34 — picomatch-backed ignore
  matching).
- Add a Nimbus link validation step in the build CI job, after the
  Build step (needs .nimbus/routes.json, only materialized by a
  full astro build).
- Add a lint:nimbus script.
- Fix real broken links surfaced by the rule: changelog cross-refs
  to /changelog/access/ and /changelog/cloudflare-one-client/ (wrong
  path shape — missing /product/ segment), and stale references to
  retired workers-ai models.
- Temporarily pin @cloudflare/nimbus-docs to the pkg.pr.new preview
  build for cloudflare/nimbus#34 pending a real release.
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

This pull request requires reviews from CODEOWNERS as it changes files that match the following patterns:

Pattern Owners
/.github/ @cloudflare/content-engineering, @kodster28, @mvvmm, @colbywhite, @ahaywood, @MohamedH1998
*.ts @cloudflare/content-engineering, @kodster28
package.json @cloudflare/content-engineering
* @cloudflare/product-owners
/src/content/changelog/ @cloudflare/pm-changelogs, @cloudflare/product-owners
/src/content/changelog/cloudflare-one-client/ @ranbel, @cf-rhett, @csujedihy, @lpraneis, @jiulingz, @tojens-ietf, @cloudflare/pm-changelogs, @cloudflare/cf1-reviewers, @elithrar, @cloudflare/product-owners
/src/content/docs/cloudflare-one/team-and-resources/devices/ @ranbel, @cf-rhett, @csujedihy, @lpraneis, @jiulingz, @tojens-ietf, @cloudflare/cf1-reviewers, @elithrar, @cloudflare/product-owners
/src/content/docs/learning-paths/ @cloudflare/product-owners
/src/content/docs/reference-architecture/ @securitypedant, @cloudflare/product-owners, @ncrouch-cflare
/src/content/docs/workers-ai/ @rita3ko, @craigsdennis, @mchenco, @zeke, @superhighfives, @mattrothenberg, @ethulia, @aninibread, @kflansburg, @cloudflare/product-owners

mvvmm added 3 commits July 22, 2026 19:40
- Remove prev/next: true from 7 pages (learning-paths series,
  workers-ai tutorials) — Nimbus's prev/next schema is
  string | {link,label} | false, no true (Starlight-era value with
  no Nimbus equivalent; omitting the field gives the same default
  sidebar-based pagination true was meant to convey).
- Turn off nimbus/frontmatter-shape for the compatibility-flags
  collection via a collections override — it's not a docs page (uses
  name, not title), so the docs frontmatter schema doesn't apply.
- Revert the internal-link ignore list back to an exact copy of the
  old starlight-links-validator exclude list, no additions.
Walk public/ at config-load time and feed every file's exact
root-relative path into internal-link's ignore list, instead of
hand-maintained per-product /product/static/** globs. Exact paths
can't mask a real broken link, and new files under public/ are
covered automatically with no config edit.

Also excludes RSS/index.xml endpoints (not real Astro page routes).
@github-actions

Copy link
Copy Markdown
Contributor

Preview URL: https://74c641e8.preview.developers.cloudflare.com
Preview Branch URL: https://feat-nimbus-link-validation.preview.developers.cloudflare.com

Files with changes (up to 15)

Original Link Updated Link
https://developers.cloudflare.com/workers-ai/platform/limits/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/workers-ai/platform/limits/
https://developers.cloudflare.com/changelog/post/2025-09-22-browser-based-rdp-ga/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/changelog/post/2025-09-22-browser-based-rdp-ga/
https://developers.cloudflare.com/changelog/post/2024-06-16-cloudflare-one/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/changelog/post/2024-06-16-cloudflare-one/
https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/download/lts-releases/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/download/lts-releases/
https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/download/support-lifecycle/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/download/support-lifecycle/
https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/download/update/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/download/update/
https://developers.cloudflare.com/learning-paths/sase-overview-course/series/connect-secure-from-any-network-to-anywhere-4/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/learning-paths/sase-overview-course/series/connect-secure-from-any-network-to-anywhere-4/
https://developers.cloudflare.com/learning-paths/sase-overview-course/series/secure-remote-access-to-critical-infrastructure-3/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/learning-paths/sase-overview-course/series/secure-remote-access-to-critical-infrastructure-3/
https://developers.cloudflare.com/learning-paths/sase-overview-course/series/stop-hosting-own-vpn-service-2/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/learning-paths/sase-overview-course/series/stop-hosting-own-vpn-service-2/
https://developers.cloudflare.com/reference-architecture/diagrams/ai/ai-asset-creation/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/reference-architecture/diagrams/ai/ai-asset-creation/
https://developers.cloudflare.com/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels/
https://developers.cloudflare.com/learning-paths/sase-overview-course/series/protect-users-from-internet-risks-5/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/learning-paths/sase-overview-course/series/protect-users-from-internet-risks-5/
https://developers.cloudflare.com/workers-ai/features/json-mode/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/workers-ai/features/json-mode/
https://developers.cloudflare.com/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux/
https://developers.cloudflare.com/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog/ https://feat-nimbus-link-validation.preview.developers.cloudflare.com/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.