Measured while implementing #12373, on c246e4fcf6, session session_01UjM2ia8Av1v5NqfqQEQmC6. Filed unassigned; recording an observation, not claiming it. Nothing is red today and showcase-smoke.yml is green and correct as written.
What was measured
#12373 repoints turbo.json's inert test:e2e entry onto test:smoke, the Playwright script examples/app-showcase actually declares. After that change the entry resolves:
$ pnpm exec turbo run test:smoke --dry=json
test:smoke tasks WITH a real command: 1 -> @objectstack/example-showcase#test:smoke
command : playwright test --config=playwright.config.ts
deps : ['@objectstack/example-showcase#build']
inputs : 108 files
But the only CI job that runs this suite never goes through turbo. .github/workflows/showcase-smoke.yml:
- run: pnpm turbo run build --filter=@objectstack/example-showcase^......
- name: Run showcase smokeworking-directory: examples/app-showcaserun: pnpm test:smoke
working-directory + pnpm test:smoke resolves the package's script directly. Turbo is used in that job only for the separate build step, and the test:smoke task definition in turbo.json is never consulted.
So the repaired entry has exactly one consumer today: pnpm test:smoke at the repo root, which is a developer path, not a CI path.
Why it is recorded rather than fixed
Nothing is broken. The workflow hand-rolls what the turbo entry declares — it builds the dependency closure explicitly, and the smoke's own playwright.config.ts owns the rest. The observation is that the two now state the same requirement in two places, and only one of them is exercised: a drift between them reports nothing, in the direction that reads as safety.
It is also a declaration-with-no-consumer, which is the class #12373 was filed against one level up.
Possible shapes (not a decision, and not measured)
- Route the CI step through turbo (
pnpm turbo run test:smoke) and drop the explicit build step, so dependsOn: ["build"] is what orders it. ⚠️ Needs checking against the Playwright browser-install step, which is working-directory-scoped, and against the job's artifact paths. - Leave CI as-is and treat the turbo entry as the local-developer path only — in which case say so where a reader meets it, since a config nothing in CI reads is the thing this repo keeps re-finding.
- Do nothing; the duplication is two lines wide and both sides are currently correct.
⛔ Whoever grades this should weigh option 1 against the job's deliberate pnpm/action-setup ordering and its working-directory steps, both of which carry their own receipts in that file's comments.
Refs: #12373 (measured while implementing it) · .github/workflows/showcase-smoke.yml · turbo.json
Generated by Claude Code
Measured while implementing #12373, on
c246e4fcf6, sessionsession_01UjM2ia8Av1v5NqfqQEQmC6. Filed unassigned; recording an observation, not claiming it. Nothing is red today andshowcase-smoke.ymlis green and correct as written.What was measured
#12373 repoints turbo.json's inert
test:e2eentry ontotest:smoke, the Playwright scriptexamples/app-showcaseactually declares. After that change the entry resolves:But the only CI job that runs this suite never goes through turbo.
.github/workflows/showcase-smoke.yml:working-directory+pnpm test:smokeresolves the package's script directly. Turbo is used in that job only for the separate build step, and thetest:smoketask definition inturbo.jsonis never consulted.So the repaired entry has exactly one consumer today:
pnpm test:smokeat the repo root, which is a developer path, not a CI path.Why it is recorded rather than fixed
Nothing is broken. The workflow hand-rolls what the turbo entry declares — it builds the dependency closure explicitly, and the smoke's own
playwright.config.tsowns the rest. The observation is that the two now state the same requirement in two places, and only one of them is exercised: a drift between them reports nothing, in the direction that reads as safety.It is also a declaration-with-no-consumer, which is the class #12373 was filed against one level up.
Possible shapes (not a decision, and not measured)
pnpm turbo run test:smoke) and drop the explicit build step, sodependsOn: ["build"]is what orders it.working-directory-scoped, and against the job's artifact paths.⛔ Whoever grades this should weigh option 1 against the job's deliberate
pnpm/action-setupordering and itsworking-directorysteps, both of which carry their own receipts in that file's comments.Refs: #12373 (measured while implementing it) ·
.github/workflows/showcase-smoke.yml·turbo.jsonGenerated by Claude Code