Filed by the domain:engine execution seat, session_01CqmCgU5RGDoJYhHUMVp2af, R1, surfaced by the #18000 dispatch (PR #18615) while reconciling its gate run. ⛔ No domain:* and no priority:* asserted — both have exactly one producer, the triage seat. ⚠️ The landing site is a workflow plus a check script, so the route may not be this lane's; ⛔ the filing seat did not route it.
The defect
check:cross-package-test-inputs returns two different verdicts on the same commit, decided entirely by whether a dist/ happens to exist in the checkout:
| tree state |
exit |
what it says |
packages/spec/dist present |
1 |
names packages/cli/test/init-created-files-summary.e2e.test.ts's walk into packages/spec/dist/ as a radius no declared glob reaches |
packages/spec/dist absent |
0 |
「29 packages read outside themselves, all declared」 |
.github/workflows/lint.yml's 「Cross-package test inputs」 step runs with no build ahead of it.
⇒ CI always reads the exit-0 leg. The gate is structurally blind to the very radius it exists to catch, in any checkout where a build has run — which is every contributor's, and every agent worktree that builds before testing.
Why this is class (a)
The defect is reproducible and its failure is a false green: the gate reports 「all declared」 about a population it cannot see. ⭐ This is the same species as #18200 (pm:queue, p2, tooling) — 「a local green on driver-sql is blind to 11 of its 188 files … that is what let #17469 round 1 ship four red CI jobs」 — and as #18617, filed this same round. Triage should check whether the three want folding into one 「gates that are blind in the tree state CI runs them in」 card.
⚠️ Provenance and confidence, stated plainly
The two-leg measurement is the reporting dev's, taken on the merged head of PR #18615 with the restore verified (file count 216 = 216, clean git status). ⛔ The filing seat did NOT re-run either leg — it requires building packages/spec, which this shared checkout must not do.
⇒ The two-leg reading is recorded here as the dev's measurement, ⛔ not as this seat's. Re-establish it before acting. What the filing seat can say independently is that the reading is internally coherent and that its cause — a lint workflow step with no build ahead of it — is checkable from the workflow file alone in one read.
⛔ The verdict on whether that packages/spec/dist/ walk should be a declared radius, or whether the e2e test should stop walking there, belongs to the seat that owns that gate. This card reports the blindness, ⛔ not the fix.
Dedupe words
cross-package-test-inputs · packages/spec/dist · init-created-files-summary · walk radius · #7802
Re-check
git grep -n "Cross-package test inputs" origin/main -- .github/workflows/lint.yml
# then, in a worktree only — NEVER the shared checkout:
# node scripts/check-cross-package-test-inputs.mjs # with packages/spec/dist absent
# pnpm --filter @objectstack/spec build && node scripts/check-cross-package-test-inputs.mjs
Generated by Claude Code
Filed by the⚠️ The landing site is a workflow plus a check script, so the route may not be this lane's; ⛔ the filing seat did not route it.
domain:engineexecution seat,session_01CqmCgU5RGDoJYhHUMVp2af, R1, surfaced by the #18000 dispatch (PR #18615) while reconciling its gate run. ⛔ Nodomain:*and nopriority:*asserted — both have exactly one producer, the triage seat.The defect
check:cross-package-test-inputsreturns two different verdicts on the same commit, decided entirely by whether adist/happens to exist in the checkout:packages/spec/distpresentpackages/cli/test/init-created-files-summary.e2e.test.ts's walk intopackages/spec/dist/as a radius no declared glob reachespackages/spec/distabsent.github/workflows/lint.yml's 「Cross-package test inputs」 step runs with no build ahead of it.⇒ CI always reads the exit-0 leg. The gate is structurally blind to the very radius it exists to catch, in any checkout where a build has run — which is every contributor's, and every agent worktree that builds before testing.
Why this is class (a)
The defect is reproducible and its failure is a false green: the gate reports 「all declared」 about a population it cannot see. ⭐ This is the same species as #18200 (
pm:queue, p2,tooling) — 「a local green on driver-sql is blind to 11 of its 188 files … that is what let #17469 round 1 ship four red CI jobs」 — and as #18617, filed this same round. Triage should check whether the three want folding into one 「gates that are blind in the tree state CI runs them in」 card.The two-leg measurement is the reporting dev's, taken on the merged head of PR #18615 with the restore verified (file count 216 = 216, clean
git status). ⛔ The filing seat did NOT re-run either leg — it requires buildingpackages/spec, which this shared checkout must not do.⇒ The two-leg reading is recorded here as the dev's measurement, ⛔ not as this seat's. Re-establish it before acting. What the filing seat can say independently is that the reading is internally coherent and that its cause — a lint workflow step with no build ahead of it — is checkable from the workflow file alone in one read.
⛔ The verdict on whether that
packages/spec/dist/walk should be a declared radius, or whether the e2e test should stop walking there, belongs to the seat that owns that gate. This card reports the blindness, ⛔ not the fix.Dedupe words
cross-package-test-inputs·packages/spec/dist·init-created-files-summary·walk radius·#7802Re-check
Generated by Claude Code