Node + TypeScript stack pack
The canary stack pack. The most mature, most tested, and the one the entire adapter contract was validated against. If you're TypeScript on Node 20+, this is your default.
Audience #
Pick Node + TypeScript if:
- Your project is a TypeScript codebase (libraries, CLI tools, Node services, Bun/Deno-compatible packages).
- Your validation pipeline is some combination of ESLint,
tsc, Vitest / Jest / Node test runner. - You're starting a greenfield Node project or scaffolding into an existing one.
If you're shipping a React app or Next.js project, pick this plus the React stack pack — they compose.
Auto-detection triggers #
aidokit init detects this pack automatically when it sees:
- A
package.jsonwith"typescript"as a dev dependency - A
tsconfig.jsonat the project root - Any
.tsor.tsxsource files undersrc/(medium-confidence signal)
To force it explicitly:
aidokit init --stack node-ts
What you get #
| Component | Provided |
|---|---|
| Suggested skills | typescript-conventions, esm-imports, vitest-patterns, package-json-discipline, error-envelope-conventions |
| Suggested MCPs | Context7 (docs lookup), Beads MCP (task graph), Playwright (when tests live under e2e/) |
| Validation commands | npm run lint, npm run typecheck, npm test (auto-detected from package.json#scripts) |
| Architecture hint (Strict) | Controller → Service → Repository layering, Zod for validation, AidoError envelope for errors |
| Watchdog awareness | Scope check respects tsconfig paths; deletion guard treats .d.ts files as first-class |
Composition #
Stacks this pack composes with cleanly:
- React — front-end on Node-TS back-end.
aidokit init --stack node-ts,reactis the common pattern. - Python — full-stack TypeScript front + Python back is supported; each pack adds its own skills and MCPs without conflict.
Stacks it does not compose with:
- Node-JS — mutually exclusive (a project is either TS or JS, not
both for
aidokit's purposes). Use Node-JS if you're explicitly staying off TypeScript.
Honest limitations #
- Monorepo support is shallow. The pack assumes one
tsconfig.jsonat the root. pnpm / Turborepo monorepos work, but the validation hints don't yet understand per-package scripts. - Bun and Deno are not first-class. They mostly work — Bun's
package.jsonis detected — but the validation commands assumenpm/pnpmscripts. - Strict architecture hint is opinionated. The Controller→Service→
Repository layering reflects the kit's reference architecture. Override
it in your project's
docs/03-architecture-summary.mdif your service uses a different shape.