T-5YZA-determined-adopts-the-bar
State: open/ready · Impact: medium · Complexity: medium
Seven configs under solutions/determined re-implement the shared bar by hand
and land slightly under it — uniformly missing noUncheckedIndexedAccess,
noUnusedLocals, noImplicitOverride and noFallthroughCasesInSwitch. Five of
the seven are byte-identical to each other, so this is one shape copied five
times plus two variants, and it sits one extends line from the bar its sibling
vault-contracts already meets.
| Location | Role today |
|---|---|
solutions/determined/apps/calendar-sync/tsconfig.json | The canonical copy: strict, noEmit, verbatimModuleSyntax, isolatedModules, esModuleInterop, skipLibCheck — missing the four strictness options the bar adds |
solutions/determined/apps/mail-sync/tsconfig.json | Byte-identical to it |
solutions/determined/apps/todo-sync/tsconfig.json | Byte-identical |
solutions/determined/apps/vault-engine/tsconfig.json | Byte-identical |
solutions/determined/packages/obsidian-astro/tsconfig.json | Byte-identical |
solutions/determined/apps/vault-triage/tsconfig.json | Same options, different key order, include adds eval/**/*.ts |
solutions/determined/packages/photo-annotator/tsconfig.json | Drops lib and esModuleInterop; types: ["node","bun"] |
solutions/determined/packages/vault-contracts/tsconfig.json | Already on @sksizer/tsconfig/bun-lib — the shape the other seven should take |
Proposed
Section titled “Proposed”All seven extend node-lib or bun-lib and keep only their own include and
any genuinely different types. Five collapse to two lines each.
Approach
Section titled “Approach”- Measure per config before editing; the bar adds four strictness options and the error count is unknown until it is run.
- Take the five identical ones as one batch — they should produce one shape and one class of fix.
- Then
vault-triage(which keeps itseval/include) andphoto-annotator(which is on bun types). - Fix errors rather than opting out. Where a package genuinely cannot meet an option yet, it declares that one option locally with a comment naming why, rather than staying off the bar entirely.
- Note that
determinedcarries its own moon projects; confirm each affected project’scheckstill resolves and passes.
| Area | Note |
|---|---|
solutions/determined/apps/ | five app configs extend the matching preset |
solutions/determined/apps/vault-triage/tsconfig.json | extend the preset, keep the eval/ include |
solutions/determined/packages/obsidian-astro/tsconfig.json | extend the matching preset |
solutions/determined/packages/photo-annotator/tsconfig.json | extend bun-lib |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: All seven extend a
@sksizer/tsconfig/*preset. - AC-2: The five that were byte-identical are byte-identical again, and short.
- AC-3: Every affected project’s check passes.
- AC-4: Any option kept locally to stay under the bar carries a comment naming the reason.
Out of scope
Section titled “Out of scope”- The eight framework-owned configs under
solutions/determined(Nuxt and Astro), which cannot take the bar. solutions/determined’s own vault markdown and its separate formatting regime.
Dependencies
Section titled “Dependencies”- none
Discovery context
Section titled “Discovery context”Deferred from #1644 with the rest of the laxer configs.