Skip to content
Back to skills

Dl Nodejs Dev

ASecurity

Implement, debug, test, or optimize Node.js CLIs, libraries, background workers, and HTTP services. Use for server-side JavaScript/TypeScript, async I/O, package tooling, Express/Fastify, and Node performance work. Preserve the project's language, module system, runtime target, and framework.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 23, 2026
developmentjavascripttypescriptjavashellnodenodejsexpresstestingapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add alexishida/dalhe-cli --skill dl-nodejs-dev --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dl Nodejs Dev?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Dl Nodejs Dev
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alexishida-dl-nodejs-dev/badge)](https://www.skillsdirectory.com/skills/alexishida-dl-nodejs-dev)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: dl-nodejs-dev
description: Implement, debug, test, or optimize Node.js CLIs, libraries, background workers, and HTTP services. Use for server-side JavaScript/TypeScript, async I/O, package tooling, Express/Fastify, and Node performance work. Preserve the project's language, module system, runtime target, and framework.
---

# Node.js development

## Start from the running contract

Read `package.json`, the lockfile, runtime pins, entry points, test scripts, and nearby project instructions. Determine whether the changed module is a CLI, library, server, or worker. Run the smallest relevant existing check before changing behavior when practical.

For bugs, reproduce the input/state that fails. For features, identify success, expected failure, and the caller's observable contract. For performance, record a representative baseline before optimizing. Do not migrate JavaScript to TypeScript, CommonJS to ESM, or frameworks as an incidental improvement.

## Boundaries that matter

- Keep parsing/transport separate from reusable logic when this makes testing or reuse easier. A small script need not acquire controllers, repositories, or a dependency-injection container.
- A library must not bind ports, install process-wide handlers, read mandatory environment variables, or call `process.exit` merely because it is imported. Put those operations in the executable entry point.
- Select APIs supported by the minimum Node version in `engines` and CI. Native TypeScript execution and `.env` loading are separate features; do not assume that support for one implies the other.
- Validate external data at its boundary, including fetched JSON, paths, subprocess output, and configuration. TypeScript types do not validate runtime input.

## Async work and resources

Every started task needs an owner that awaits, cancels, or observes completion. Use bounded concurrency for collections; keep dependent writes sequential. `Promise.all` rejects early without cancelling siblings. Await all in-flight writes before deleting their temporary directory or reporting completion.

Apply a deadline to connection and body consumption, not only receipt of HTTP headers. Propagate abort signals to work that supports them, release timers/listeners in `finally`, and distinguish timeouts from invalid responses. Retry only transient, idempotent operations with a bounded policy.

Use streams and backpressure for large data. Bound captured subprocess output and in-memory queues. Put CPU-heavy work off the event loop when profiling proves it is needed. See [async and errors](references/async-and-errors.md).

## CLI and filesystem behavior

- Keep machine-readable data on stdout and diagnostics on stderr. Return a nonzero status on failure; let buffered output finish using `process.exitCode` where practical.
- Validate arguments before side effects. Invoke child processes with an argument array and no shell by default; account for Windows command shims explicitly.
- Resolve paths against the intended root. For containment checks use relative-path segments, not a string prefix; account for symlinks when the boundary is security-sensitive.
- Use exclusive creation when overwrites are forbidden. For replacing configuration or downloaded content, stage and validate first, then publish using the filesystem's supported rename behavior. Define what happens if installation fails midway.
- Test the packed artifact in a temporary installation, including `bin`, exports, relative assets, file modes, and execution outside the repository. Passing source tests does not prove packaging works.

## HTTP and persistent state

Read [API and validation](references/api-and-validation.md) for framework-specific handling. Trace authentication, object-level authorization, tenant scope, validation, persistence, and serialization as separate decisions. Do not return raw internal exception messages.

Treat retries, transactions, and concurrency as behavior: enforce uniqueness in the database, make retried external effects idempotent, bound pagination and uploads, and close clients on shutdown. Match the project's public error envelope and status codes.

## Verification and delivery

Use [testing](references/testing.md) for regression scenarios and isolated fixtures. A test should fail on the original defect, not merely assert a helper was called. Validate the documented minimum runtime as well as the development runtime when syntax or platform APIs changed.

For optimizations, compare equivalent outputs with fixed inputs, warmup, and repeated measurements; report the workload and median/tail or memory metric. Do not generalize a local microbenchmark to network or production performance.

Report the changed behavior, checks run, and untested platforms or external dependencies.

## References

- [Project structure](references/project-structure.md): choose boundaries for a new module or service; the HTTP layout is illustrative, not mandatory.
- [Async and errors](references/async-and-errors.md): cancellation, error propagation, shutdown, and bounded concurrency.
- [API and validation](references/api-and-validation.md): HTTP validation and response contracts.
- [Testing](references/testing.md): filesystem, subprocess, async, and integration regressions.
- [Tooling](references/tooling.md): module/runtime compatibility, TypeScript, scripts, and packaging.

Files in this skill

  • SKILL.md5.3 KB
  • references/api-and-validation.md3 KB
  • references/async-and-errors.md5.2 KB
  • references/project-structure.md4.1 KB
  • references/testing.md4.2 KB
  • references/tooling.md3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in development →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.