Follow-up from #4040 tranche 1, filed per the PM acceptance there (2026-08-11). Unassigned — queued, not started.
Fact
The repo carries ~10 narrow tsconfig.typetests.json projects that each compile ONE guard file (e.g. auth's auth-spec-parity, plugin-chatbot's spec-symbol-batch6). Their own header describes them as the rescue hatch for a package "still in TEST_DEBT" — a way to compile the load-bearing guard while the rest of the package's tests stay unchecked.
As #4040's tranches land full tsconfig.test.json projects, each graduated package's narrow project becomes redundant: the full project compiles the same file (verified for auth and plugin-chatbot in tranche 1 — both were left chained deliberately, since deleting a governance artifact was not that tranche's mandate).
The ask
One PR that, for each package which has left TEST_DEBT: verifies the full test project compiles the guard file the narrow project names, then removes the narrow project and its type-check chain entry. Packages still in TEST_DEBT keep theirs. The check-type-check-coverage.mjs ratchet must stay green throughout, and the PR body lists each removed project with the proof its file is covered by the full project (a tsc --listFiles grep or equivalent).
Do this AFTER the #4040 burn-down has landed most packages, so it's one sweep rather than trickling — but the card exists now so it isn't lost.
Cost of not doing it
Each redundant project is one extra tsc invocation per type-check run and, worse, a second project that must be kept consistent with the full one (the "two spellings of what gets compiled" shape #3009/#4040 exist to remove).
Refs #4040, #3032, objectstack-ai/objectstack#4118.
Follow-up from #4040 tranche 1, filed per the PM acceptance there (2026-08-11). Unassigned — queued, not started.
Fact
The repo carries ~10 narrow
tsconfig.typetests.jsonprojects that each compile ONE guard file (e.g. auth'sauth-spec-parity, plugin-chatbot'sspec-symbol-batch6). Their own header describes them as the rescue hatch for a package "still in TEST_DEBT" — a way to compile the load-bearing guard while the rest of the package's tests stay unchecked.As #4040's tranches land full
tsconfig.test.jsonprojects, each graduated package's narrow project becomes redundant: the full project compiles the same file (verified for auth and plugin-chatbot in tranche 1 — both were left chained deliberately, since deleting a governance artifact was not that tranche's mandate).The ask
One PR that, for each package which has left TEST_DEBT: verifies the full test project compiles the guard file the narrow project names, then removes the narrow project and its
type-checkchain entry. Packages still in TEST_DEBT keep theirs. Thecheck-type-check-coverage.mjsratchet must stay green throughout, and the PR body lists each removed project with the proof its file is covered by the full project (atsc --listFilesgrep or equivalent).Do this AFTER the #4040 burn-down has landed most packages, so it's one sweep rather than trickling — but the card exists now so it isn't lost.
Cost of not doing it
Each redundant project is one extra tsc invocation per
type-checkrun and, worse, a second project that must be kept consistent with the full one (the "two spellings of what gets compiled" shape #3009/#4040 exist to remove).Refs #4040, #3032, objectstack-ai/objectstack#4118.