javascript-pro
モダンなES2023+の機能、async/awaitパターン、ESMモジュールシステム、Node.js APIを活用して、JavaScriptコードの作成・デバッグ・リファクタリングを行います。バニラJavaScriptアプリの構築、Promiseベースの非同期処理の実装、ブラウザやNode.jsのパフォーマンス最適化、Web WorkerやFetch APIの利用、また`.js`/`.mjs`/`.cjs`ファイルの品質レビューや改善が必要なときに活用してください。
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.
SKILL.md 本文
JavaScript Pro
このスキルを使う時
- バニラ JavaScript アプリケーションの構築
- async/await パターンと Promise ハンドリングの実装
- モダンモジュールシステム (ESM/CJS) の操作
- ブラウザのパフォーマンスとメモリ使用量の最適化
- Node.js バックエンドサービスの開発
- Web Workers、Service Workers、またはブラウザ API の実装
コアワークフロー
- 要件の分析 —
package.json、モジュールシステム、Node バージョン、ブラウザターゲットを確認;.js/.mjs/.cjsの規約を確認 - アーキテクチャの設計 — モジュール、async フロー、エラーハンドリング戦略を計画
- 実装 — ES2023+ コードを適切なパターンと最適化で記述
- 検証 — リンター実行 (
eslint --fix);リンターが失敗した場合、すべての報告された問題を修正して再実行。DevTools または--inspectでメモリリークをチェック;バンドルサイズを検証;リークが見つかった場合は続行前に解決 - テスト — Jest で 85%+ カバレッジを達成する包括的なテストを記述;カバレッジが不足する場合は欠落ケースを追加して再実行。未処理の Promise リジェクションがないことを確認
リファレンスガイド
コンテキストに基づいて詳細なガイダンスを読み込む:
| トピック | リファレンス | 読み込むタイミング |
|---|---|---|
| モダン構文 | references/modern-syntax.md | ES2023+ フィーチャー、オプショナルチェーン、プライベートフィールド |
| Async パターン | references/async-patterns.md | Promises、async/await、エラーハンドリング、イベントループ |
| モジュール | references/modules.md | ESM vs CJS、動的インポート、package.json exports |
| ブラウザ API | references/browser-apis.md | Fetch、Web Workers、Storage、IntersectionObserver |
| Node 基礎 | references/node-essentials.md | fs/promises、streams、EventEmitter、worker threads |
制約
必須事項
- ES2023+ フィーチャーのみを使用
X | nullまたはX | undefinedパターンを使用- オプショナルチェーン (
?.) と nullish coalescing (??) を使用 - すべての非同期操作に async/await を使用
- 新規プロジェクトでは ESM (
import/export) を使用 - try/catch を使用した適切なエラーハンドリングを実装
- 複雑な関数に JSDoc コメントを追加
- 関数型プログラミングの原則に従う
禁止事項
varを使用しない(常にconstまたはletを使用)- コールバックベースのパターンを使用しない(Promises を優先)
- 同じモジュール内で CommonJS と ESM を混在させない
- メモリリークやパフォーマンスの問題を無視しない
- async 関数でエラーハンドリングをスキップしない
- Node.js で同期 I/O を使用しない
- 関数のパラメータをミューテートしない
- ブラウザでブロッキング操作を作成しない
主なパターンと例
Async/Await エラーハンドリング
// ✅ 正しい — async エラーは常に明示的に処理
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;
}
}
// ❌ 誤り — 未処理のリジェクション、null ガードなし
async function fetchUser(id) {
const response = await fetch(`/api/users/${id}`);
return response.json();
}
オプショナルチェーン & Nullish Coalescing
// ✅ 正しい
const city = user?.address?.city ?? "Unknown";
// ❌ 誤り — address が undefined の場合スロー
const city = user.address.city || "Unknown";
ESM モジュール構造
// ✅ 正しい — named exports、ライブラリ用の default-only export ではない
// 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";
// ❌ 誤り — require() と ESM の混在
const { add } = require("./utils/math.mjs");
var を避ける / const を優先
// ✅ 正しい
const MAX_RETRIES = 3;
let attempts = 0;
// ❌ 誤り
var MAX_RETRIES = 3;
var attempts = 0;
出力テンプレート
JavaScript フィーチャーを実装する場合、以下を提供:
- クリーンな export を持つモジュールファイル
- 包括的なカバレッジを持つテストファイル
- パブリック API の JSDoc ドキュメント
- 使用されたパターンの簡潔な説明
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jeffallan
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jeffallan/claude-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。