36 skills · 14 categories

Claude Code skills for JavaScript

JavaScript skills for the runtime, the browser and the tooling around them: module formats, event-loop pitfalls, bundling, package hygiene and the server frameworks most teams run. Use them alongside the TypeScript hub if your codebase is typed.

Start with these

  1. 1

    Async Concurrency

    Parallel I/O with limits, timeouts, and backpressure

    Claude turns sequential awaits into concurrent work without overloading anything: it finds the binding limit (rate limit, DB pool, memory), derives a cap from throughput times latency, and implements bounded fan-out in TypeScript, Python or Go with timeouts, cancellation and per-item error handling. Retries use jittered backoff and producers get real backpressure.

  2. 2

    Express on Node

    Express 5 services that fail loudly and shut down cleanly

    Claude structures Express apps around a testable app factory, orders middleware deliberately, validates bodies with Zod, and sends every failure through one problem+json error handler. It knows the Express 4 to 5 routing and async changes, tunes keep-alive against load balancer timeouts, and wires SIGTERM handling so deploys stop dropping in-flight requests.

  3. 3

    Bundle Analysis

    Cut the initial JS users actually download

    Claude measures before cutting: compressed size of the initial route, a treemap of what is in it, and a classification of every big module as needed now, needed later, duplicated or dead. It then removes, lazy-loads, replaces or tree-shakes in that order, proves the gain with the same build command, and adds a dependency-free budget script to CI so size cannot creep back.

All 36 JavaScript skills

Grouped by category. Each card opens the full playbook, example prompts and install commands.

Engineering Workflow 4

No. 032

Dependency Upgrades

Major version bumps without the Friday surprise

Claude upgrades in risk groups instead of bumping everything at once: a green baseline first, patch and minor updates batched, each major handled alone with its migration guide turned into a checklist, official codemods committed separately, and the lockfile changed only where intended. It also sets Renovate or Dependabot policies so routine updates merge themselves and majors wait for a plan.

dependency-upgrades 202 lines
No. 031

Dead Code Removal

Delete unused code with two kinds of proof

Claude configures the right analyzer for the stack with real entry points, triages candidates against known false-positive patterns such as dynamic imports, framework conventions and external callers, and requires a second signal like search, coverage or runtime logs before deleting. Removals land in small batches by kind with the full build and test gate after each, and confirmed false positives go into analyzer config.

dead-code-removal 142 lines
No. 037

Monorepo Navigation

Run the affected tasks, not the whole repo

Claude identifies the workspace tooling first, then runs only the affected tasks through Turborepo, Nx, or pnpm filters instead of testing everything from the root. It adds dependencies to the package that imports them, uses the workspace protocol for internal packages, respects module boundaries, and debugs cache misses by inspecting task hashes, inputs and declared outputs.

monorepo-navigation 156 lines
No. 039

Release Management

Version numbers that tell consumers the truth

Claude derives the next version from the actual changes rather than gut feel, cuts annotated tags that CI builds and publishes from, and picks fitting automation such as release-please, semantic-release, Changesets or git-cliff. Release branches and hotfixes follow a fix-on-main-then-cherry-pick flow, and every push or publish waits for your confirmation behind a pre- and post-release checklist.

release-management 202 lines

Backend & APIs 5

No. 082

Express on Node

Express 5 services that fail loudly and shut down cleanly

Claude structures Express apps around a testable app factory, orders middleware deliberately, validates bodies with Zod, and sends every failure through one problem+json error handler. It knows the Express 4 to 5 routing and async changes, tunes keep-alive against load balancer timeouts, and wires SIGTERM handling so deploys stop dropping in-flight requests.

express-node 196 lines
No. 079

Bun Runtime

Adopt Bun one role at a time, with proof

Claude treats Bun as four separate tools and adopts the low-risk ones first: package manager, then test runner, then bundler, then runtime. It commits the text lockfile, freezes it in CI, audits blocked install scripts, writes Bun.serve handlers with graceful shutdown and raised idle timeouts, and proves Node compatibility with the real suite and a staging image before anything ships.

bun-runtime 223 lines
No. 080

Deno Runtime

Scoped permissions instead of -A everywhere

Claude sets up Deno projects so every task runs with the narrowest permissions that work: scoped hosts, paths, env vars and binaries recorded as permission sets in deno.json, plus deny rules for metadata endpoints. Dependencies come from JSR and npm with a committed lockfile, tests keep sanitizers on, and shipping goes through deno compile, a pinned container, or Deno Deploy.

deno-runtime 215 lines
No. 088

Hono on the Edge

One typed API for Workers, Bun, Deno and Node

Claude writes Hono apps against Web standard APIs so they run on Workers, Bun, Deno or Node, with Bindings and Variables typed from the start. Inputs pass through Zod or Standard Schema validators, errors flow through one onError handler, and routes are chained so the exported AppType gives the frontend a fully typed hc client without hand-written fetch wrappers.

hono-edge 201 lines
No. 090

NestJS Modules

Clear module boundaries and enhancers in the right place

Claude organizes NestJS code into feature modules with small export lists, uses injection tokens instead of interfaces that vanish at runtime, and avoids request scope unless it is truly needed. Auth goes in guards, validation in a global ValidationPipe, mapping in interceptors, and tests override providers through the testing module so e2e runs use the same global config as production.

nestjs-modules 172 lines

Testing 5

No. 132

Jest Testing

Jest suites with hoisting-safe mocks and honest snapshots

Claude sets a single Jest config with per-project environments, a fast TypeScript transform and restoreMocks so state never leaks between tests. It writes module mocks that respect hoisting rules, uses async timer advancers when promises are involved, keeps snapshots small and reviewed, and walks a suite through the Jest 30 breaking changes such as removed matcher aliases and the renamed path flag.

jest-testing 242 lines
No. 126

Benchmark Testing

Faster means significant, not one lucky run

Claude stops quoting single-run timings. It uses the right harness per language, guards against dead-code elimination, quiets the machine, measures noise with an A/A run, and compares 10 or more samples per side with a significance test and confidence interval. CI gates get thresholds derived from measured noise, or instruction counts when shared runners are too jittery.

benchmark-testing 259 lines · 2 files
No. 136

Mutation Testing

Find out if your tests would notice a real bug

Claude runs mutation testing where it pays off, on critical modules or changed files, and triages every surviving mutant: missing boundary case, weak assertion, untested error path, equivalent mutant, or dead code. Survivors turn into small behavior-named tests, ignores carry a written reason, and CI gates only the modules that matter.

mutation-testing 167 lines
No. 138

Property-Based Testing

Let the generator find the edge case you missed

Claude writes properties that state true facts about your domain, such as round-trips, invariants, and comparisons to a simple oracle, instead of restating the code. Generators build valid inputs directly rather than filtering, every shrunk counterexample becomes a pinned example test, and stateful components get model-based command sequences.

property-based-testing 213 lines · 2 files
No. 141

Testcontainers

Real databases in tests, started once and reset fast

Claude replaces database mocks and H2 stand-ins with the production engine in a container, started once per run rather than per test. It runs the real migrations, picks rollback, truncation, template databases or snapshots for isolation, gives each parallel worker its own database, and sets up GitHub Actions or GitLab Docker-in-Docker so the suite passes cold, shuffled and in parallel.

testcontainers 202 lines · 2 files

Cloud Platforms 4

No. 179

Azure Functions

Current models, managed identity and handled poison queues

Claude builds function apps on the current programming model for each language, migrating off in-process .NET and function.json-era code before the support cutoff. It picks a hosting plan from latency and networking needs, connects triggers through managed identity and Key Vault references, tunes host.json per trigger, and makes sure failing messages land in a monitored poison or dead-letter queue.

azure-functions 204 lines
No. 182

Cloudflare Workers

Right storage per binding, typed env, one-command rollback

Claude configures Workers with explicit compatibility dates, generated binding types and per-environment bindings, then picks KV, D1, R2, Durable Objects or Queues from the access pattern rather than habit. Code stays inside CPU and memory limits, tests run in the real Workers runtime via Vitest, and releases go out as versions with traffic splitting and a known rollback.

cloudflare-workers 203 lines
No. 189

Supabase Backend

Treat the database as the security boundary it is

Claude builds Supabase projects with the CLI and versioned migrations, enables RLS on every exposed table with per-operation policies that are indexed and tested as two different users, and keeps the secret key off clients. Server auth uses @supabase/ssr with verified users, storage paths are scoped by user folder, and types are regenerated after each schema change.

supabase-backend 204 lines
No. 190

Vercel Deploys

Reproducible builds, scoped env vars, instant rollback

Claude reproduces Vercel builds locally with vercel pull and vercel build before guessing, scopes env vars per Production, Preview and branch, and remembers that changes need a redeploy. Functions run on the Node.js runtime near the database with sensible maxDuration, previews stay protected, monorepo builds skip unaffected apps, and production moves by promotion with a known rollback.

vercel-deploys 158 lines

Performance 4

No. 293

Async Concurrency

Parallel I/O with limits, timeouts, and backpressure

Claude turns sequential awaits into concurrent work without overloading anything: it finds the binding limit (rate limit, DB pool, memory), derives a cap from throughput times latency, and implements bounded fan-out in TypeScript, Python or Go with timeouts, cancellation and per-item error handling. Retries use jittered backoff and producers get real backpressure.

async-concurrency 209 lines
No. 294

Bundle Analysis

Cut the initial JS users actually download

Claude measures before cutting: compressed size of the initial route, a treemap of what is in it, and a classification of every big module as needed now, needed later, duplicated or dead. It then removes, lazy-loads, replaces or tree-shakes in that order, proves the gain with the same build command, and adds a dependency-free budget script to CI so size cannot creep back.

bundle-analysis 184 lines · 2 files
No. 303

Node.js Profiling

Flamegraphs and event loop lag, not guesses

Claude reproduces the slowdown with a load test, classifies it as CPU-bound, event-loop blocking, I/O wait or GC pressure using event loop utilization and lag percentiles, then captures the matching profile with Node's built-in flags. It reads flamegraphs by self time, fixes the specific hot path, and reports before and after p99 latency from the identical load run.

node-profiling 183 lines
No. 301

Memory Leak Hunting

From growing heap to the exact retaining reference

Claude separates real leaks from warming caches by repeating one action with forced GC, then uses the three-snapshot comparison to find object types that grow per round. It follows the retainer chain to the first reference your code owns, such as a listener, timer, unbounded Map or uncleaned effect, fixes it, and reruns the same loop to show flat memory.

memory-leak-hunting 159 lines · 2 files

Install

Every JavaScript skill in one command

Installs into ~/.claude/skills/. Add --project after -- to install into the current repository.

curl -fsSL https://claudeskills.page/install.sh | sh -s -- async-concurrency express-node bundle-analysis bun-runtime deno-runtime node-profiling hono-edge dependency-upgrades jest-testing supply-chain-audit phaser-games task-runners nestjs-modules memory-leak-hunting discord-bots technical-seo dead-code-removal monorepo-navigation release-management astro-sites forms-validation regex-crafting benchmark-testing mutation-testing property-based-testing testcontainers azure-functions cloudflare-workers supabase-backend vercel-deploys data-visualization web-scraping docx-documents slack-apps cli-tool-building macos-automation

JavaScript skills FAQ

What is the best Claude Code skill for JavaScript?

Start with Async Concurrency: Parallel I/O with limits, timeouts, and backpressure. Then add Express on Node and Bundle Analysis, which cover the next most common JavaScript requests.

How do I install all 36 JavaScript skills at once?

Pass every name to the installer in one command: curl -fsSL https://claudeskills.page/install.sh | sh -s -- async-concurrency express-node bundle-analysis bun-runtime deno-runtime node-profiling hono-edge dependency-upgrades jest-testing supply-chain-audit phaser-games task-runners nestjs-modules memory-leak-hunting discord-bots technical-seo dead-code-removal monorepo-navigation release-management astro-sites forms-validation regex-crafting benchmark-testing mutation-testing property-based-testing testcontainers azure-functions cloudflare-workers supabase-backend vercel-deploys data-visualization web-scraping docx-documents slack-apps cli-tool-building macos-automation. Add --project to install them into the current repository's .claude/skills/ folder so your team gets them too.

Do these JavaScript skills work outside Claude Code?

Yes. Each skill uses only the portable Agent Skills frontmatter, so the same folder works on claude.ai, through the Claude API and in the Agent SDK. Skills that run bundled scripts need an environment with code execution.

esc