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.
Start a fresh conversation. Replace the highlighted placeholders.
Use javascript-pro to refactor [JavaScript module] into ES2023 ESM using async/await, explicit error handling, JSDoc for complex public functions, and a Jest test file with comprehensive coverage.
Required inputs
[JavaScript module]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: javascript-prodescription: 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.license: MITmetadata: author: https://github.com/Jeffallan company: https://synergetic.solutions version: "1.1.0" domain: language triggers: JavaScript, ES2023, async await, Node.js, vanilla JavaScript, Web Workers, Fetch API, browser API, module system role: specialist scope: implementation output-format: code related-skills: fullstack-guardian
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
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