Class (a): reproducible defect, with the reproduction taken on a pristine tree that carries none of the reporting PR's changes.
Found by the os-dev round on #17931 while running the full derived gate set (112 commands; this was one of 5 non-zero exits, and the only one that was not a PREREQUISITE NOT MET).
The reading
check:cross-package-test-inputs passes on an unbuilt tree and fails on a built one, with no source change in between.
Control, on a detached worktree at the merge base fb6b2c369e, zero branch changes:
| tree state |
verdict |
no packages/spec/dist/ on disk |
exit 0 |
packages/spec/dist/ copied in, nothing else changed |
exit 1 — "packages/cli descends a directory tree from packages/spec/dist/ … rooted in packages/cli/test/init-created-files-summary.e2e.test.ts" |
Why it matters
The walk root is a gitignored build directory. So the gate is silent exactly where it is supposed to speak: on an unbuilt tree it reports nothing, and on a built one it reports a real undeclared cross-package test input. Whether CI sees it therefore depends on whether that job happens to have built packages/spec first — the verdict is a function of build order rather than of the tree.
That is the same blind-spot shape #7802 is about: a gate whose answer changes with the working directory's build state gives a false clean on the state most contributors and most jobs are in.
What a fix has to decide
Either the declared-input glob covers the built tree (so the finding is declared and the gate stays loud), or the walk skips gitignored build output and the gate says so in its own output — ⛔ what it must not do is keep answering differently on the same commit depending on whether a build ran.
Dedupe words: cross-package-test-inputs, init-created-files-summary, packages/spec/dist, declared glob, 7802.
Generated by Claude Code
Class (a): reproducible defect, with the reproduction taken on a pristine tree that carries none of the reporting PR's changes.
Found by the
os-devround on #17931 while running the full derived gate set (112 commands; this was one of 5 non-zero exits, and the only one that was not a PREREQUISITE NOT MET).The reading
check:cross-package-test-inputspasses on an unbuilt tree and fails on a built one, with no source change in between.Control, on a detached worktree at the merge base
fb6b2c369e, zero branch changes:packages/spec/dist/on diskpackages/spec/dist/copied in, nothing else changedpackages/spec/dist/… rooted inpackages/cli/test/init-created-files-summary.e2e.test.ts"Why it matters
The walk root is a gitignored build directory. So the gate is silent exactly where it is supposed to speak: on an unbuilt tree it reports nothing, and on a built one it reports a real undeclared cross-package test input. Whether CI sees it therefore depends on whether that job happens to have built
packages/specfirst — the verdict is a function of build order rather than of the tree.That is the same blind-spot shape #7802 is about: a gate whose answer changes with the working directory's build state gives a false clean on the state most contributors and most jobs are in.
What a fix has to decide
Either the declared-input glob covers the built tree (so the finding is declared and the gate stays loud), or the walk skips gitignored build output and the gate says so in its own output — ⛔ what it must not do is keep answering differently on the same commit depending on whether a build ran.
Dedupe words:
cross-package-test-inputs,init-created-files-summary,packages/spec/dist,declared glob,7802.Generated by Claude Code