Filed unassigned as an out-of-scope finding while working #5802 (docs-only prose change in content/docs/guide/console.md).
What happens
scripts/check-doc-snippet-types.mjs refuses to judge when the packages it resolves against are unbuilt, and prints:
The snippet program was NOT run: the packages it resolves against are not built, or are typed from source.
with a per-package hint run the build first. It also offers --build-filter, which emits the pnpm filter list to build:
--filter=@object-ui/app-shell --filter=@object-ui/cli --filter=@object-ui/components ... --filter=@object-ui/types
Feeding that list straight back into pnpm buildfails, because the list names only the packages the docs resolve against, not their dependency closure:
packages/react build: src/index.ts(50,8): error TS2307: Cannot find module '@object-ui/i18n' or its corresponding type declarations.
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL @object-ui/react@17.6.0 build: `tsc`
@object-ui/i18n is a workspace package that @object-ui/react depends on, but no doc snippet imports it, so it never enters the --build-filter output.
Workaround
Append pnpm's dependency-closure suffix to each filter — --filter=@object-ui/app-shell... etc. — after which the build succeeds and the gate returns a real verdict.
Why it is worth fixing
The gate is careful to distinguish "not run" (a precondition) from "failed" (a verdict), which is exactly right. But the remedy it hands you does not work as printed, so the natural next step after reading the message lands on a red build that looks like a defect in the changed branch rather than an incomplete filter list. Emitting the ... suffix (or otherwise expanding to the dependency closure) would close the loop.
Observation-class: no user-visible behaviour is wrong, and the gate's verdicts are correct once the closure is built.
Generated by Claude Code
Filed unassigned as an out-of-scope finding while working #5802 (docs-only prose change in
content/docs/guide/console.md).What happens
scripts/check-doc-snippet-types.mjsrefuses to judge when the packages it resolves against are unbuilt, and prints:with a per-package hint
run the build first. It also offers--build-filter, which emits the pnpm filter list to build:Feeding that list straight back into
pnpm buildfails, because the list names only the packages the docs resolve against, not their dependency closure:@object-ui/i18nis a workspace package that@object-ui/reactdepends on, but no doc snippet imports it, so it never enters the--build-filteroutput.Workaround
Append pnpm's dependency-closure suffix to each filter —
--filter=@object-ui/app-shell...etc. — after which the build succeeds and the gate returns a real verdict.Why it is worth fixing
The gate is careful to distinguish "not run" (a precondition) from "failed" (a verdict), which is exactly right. But the remedy it hands you does not work as printed, so the natural next step after reading the message lands on a red build that looks like a defect in the changed branch rather than an incomplete filter list. Emitting the
...suffix (or otherwise expanding to the dependency closure) would close the loop.Observation-class: no user-visible behaviour is wrong, and the gate's verdicts are correct once the closure is built.
Generated by Claude Code