Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/ericrisco/rsc-harness/nodejsnpx skills add ericrisco/rsc-harness --skill nodejsgit clone --depth 1 https://github.com/ericrisco/rsc-harnessWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ericrisco/rsc-harness/nodejs)<a href="https://agentmods.dev/skills/ericrisco/rsc-harness/nodejs"><img src="https://agentmods.dev/badge/skills/ericrisco/rsc-harness/nodejs.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00077 | $0.03149 |
| Opus 5 | $0.00039 | $0.01574 |
| Sonnet 5 | $0.00015 | $0.00630 |
| Haiku 4.5 | $0.00008 | $0.00315 |
Grade A, and why
nodejs scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 230 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Node.js backend services
Stand up a plain Node.js HTTP/JSON service — node:http or Express 5 — that a person can read, test, and operate without a DI framework. This skill is about the runtime and the request lifecycle: how to lay out the code, how to keep async correct, how errors become status codes, how config fails fast, and how the process dies cleanly. The contract shape, the type system, and the data layer live elsewhere (see the boundary below).
Boundary
- The app is built around
@Module/@Injectable/ DI providers, guards, interceptors, pipes, exception filters →nestjs. Nest starts the moment the DI container appears; route away then, do not half-build it here. - Pure TypeScript type system, generics,
tsconfig→typescript. This skill uses TS but does not teach types. - REST resource modeling, versioning, pagination, status-code semantics (framework-agnostic) →
api-design. This skill wires the handlers; api-design decides the contract. Cross-cutting error taxonomy →error-handling. - Schema, queries, connection pool, migrations →
postgresdb/prisma-orm/drizzle-orm. Calling a repository stays here; designing the table does not. - Containerizing / shipping →
docker/deployment. Choosing the logging/metrics/tracing stack →observability. This skill emits structured logs and a shutdown hook; it does not own the pipeline.
Decide first
Pick the runtime shape before writing code — the wrong choice is expensive to undo.
| Situation | Choice | Why |
|---|---|---|
| Needs DI/modules, large team, heavy cross-cutting | route to nestjs |
Don't reinvent a DI container by hand |
| Small/medium JSON API, want middleware + routing | Express 5 | Mature, async errors auto-forward (v5) |
| One tiny endpoint, zero deps, a healthcheck | node:http |
No dependency surface to maintain |
| A library, not a server | not this skill | No request lifecycle to manage |
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 230 lines · 77 tokens per session scan A bd54a6bffa23
nodejs is a skill published in the GitHub repository ericrisco/rsc-harness (64 stars, last pushed 2d ago), licensed MIT. It adds 77 tokens to every session and 3,149 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
nodejs-expert
Expert-level Node.js backend development with Express, async patterns, streams, performance optimization, and production best practices. Use when the user mentions JavaScript, backend, Express, or async, or when the task involves Modern Node.js Features, Express Framework, File System Operations, or HTTP Requests.
express
Operational skill for Express.js: routers, middleware order, error handlers, async wrappers, validation, and production app structure.
moai-workflow-worktree
Git worktree management for parallel SPEC development with isolated workspaces, automatic branch registration, and seamless MoAI-ADK integration. Use when setting up parallel development environments.
hns-workflow-ci-loop
Unified CI watch + auto-fix loop skill. Polls gh pr checks after /moai sync PR creation, classifies required vs auxiliary failures, attempts safe automated patches (max 3 iterations), and escalates semantic failures to the user. Use for CI loop workflow — NOT for general loop iteration patterns (see…
moai-kanban-foreman
One unattended kanban foreman iteration: watch the backlog queue, dispatch the next operator-picked card to an isolated worker, collect completion evidence on read (not on claims), and report. This is the body the project's loop.md driver invokes each iteration of a bare /loop; it can also be invoked directly to test…
moai-workflow-thinking
Sequential Thinking MCP for structured step-by-step analysis via --deepthink flag. Separate from UltraThink which is Claude's native extended reasoning mode. Use for multi-step analysis or architecture decisions.