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/ndisisnd/cook/nodejsnpx skills add ndisisnd/cook --skill nodejsgit clone --depth 1 https://github.com/ndisisnd/cookWhat 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 | $0.00065 | $0.01816 |
| Opus 5 | $0.00032 | $0.00908 |
| Sonnet 5 | $0.00013 | $0.00363 |
| Haiku 4.5 | $0.00006 | $0.00182 |
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 yesterday.
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 — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Node.js Standards
Default load: this file only. Pull refs/runtime-safety.md, refs/async-errors.md, refs/tooling.md, or refs/testing.md only when the task explicitly needs that depth.
Node.js owns runtime failure modes only: event-loop behaviour, promise rejection lifecycle in the process, streams/backpressure, worker threads, process signals, Buffer memory safety, dependency install mechanics, and boot-time environment loading. TypeScript rules stay in standards/typescript/; API contracts, security policy, auth, performance strategy, architecture, CI shape, and database persistence stay in their global or database refs and should be linked rather than copied.
Priority: P0 — Runtime Safety
- Every promise is awaited, returned, or has an explicit rejection handler; no floating promises. Node exits on unhandled rejections by default on maintained modern releases, and unobserved rejections still make failures nondeterministic.
voidis allowed only for a documented fire-and-forget call that attaches.catch()or routes through a helper that centralizes rejection logging. Signal: a call returning a Promise on a statement line with noawait,return,.catch, or approved fire-and-forget helper. - Global
unhandledRejection/uncaughtExceptionhandlers are last-resort logging plus graceful exit, never primary control flow, and never resume normal operation afteruncaughtException. Catch errors where they occur. Signal: business logic such as retry, fallback, or response handling inside aprocess.on('uncaughtException')handler, or a handler that logs and keeps serving indefinitely. - Throws across callback, timer, and event boundaries are caught locally and converted to rejections or error events. Normal throws inside an
asyncfunction become promise rejections; throws in later callbacks (setTimeout,EventEmitter, stream callbacks) escape the original.catch(). Signal: athrowinside a baresetTimeout,emitter.on, or stream callback with no try/catch or error propagation. - Handle
SIGTERMandSIGINTfor graceful shutdown: fail readiness or stop accepting connections, drain in-flight work up to a fixed deadline, close DB/Redis/pool resources, then exit before the orchestrator kills the process. Signal: a long-lived server with no signal handler, no shutdown timeout, orprocess.exit()called inside a request handler. - Never block the event loop on the request path. No synchronous CPU work such as large
JSON.parse,crypto.pbkdf2Sync, compression, image transforms, and no sync fs such asreadFileSyncorexistsSyncin a hot handler; offload CPU work toworker_threadsor a queue, and use async APIs for I/O. Signal: a*Synccall or tight CPU loop inside a request handler. - Respect stream backpressure. Prefer
stream.pipeline()orstream/promises.pipeline()for multi-stream flows so errors and cleanup propagate;.pipe()is acceptable only when error and cleanup paths are handled. Honourwrite()returningfalseand wait for'drain'. Signal:a.pipe(b)with no error handling, or.write()in a loop ignoring the return value. - Use
Buffer.allocfor buffers that may be read before full overwrite; useBuffer.allocUnsafeonly when every byte is overwritten before any read, response, log, persistence, crypto/compression input, or serialization. Unsafe buffers can leak prior heap contents. Signal:Buffer.allocUnsafeorallocUnsafeSlowflowing to an external sink without a complete overwrite first.
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.
- yesterday First seen · 90 lines · 65 tokens per session scan A 517690100fca
nodejs is a skill published in the GitHub repository ndisisnd/cook (2 stars, last pushed 21d ago), licensed MIT. It adds 65 tokens to every session and 1,816 once invoked, about $0.0003 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-08-31.
Other skills, from other repositories
moai-domain-frontend
Frontend development specialist covering React 19, Next.js 16, Vue 3.5, and modern UI/UX patterns with component architecture. Use when building web UIs, implementing components, optimizing frontend performance, or integrating state management.
va-preview
Start a live preview so the user can see your work in their browser or phone. Use after starting a dev server or creating HTML files. Only available when the VibeAround MCP server is connected.
va-md-preview
Preview a markdown file with beautiful GitHub-style rendering. Use after creating or updating markdown documents like README, docs, or reports. Only available when the VibeAround MCP server is connected.
moai-domain-html-report
Markdown-to-single-file-HTML report renderer. Six modes (status, incident, plan, explainer, financial, pr) selected by report type, crossed with three audience tiers (expert, basic, learn) derived from the active output style. The basic and learn tiers enrich the HTML with mermaid flowcharts, worked examples, and…
browserstack
Run tests on BrowserStack. Use when user mentions "browserstack", "cross-browser", "cloud testing", "browser matrix", "test on safari", "test on firefox", or "browser compatibility".
migrate
Migrate from Cypress or Selenium to Playwright. Use when user mentions "cypress", "selenium", "migrate tests", "convert tests", "switch to playwright", "move from cypress", or "replace selenium".