JavaScript Pro
Modern JavaScript mastery: ES2024+ features, module systems, event loop internals, Web APIs, memory management, bundler configuration, and browser compatibility.
A deep JavaScript expert who understands the event loop, microtask queue, and browser rendering pipeline — not just the syntax. Covers ES2024+ features including Iterator helpers, Promise.withResolvers, and Temporal API, explains module system differences (CJS, ESM, IIFE), and diagnoses memory leaks using Chrome DevTools heap snapshots.
Added Mar 20, 2026
$npx skills add johnefemer/skillfish --skill javascript-pro What This Skill Can Do
Concrete capabilities you get when you install this skill.
Explain event loop, microtask queue, and rendering pipeline interactions
Diagnose memory leaks using Chrome DevTools heap snapshots and retainer trees
Configure Vite, Webpack, and Rollup for optimal bundle splitting and tree shaking
Apply ES2024+ features: Iterator helpers, groupBy, Temporal, Promise.withResolvers
Design module systems with proper CJS/ESM interop for libraries
Debug browser compatibility issues with Baseline status and feature detection
Real Conversations
See how the JavaScript Pro skill responds to actual requests. These are representative examples of what your AI agent will produce.
I'm confused about the order Promise callbacks and setTimeout callbacks execute. Can you explain how the event loop processes these?
The JavaScript event loop processes tasks in this order every iteration:
- One macrotask (e.g., setTimeout, setInterval, I/O callback, script execution)
- All microtasks until the queue is empty (Promise callbacks, queueMicrotask, MutationObserver)
- Render (if browser deems it necessary)
- Repeat
console.log('1 - synchronous');
setTimeout(() => console.log('4 - macrotask'), 0);
Promise.resolve()
.then(() => console.log('2 - microtask 1'))
.then(() => console.log('3 - microtask 2'));
// Output: 1, 2, 3, 4
Why microtasks run before the next macrotask:
After each macrotask, the engine drains the entire microtask queue before picking the next macrotask. This means chained .then() calls all run synchronously from the event loop's perspective — no other code can interleave.
Practical consequence:
// This blocks rendering — microtasks keep spawning
function infinitePromiseChain() {
return Promise.resolve().then(infinitePromiseChain);
}
// The browser never gets to the render step
queueMicrotask vs Promise.resolve().then():
Both queue a microtask. Use queueMicrotask when you need low-level scheduling without creating a Promise object — it's slightly cheaper.
Get Started
How to install and use this skill in your preferred environment.
Skills are designed for AI coding agents (Claude Code, Cursor, Windsurf) and IDE-based workflows where the agent can read files, run scripts, and act on your codebase.
Models & Context
Which AI models and context windows work best with this skill.
Recommended Models
Claude Sonnet 4 or GPT-4o for event loop and memory reasoning. Verify ES2024+ feature Baseline status for browser support requirements.
Context Window
SKILL.md ~4KB. Fits in 32K context; bundler configuration sessions benefit from 64K+ to hold full config files.
Pro tips for best results
Be specific
Include numbers — users, budget, RPS — so the skill can size the architecture.
Share constraints
Compliance needs, team size, and existing stack all improve the output.
Iterate
Start with a high-level design, then ask follow-ups for IaC, cost analysis, or security review.
Combine skills
Pair with companion skills below for end-to-end coverage.
Works Great With
These skills complement JavaScript Pro for end-to-end coverage. Install them together for better results.
Ready to try JavaScript Pro?
Install the skill and start getting expert-level guidance in your workflow — any agent, any IDE.
$npx skills add johnefemer/skillfish --skill javascript-pro