Found while auditing btravstack/start (2026-08-13).
Measured across start's 11 example workspaces: ~262 lines of config files are byte-identical copies —
src/vitest.d.ts (import type {} from "@unthrown/vitest";): 11 identical copiesvitest.config.ts (the 9-line node/include/setupFiles/coverage block): 9 identical copiestsconfig.test-d.json (6 lines): 9 identical copiestsconfig.json: one 9-line "library" variant × 6, one 13-line "app" variant × 4- the same 3-script block (
test / test:types / typecheck) in 9 of 11 package.json files
This repo already ships @btravstack/tsconfig; the same move covers the rest. Every btravstack monorepo with more than a couple of workspaces pays this copy tax, and drift between copies is silent (start's two divergent vitest.config.ts are legitimate, but nothing distinguishes a deliberate divergence from a stale copy).
Acceptance
- A shared vitest preset (
defineConfig-mergeable or an extendable base) covering environment, include, setupFiles: ["@unthrown/vitest"] and the coverage defaults, so a workspace's vitest.config.ts states only its deltas. - A published
tsconfig.test-d.json base, and the library/app tsconfig variants if they are not already expressible from @btravstack/tsconfig. - start's examples adopt them and delete the copies.
Found while auditing
btravstack/start(2026-08-13).Measured across start's 11 example workspaces: ~262 lines of config files are byte-identical copies —
src/vitest.d.ts(import type {} from "@unthrown/vitest";): 11 identical copiesvitest.config.ts(the 9-line node/include/setupFiles/coverage block): 9 identical copiestsconfig.test-d.json(6 lines): 9 identical copiestsconfig.json: one 9-line "library" variant × 6, one 13-line "app" variant × 4test/test:types/typecheck) in 9 of 11package.jsonfilesThis repo already ships
@btravstack/tsconfig; the same move covers the rest. Every btravstack monorepo with more than a couple of workspaces pays this copy tax, and drift between copies is silent (start's two divergentvitest.config.tsare legitimate, but nothing distinguishes a deliberate divergence from a stale copy).Acceptance
defineConfig-mergeable or an extendable base) covering environment, include,setupFiles: ["@unthrown/vitest"]and the coverage defaults, so a workspace'svitest.config.tsstates only its deltas.tsconfig.test-d.jsonbase, and the library/app tsconfig variants if they are not already expressible from@btravstack/tsconfig.