From d6bf5f79ab5df3180ddc16e891d2bf33bdf9aad7 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 6 Sep 2026 02:09:11 +0000 Subject: [PATCH] docs(ci-cd-pipeline): state the link-sweep populations instead of copying their counts (objectui#7886) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `Link Checking (check-links.yml)` section published the same two hand-copied document counts that objectui#7825 had just removed from that workflow's own header, in the present tense, on a page the site serves to readers. Both had drifted, and nothing went red over the whole distance because no gate anywhere reads either figure. Applies the remedy this repository has now landed three times (objectui#7448 twice, objectui#7825 once), and that this very page already applies to its own workflow count: state the population and point at the reading, instead of copying a count. The paragraph now names which trees, which extensions and the `apps/site/source.config.ts` declaration the content tree comes from, and points at two live readings — a `find` in any checkout, and Lychee's own run summary. The historical half is split out and marked past tense; it carries no live numeral. No ci command is added or removed, so the objectui#3653-pinned job table does not move. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01KbJQ1y1J12nZxYzFWhP8Q3 --- content/docs/guide/ci-cd-pipeline.md | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/content/docs/guide/ci-cd-pipeline.md b/content/docs/guide/ci-cd-pipeline.md index 2528ddfb7..128fff5cc 100644 --- a/content/docs/guide/ci-cd-pipeline.md +++ b/content/docs/guide/ci-cd-pipeline.md @@ -1301,13 +1301,27 @@ There are **two** link checkers, and they cover different things (objectui#3213) | `scripts/check-doc-links.mjs` | **Internal** links in `content/docs/` (relative hrefs, `/docs/...` routes, every other site-absolute href against `apps/site`), and, as paths on disk: `examples/`, the internal `docs/` tree, every package and app `README.md`, the rest of each package's and app's directory tree (everything but `README.md`/`CHANGELOG.md`), every nested `README.md`, and the root-level markdown files (`README.md`, `CONTRIBUTING.md`, `ROADMAP.md`, `AGENTS.md`, `CHANGELOG.md`, `CLAUDE.md`, `LICENSE-THIRD-PARTY.md`, `QUICK_REFERENCE.md`) — plus this repo's own `blob/main/` and `tree/main/` GitHub URLs and this site's own `objectui.org` URLs everywhere — **except** anything inside a code fence | No | `docs-links.yml` — every push and PR, no path filter (previous section) | | Lychee (this workflow) | **External** URLs, plus **relative** in-repo file links, in `content/docs/`, `docs/` and `README.md` | Yes | Weekly cron and manual dispatch | -Lychee sweeps **both** documentation trees: `content/docs/` (the 183 pages the site publishes) and -the repo-root `docs/` (15 files of internal material — ADRs, audits, architecture notes) plus -`README.md`. Until objectui#3449 it scanned only the latter, so no published page had ever been -link-checked; the workflow was green about a tree almost nobody reads. -`scripts/__tests__/check-links-workflow.test.ts` now derives the expected scope from -`apps/site/source.config.ts`, so moving the content tree turns that test red instead of quietly -blinding the sweep again. +Lychee sweeps **both** documentation trees plus `README.md`: the **published** tree +`content/docs/**` — every `.md` and `.mdx` under the fumadocs content source +`apps/site/source.config.ts` declares (`dir: '../../content/docs'`, baseUrl `/docs`) — and the +repo-root `docs/**` of **internal** material (ADRs, audits, architecture notes). What gets swept is +decided by that workflow's `args` glob list and by nothing else, and +`scripts/__tests__/check-links-workflow.test.ts` derives the expected scope from the site config +rather than restating it, so moving the content tree turns that test red instead of quietly +blinding the sweep. + +⛔ **Neither tree's size belongs on this page.** One hand-copied count per tree stood in the +sentence above, and both had drifted by the time anyone read them, with nothing red over the whole +distance — no gate anywhere reads either figure, which is exactly why a number written here rots +(objectui#7448, objectui#7825, objectui#7886). State the population, as above, and point at the +reading: in any checkout, +`find content/docs docs -type f \( -name '*.md' -o -name '*.mdx' \) | wc -l`, and Lychee's own run +summary, which reports what it actually scanned. This page opens by declining to count workflows, +for the same reason. + +**Past tense on purpose — none of the following describes the scope today.** Until objectui#3449 +the `args` list named only the repo-root tree, so not one published page had ever been +link-checked: the workflow was green because of what it was not looking at. It is deliberately **not** a PR gate (objectui#3213). External link checking goes over the network, and one 502 or rate-limit from a third-party site would redden a pull request whose author can do