lang-typescriptlisted
Install: claude install-skill StielChancellor/VibeGod-Tech-Team
# TypeScript / Node — idiomatic & safe
The language lens for TS/JS work. Backs the build agents at Stage 6. Honors
`_shared/vibegod-principles.md` (simplicity, surgical, no `any`, no silent error-swallowing,
consistency, cost-awareness). Defer security depth to `secure-coding` and test discipline to
`test-driven-development` — do not repeat them here.
## Fits in the pipeline
Stage 6 (Build): write code to this standard. Stage 7 (per-feature QA): the
code-quality-reviewer + security-engineer lenses check it against this skill. Priority:
**user > skills > default.**
## Style & layout
- `src/` for code, `tests/` or co-located `*.test.ts`. ESM (`"type": "module"`) for new packages.
- Prefer `type` aliases for unions/shapes; `interface` for extensible public contracts. Name
types `PascalCase`, values `camelCase`, consts `UPPER_SNAKE` only for true constants.
- Functions over classes unless you need instances/state. Pure, small, single-purpose.
- Export explicitly; no barrel files that hide cycles. Co-locate by feature, not by layer.
## Toolchain (canonical)
- **Type-check:** `tsc --noEmit`. Strict tsconfig is mandatory: `strict: true`
(implies `noImplicitAny` + `strictNullChecks`), plus `noUncheckedIndexedAccess`,
`exactOptionalPropertyTypes`, `noImplicitOverride`.
- **Lint/format:** ESLint (`@typescript-eslint`, `no-explicit-any`, `no-floating-promises`) +
Prettier. CI runs `eslint . && prettier --check .`.
- **Test:** Vitest (preferred) or Jest. Coverage via `vitest