javascript-pro — скилл для Claude Code: ES2023+, async/await, Node.js
Скилл для написания, отладки и рефакторинга JavaScript кода с ES2023+, async/await, ESM модулями и Node.js API. Нужен, если вы строите vanilla JavaScript приложения или оптимизируете производительность в браузере и Node.js.
npx skills add Jeffallan/claude-skills --skill javascript-pro -a claude-codeЧто делает javascript-pro
javascript-pro помогает писать современный JavaScript, начиная с анализа проекта (package.json, версия Node, целевые браузеры) и заканчивая тестами с покрытием 85%+. Скилл требует ESM модулей для новых проектов, обязательно использует async/await вместо коллбеков, проверяет код через eslint и ловит утечки памяти перед финализацией.
Внутри есть справочник по современному синтаксису (optional chaining, nullish coalescing), async-паттернам (Promises, error handling, event loop), модульным системам (ESM vs CommonJS), браузерным API (Fetch, Web Workers, Storage) и Node.js (fs/promises, streams, worker threads). Скилл блокирует var, синхронный I/O, перемешивание CommonJS и ESM, пропуски обработки ошибок в async функциях.
Установка: команда npx skills add для вашей платформы, затем скилл появляется в локальной папке (.claude, .agents, .cursor, .github или .devin в зависимости от IDE). После установки скилл загружает SKILL.md и готов к использованию.
Какие задачи решает
- писать асинхронный код с async/await и правильной обработкой ошибок
- рефакторить старый код на var и коллбеки в ES2023+ с Promises
- найти утечки памяти и проблемы производительности браузера
- настроить ESM модули или миграцию с CommonJS
- покрыть код тестами Jest с целью 85%+ coverage
Примеры запросов агенту
- Напиши fetch функцию для API с обработкой ошибок и null-гвардами
- Рефакторин этого коллбека в async/await и проверь на утечки памяти
- Как правильно использовать Web Workers и ESM в этом проекте?
Как установить javascript-pro
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill javascript-pro -a claude-code2Вручную: положить файлы
~/.claude/skills/javascript-pro/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/javascript-pro/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill javascript-pro -a codex2Вручную: положить файлы
.agents/skills/javascript-pro/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill javascript-pro -a cursor2Вручную: положить файлы
.cursor/skills/javascript-pro/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills javascript-pro2Вручную: положить файлы
.github/skills/javascript-pro/SKILL.md1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill javascript-pro -a gemini-cli2Командой платформы
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/javascript-proВручную: положить файлы
.devin/skills/javascript-pro/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill javascript-pro -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора61
Весь набор →Похожие
Вопросы о javascript-pro
Как установить javascript-pro в Claude Code?
Выполни npx skills add Jeffallan/claude-skills --skill javascript-pro -a claude-code, затем скилл будет доступен в ~/.claude/skills/javascript-pro/SKILL.md.
Что делает javascript-pro?
Пишет, отлаживает и рефакторит JavaScript код, обеспечивая ES2023+, async/await, ESM модули, правильную обработку ошибок и тесты с покрытием 85%+. Ловит утечки памяти и блокирует антипаттерны вроде var или синхронного I/O.
javascript-pro работает с CommonJS или только с ESM?
Скилл требует ESM для новых проектов и запрещает миксовать CommonJS и ESM в одном модуле. Для существующих проектов может помочь миграцию на ESM, но основной фокус — на современных стандартах.
Исходный текст
SKILL.md · MIT
---
name: javascript-pro
description: 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: MIT
metadata:
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
## 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
### Async/Await Error Handling
```js
// ✅ 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
```js
// ✅ Correct
const city = user?.address?.city ?? "Unknown";
// ❌ Incorrect — throws if address is undefined
const city = user.address.city || "Unknown";
```
### ESM Module Structure
```js
// ✅ 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
```js
// ✅ 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
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/language/javascript-pro/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills