javascript-pro▌
jeffallan/claude-skills · updated Apr 8, 2026
Modern ES2023+ JavaScript implementation with async/await, ESM modules, and Node.js best practices.
- ›Covers vanilla JavaScript, Promise-based async flows, Web Workers, Fetch API, and browser performance optimization
- ›Enforces ES2023+ syntax, optional chaining, nullish coalescing, and functional programming patterns
- ›Includes comprehensive error handling, memory leak detection, and Jest test coverage validation (85%+ target)
- ›Provides reference guides for async patterns, module systems
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
- Analyze requirements — Review
package.json, module system, Node version, browser targets; confirm.js/.mjs/.cjsconventions - Design architecture — Plan modules, async flows, and error handling strategies
- Implement — Write ES2023+ code with proper patterns and optimisations
- 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 - 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 | nullorX | undefinedpatterns - 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 useconstorlet) - 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
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:
- Module file with clean exports
- Test file with comprehensive coverage
- JSDoc documentation for public APIs
- Brief explanation of patterns used
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.7★★★★★34 reviews- ★★★★★Carlos Huang· Dec 28, 2024
I recommend javascript-pro for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Pratham Ware· Dec 16, 2024
javascript-pro is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Sakura Patel· Nov 27, 2024
javascript-pro is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Hiroshi Patel· Nov 19, 2024
Keeps context tight: javascript-pro is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Mia Khanna· Oct 18, 2024
javascript-pro fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Isabella Jain· Oct 10, 2024
Registry listing for javascript-pro matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Sakshi Patil· Sep 9, 2024
Keeps context tight: javascript-pro is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Noor Ndlovu· Sep 5, 2024
I recommend javascript-pro for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Chaitanya Patil· Aug 28, 2024
Registry listing for javascript-pro matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Mia Ndlovu· Aug 24, 2024
javascript-pro reduced setup friction for our internal harness; good balance of opinion and flexibility.
showing 1-10 of 34