@@ -4684,6 +4684,39 @@ jobs:
46844684 - name : Build workspace packages
46854685 run : pnpm exec turbo run build --filter='./packages/*' --filter='./examples/*^...'
46864686
4687+ # CLI transcripts in content/docs are bound to the registries they quote
4688+ # (#15373). `content/docs` teaches with pasted CLI output, and some of those
4689+ # lines quote a number the CLI derives from a live registry at runtime —
4690+ # `Running author-time rules (42)...` is `authoringRulesFor(<command>).length`.
4691+ # The page wrote it as a literal; nothing derived it and nothing compared it,
4692+ # so it drifted on every rule added. Four published pages carried 41 against a
4693+ # registry holding 42, and what surfaced it was a customer-simulation upgrade
4694+ # run noticing the CLI printed something else. PR #15369 fixed the four
4695+ # numbers; this is the mechanism.
4696+ #
4697+ # ⚠ ORDER / PLACEMENT — this step is HERE, and not with the other docs gates
4698+ # in the `Lint & Repo Gates` job, for a measured reason. It derives the number
4699+ # the way the CLI does, by importing the BUILT @objectstack/lint, so it needs
4700+ # a dist/:
4701+ #
4702+ # · `Lint & Repo Gates` runs `pnpm install` and NEVER builds. Placed there
4703+ # the gate would exit 3 (PREREQUISITE NOT MET) on every CI run forever —
4704+ # a gate that never measures, which is the shape #4642 named.
4705+ # · ci.yml's `Build Core` builds, and hosts `check:dual-build-cjs-loads` for
4706+ # exactly this reason, but it is gated on the `core` paths filter, which
4707+ # does not include `content/**` — so it would skip the docs-only PRs that
4708+ # ADD a stale transcript, the direction this gate exists for.
4709+ # · This lane has NO paths filter, sits behind the required `TypeScript Type
4710+ # Check` context, and the step above already built packages/lint.
4711+ #
4712+ # So it must stay AFTER `Build workspace packages`. It adds no build and no CI
4713+ # minutes; the scan is ~405 pages plus one dynamic import, ~0.4s. The gate's
4714+ # own header is the authority on the declaration syntax (fence meta, measured
4715+ # against the real fumadocs/MDX pipeline) and on why this is a COMPARE rather
4716+ # than a stamp. Runs its own --self-test first, through the alias.
4717+ - name : CLI transcripts in content/docs match the registry they quote
4718+ run : pnpm check:docs-transcript-drift
4719+
46874720 # The per-package `typecheck` scripts the coverage gate above requires
46884721 # (#4311). tsc resolves workspace imports through each dependency's built
46894722 # dist/*.d.ts, so the task carries `dependsOn: ^build` in turbo.json —
0 commit comments