agentsclimarketplace

Ts config

Skill fusengine/agents/plugins/typescript-expert/skills/ts-config

Redefining development through cognitive automation and collaborative agent systems.

Install
npx -y skills add fusengine/agents --skill ts-config

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when: creating or migrating a tsconfig.json, choosing module/moduleResolution, or fixing TS 6.0 deprecation errors. Covers the two official 2026 config tracks (Bun/bundler vs pure Node.js) and the TS 6.0 → 7.0 deprecation cleanup. Do NOT use for: TypeScript language syntax and idioms (use ts-language-patterns), framework configs shipping their own tsconfig base (Next.js/Astro/Vite plugin skills), or non-TS build tooling.

SKILL.md

4.6 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

TypeScript Config (TS 6.0)

Agent Workflow (MANDATORY)

Before writing any tsconfig, use TeamCreate to spawn 3 agents:

  1. fuse-ai-pilot:explore-codebase - Detect runtime (Bun/Node/bundler), existing tsconfig, package.json type
  2. fuse-ai-pilot:research-expert - Confirm current flags on typescriptlang.org release notes + runtime docs
  3. mcp__context7__query-docs - /microsoft/typescript for any flag whose behavior is unclear

After writing, run fuse-ai-pilot:sniper for validation.


Overview

There are exactly two supported config trajectories in 2026. Pick by runtime, never mix.

TrackRuntimemodulemoduleResolution
BundlerBun, Vite, esbuild, webpackPreservebundler
NodePure Node.js (native type stripping)nodenextnodenext

Critical Rules

  1. Never moduleResolution: node / node10 - deprecated in 6.0, removed in 7.0. Use bundler or nodenext.
  2. Always verbatimModuleSyntax: true - both tracks. Forces explicit import type, matches Node's type stripping.
  3. strict + noUncheckedIndexedAccess - strict is the 6.0 default; add noUncheckedIndexedAccess explicitly.
  4. Set types explicitly - 6.0 defaults types to []. Add ["node"], ["bun"], etc. or you lose globals.
  5. Set rootDir when sources are nested - 6.0 defaults rootDir to the tsconfig dir, no longer inferred.

Decision: which track?

Runs on Bun, or bundled by Vite/esbuild/webpack/Parcel?
  → Bundler track  → references/bundler-track.md

Runs directly on `node file.ts` (type stripping), or emits .js for Node?
  → Node track     → references/node-track.md

Migrating an existing 5.x config / seeing deprecation errors?
  → references/deprecations-6.md  (do this first, then pick a track)

Reference Guide

Concepts

TopicReferenceWhen to Consult
Bundler trackbundler-track.mdLoad when configuring a Bun or bundler (Vite/esbuild/webpack) project
Node tracknode-track.mdLoad when configuring a pure Node.js project with native type stripping
6.0 deprecationsdeprecations-6.mdLoad when migrating from TS 5.x or fixing deprecation errors

Templates

TemplateWhen to Use
tsconfig.bundler.mdComplete Bun/bundler tsconfig
tsconfig.node.mdComplete pure-Node tsconfig

Quick Reference

Bundler / Bun

{
  "compilerOptions": {
    "module": "Preserve",
    "moduleResolution": "bundler",
    "verbatimModuleSyntax": true,
    "allowImportingTsExtensions": true,
    "noEmit": true,
    "strict": true,
    "noUncheckedIndexedAccess": true
  }
}

Pure Node.js (native type stripping)

{
  "compilerOptions": {
    "module": "nodenext",
    "rewriteRelativeImportExtensions": true,
    "erasableSyntaxOnly": true,
    "verbatimModuleSyntax": true,
    "noEmit": true, // only if you never emit .js
    "strict": true
  }
}

Best Practices

DO

  • Add "ignoreDeprecations": "6.0" temporarily while migrating, then remove it before adopting TS 7.0
  • Use subpath imports "#/*": "./src/*" in package.json imports (supported under nodenext and bundler)
  • Fold any baseUrl prefix into each paths entry (baseUrl is deprecated)

DON'T

  • Mix module: Preserve with moduleResolution: nodenext (or vice-versa)
  • Set esModuleInterop, allowSyntheticDefaultImports, or alwaysStrict to false (no longer allowed)
  • Use enum, namespace with runtime code, or parameter properties in files run by Node's type stripping

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.