← Back to list
🛠️

javascript-pro Checked

Writes, debugs, and refactors JavaScript code using modern ES2023+ features, async/await patterns…
🛠️ Developer Tools skills By Jeffallan Version v1.0.0 Added 2026-09-07 Updated 2026-09-07 Source ↗
9.0Overall rating
2Views
6Downloads
11.3kStars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "javascript-pro" skill by following the instructions at https://skill123.me/install/javascript-pro.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/javascript-pro.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 18 KB
📊 Static rating
9.0/10
Trigger
7.5
Structure
10.0
Workflow
8.4
Content
9.0
Engineering
10.0
Security
10.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

Writes, debugs, and refactors JavaScript code using modern ES2023+ features, async/await patterns, ESM module systems, and Node.js APIs. Use when building vanilla JavaScript applications, implementing Promise-based async flows, optimising browser or Node.js performance, working with Web Workers or Fetch API, or reviewing .js/.mjs/.cjs files for correctness and best practices.

JavaScript Pro

Documentation

Writes, debugs, and refactors JavaScript code using modern ES2023+ features, async/await patterns, ESM module systems, and Node.js APIs. Use when building vanilla JavaScript applications, implementing Promise-based async flows, optimising browser or Node.js performance, working with Web Workers or Fetch API, or reviewing .js/.mjs/.cjs files for correctness and best practices.

JavaScript Pro

When to Use This Skill

  • Building vanilla JavaScript applications
  • Implementing async/await patterns and Promise handling
  • Working with modern module systems (ESM/CJS)
  • Optimizing browser performance and memory usage
  • Developing Node.js backend services
  • Implementing Web Workers, Service Workers, or browser APIs

Core Workflow

1. **Analyze requirements** — Review package.json, module system, Node version, browser targets; confirm .js/.mjs/.cjs conventions

2. **Design architecture** — Plan modules, async flows, and error handling strategies

3. **Implement** — Write ES2023+ code with proper patterns and optimisations

4. **Validate** — Run linter (eslint --fix); if linter fails, fix all reported issues and re-run before proceeding. Check for memory leaks with DevTools or --inspect, verify bundle size; if leaks are found, resolve them before continuing

5. **Test** — Write comprehensive tests with Jest achieving 85%+ coverage; if coverage falls short, add missing cases and re-run. Confirm no unhandled Promise rejections

Reference Guide

Load detailed guidance based on context:

| Topic | Reference | Load When |

|-------|-----------|-----------|

| Modern Syntax | references/modern-syntax.md | ES2023+ features, optional chaining, private fields |

| Async Patterns | references/async-patterns.md | Promises, async/await, error handling, event loop |

| Modules | references/modules.md | ESM vs CJS, dynamic imports, package.json exports |

| Browser APIs | references/browser-apis.md | Fetch, Web Workers, Storage, IntersectionObserver |

| Node Essentials | references/node-essentials.md | fs/promises, streams, EventEmitter, worker threads |

Constraints

### MUST DO

  • Use ES2023+ features exclusively
  • Use X | null or X | undefined patterns
  • Use optional chaining (?.) and nullish coalescing (??)
  • Use async/await for all asynchronous operations
  • Use ESM (import/export) for new projects
  • Implement proper error handling with try/catch
  • Add JSDoc comments for complex functions
  • Follow functional programming principles

### MUST NOT DO

  • Use var (always use const or let)
  • Use callback-based patterns (prefer Promises)
  • Mix CommonJS and ESM in the same module
  • Ignore memory leaks or performance issues
  • Skip error handling in async functions
  • Use synchronous I/O in Node.js
  • Mutate function parameters
  • Create blocking operations in the browser

Key Patterns with Examples

View full documentation

### Async/Await Error Handling


// ✅ Correct — always handle async errors explicitly
async function fetchUser(id) {
  try {
    const response = await fetch(`/api/users/${id}`);
    if (!response.ok) throw new Error(`HTTP ${response.status}`);
    return await response.json();
  } catch (err) {
    console.error("fetchUser failed:", err);
    return null;
  }
}

// ❌ Incorrect — unhandled rejection, no null guard
async function fetchUser(id) {
  const response = await fetch(`/api/users/${id}`);
  return response.json();
}

### Optional Chaining & Nullish Coalescing


// ✅ Correct
const city = user?.address?.city ?? "Unknown";

// ❌ Incorrect — throws if address is undefined
const city = user.address.city || "Unknown";

### ESM Module Structure


// ✅ Correct — named exports, no default-only exports for libraries
// utils/math.mjs
export const add = (a, b) => a + b;
export const multiply = (a, b) => a * b;

// consumer.mjs
import { add } from "./utils/math.mjs";

// ❌ Incorrect — mixing require() with ESM
const { add } = require("./utils/math.mjs");

### Avoid var / Prefer const


// ✅ Correct
const MAX_RETRIES = 3;
let attempts = 0;

// ❌ Incorrect
var MAX_RETRIES = 3;
var attempts = 0;

Output Templates

When implementing JavaScript features, provide:

1. Module file with clean exports

2. Test file with comprehensive coverage

3. JSDoc documentation for public APIs

4. Brief explanation of patterns used

Documentation

Score breakdown

Trigger
7.5
Good What/When covering ES2023, async, ESM, Node and browser targets, but no When-Not exclusion.
Structure
10.0
134-line SKILL.md, five references with Load-When table, no redundant files.
Workflow
8.4
Five-step workflow with eslint fix-retry loop, memory-leak checks, and coverage gate with retry; MUST/MUST-NOT lists.
Content
9.0
Concise imperative style; correct/incorrect example pairs make patterns unambiguous.
Engineering
10.0
Valid frontmatter; all five referenced files exist; no scripts.
Security
10.0
No scripts, no secrets (env-based API key in example), no injection or network egress.
Clean modern-JS skill with lint/test re-run loops, correct-vs-incorrect pattern examples, and five scoped references; description lacks When-Not boundary.