Skip to content

check-doc-snippet-types --build-filter omits the dependency closure, so the build it prescribes fails #5911

Description

@claude

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

Metadata

Metadata

Assignees

Labels

domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repopm:queue

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions