Install any skill in seconds. Free to start, no credit card required.
Get Started Free →toddkasper/nodejs
Building and reviewing Node.js applications and services — the event loop and async patterns, streams and buffers, the module system (ESM/CJS), packaging and the toolchain, error handling and diagnostics, and HTTP services with security.
Passed 24 of 25 test cases with the skill, and 21 of 25 without it.
and 1 more in the full report
3 fixed21 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 3 test cases the skill fixed. Same model, same prompt, with and without the skill.
I am creating a custom byte stream in Node.js 22. What is the default `highWaterMark` value in bytes for this stream if I don't specify one?
| Checked | Without skill | With skill |
|---|---|---|
| States the default is 65536 bytes or 64 KiB | Missed | Passed |
The instructions your model reads when the skill loads.
A strong Node.js engineer reasons about the runtime, not just the library. That means understanding how the event loop schedules work, how to move data through streams without blowing memory, how modules resolve at runtime vs at build time, and how to keep services secure against injection and header-based attacks. The retired OpenJS exams (JSNAD and JSNSD) are used here only as a public competence map — they defined what practitioners must know without being about the exam itself.
Load this skill when… writing or reviewing Node.js services, CLIs, or Lambda handlers; debugging event-loop blocking or stream backpressure issues; auditing HTTP security (injection, Helmet, JWT); reviewing module/packaging configuration (ESM, exports map, npm ci). Not this skill: React UI concerns → see
react; Next.js framework (App Router, Server Actions) → seenextjs; TypeScript type-system questions → seetypescript; React Native/mobile runtime → seereact-native.
Deeper context: Study resources, certification history, and learning paths live in references/study-resources.md. Load that file when planning a study path. Sibling skills:
typescript,react,nextjs,react-native.
Verify steps assume nothing about your tooling — use your project's own scripts and the language toolchain (
tsc,node, the test runner, the package manager), in that order of preference.
Credential context (retired JSNAD/JSNSD) and study path: see references/study-resources.md.
[volatile — verify live] marks apply to: the node:test runner API surface (added Node 18, still gaining features each release); require(esm) support for CJS-loading ESM (available Node 20.17.0+, unflagged in 20.19.0+/22.12.0+, stable in 25.4.0 — behavior varies by version) [volatile — verify live]; stream.pipeline() Promise variant availability (node:stream/promises — verify against the project's Node version); worker_threads API surface (stable Node 12+, but options evolve). Check engines in package.json and the Node.js release schedule before relying on a version-specific API. Current LTS lines (2026-06-10): Node 26 is Current; Node 24 (Krypton) is Active LTS (recommended for production); Node 22 (Jod) is Maintenance LTS (security fixes only); Node 20 reached EOL March 24, 2026; Node 18 reached EOL March 27, 2025. [volatile — verify live]express→fastify or Node LTS upgrades); data migrations; deleting or force-pushing git history; infrastructure changes (Redis, load balancer config, rate-limit store).[volatile — verify live] or [opinion — house style].Specific volatile facts in this skill:
require(esm) in CJS files — [volatile — verify live] — available since Node 20.17.0 (behind --experimental-require-module); unflagged and warning-free in Node 20.19.0+/22.12.0+/23.0.0+; marked fully stable (non-experimental) in Node 25.4.0. Not available in Node 18 or Node 20 < 20.17.0.node:test runner API (e.g., --test, --test-reporter) — [volatile — verify live] — features added each LTS cycle.stream.pipeline() from node:stream/promises — [volatile — verify live] — verify it exists in the project's Node version (Node 15+).[volatile — verify live] — confirm against installed library version.The event loop is the single most misunderstood aspect of Node.js. Every performance problem traces back to either blocking the loop or failing to handle backpressure.
Event loop phases (in order): timers (setTimeout/setInterval) → pending I/O callbacks → idle/prepare → poll (new I/O) → check (setImmediate) → close callbacks. Then repeat.
test cases passed, vs 21 / 25 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.