Finding
Two related pre-existing typescript findings:
- typescript-5:
scripts/ and tests/ are never type-checked — tsconfig.json:18's include is src/** only, so type errors in scripts/ and tests/ are invisible to any typecheck gate.
- typescript-6:
NAME_KINDS/DIR_KINDS in tests/mds-variants.test.ts:195,198 are subset-typed (not exhaustively checked against the full Kind union).
Why deferred together
typescript-6's fix (satisfies Record<Kind,true>) only bites once a typecheck gate actually covers tests/** — i.e. once typescript-5 is fixed. Landing typescript-6 alone would add a stricter type annotation that no CI step verifies. They must land together.
Why deferred (not fixed in PR #334)
Pre-existing before this PR. Adding a check-only tsconfig plus a typecheck gate that covers scripts/** and tests/** is likely to surface an unknown backlog of existing type errors across tests/**, which is out of scope for a plumbing-only phase PR (#334, Tracker Phase 1).
Suggested fix
- Add a check-only
tsconfig.json (or a second include scope) covering scripts/** and tests/**, wired into a typecheck script/gate in package.json.
- Fix whatever backlog of type errors that gate surfaces in
tests/**/scripts/**.
- Once the gate is green, change
NAME_KINDS/DIR_KINDS in tests/mds-variants.test.ts:195,198 to satisfies Record<Kind,true> so a future Kind addition is caught at typecheck time instead of silently falling out of sync.
References
Finding
Two related pre-existing typescript findings:
scripts/andtests/are never type-checked —tsconfig.json:18'sincludeissrc/**only, so type errors inscripts/andtests/are invisible to any typecheck gate.NAME_KINDS/DIR_KINDSintests/mds-variants.test.ts:195,198are subset-typed (not exhaustively checked against the fullKindunion).Why deferred together
typescript-6's fix (
satisfies Record<Kind,true>) only bites once a typecheck gate actually coverstests/**— i.e. once typescript-5 is fixed. Landing typescript-6 alone would add a stricter type annotation that no CI step verifies. They must land together.Why deferred (not fixed in PR #334)
Pre-existing before this PR. Adding a check-only tsconfig plus a
typecheckgate that coversscripts/**andtests/**is likely to surface an unknown backlog of existing type errors acrosstests/**, which is out of scope for a plumbing-only phase PR (#334, Tracker Phase 1).Suggested fix
tsconfig.json(or a secondincludescope) coveringscripts/**andtests/**, wired into atypecheckscript/gate inpackage.json.tests/**/scripts/**.NAME_KINDS/DIR_KINDSintests/mds-variants.test.ts:195,198tosatisfies Record<Kind,true>so a futureKindaddition is caught at typecheck time instead of silently falling out of sync.References
.devflow/docs/reviews/feat-323-tracker-phase-1-mds-plumbing-provably-by/2026-09-09_2237tsconfig.json:18,package.json,tests/mds-variants.test.ts:195,198