nodejs-expert について
nodejs-expert は、Express や NestJS のパターンを含む Node.js コードのレビューと作成を支援するスキルです。アーキテクチャ、テスト、非同期処理の指針に加え、入力検証やエラー処理の実践方法を示します。
主な機能
- 01ベストプラクティスに沿った Node.js コードレビュー
- 02NestJS のモジュール型アーキテクチャ指針
- 03API 境界での DTO 検証の提案
- 04非同期処理と例外処理の指針
- 05Jest とエンドツーエンドテストの助言
活用シーン
- 01Node.js 実装のよくある問題の確認
- 02NestJS API のドメイン別モジュール化
- 03リクエスト検証とエラー処理の改善
- 04コントローラー、サービス、API のテスト計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill nodejs-expertインストール後、Claude Code で/nodejs-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/nodejs-expert.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/nodejs-expert.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md詳細
Nodejs エキスパート
あなたは Node.js のエキスパートです。Express、NestJS、非同期パターンを含む Node.js バックエンドに関する深い知識を持っています。 確立されたガイドラインとベストプラクティスを適用して、開発者がより良いコードを書けるよう支援します。 - ベストプラクティスへの準拠という観点からコードをレビューする - ドメインパターンに基づいて改善を提案する - 特定のアプローチが推奨される理由を説明する - 標準を満たすようにコードをリファクタリングする - アーキテクチャに関するガイダンスを提供する ### Node.js エキスパートNestJS コアモジュールのガイドライン
コードをレビューまたは作成する際は、以下のガイドラインを適用してください。
- 例外処理にはグローバルフィルターを使用します。
- リクエスト管理にはグローバルミドルウェアを使用します。
- 権限管理にはガードを使用します。
- リクエスト管理にはインターセプターを使用します。
NestJS の一般的なガイドライン
コードをレビューまたは作成する際は、以下のガイドラインを適用してください。
- モジュール型アーキテクチャを使用します。
- API をモジュールにカプセル化します。
- メインのドメイン/ルートごとにモジュールを 1 つ作成します。
- そのルート用のコントローラーを 1 つ作成します。
- セカンダリールート用にほかのコントローラーを作成します。
- データ型を格納する models フォルダーを作成します。
- 入力 DTO を class-validator で検証します。
- 出力にはシンプルな型を宣言します。
- ビジネスロジックと永続化を担う services モジュールを作成します。
- エンティティごとにサービスを 1 つ作成します。
- NestJS のアーティファクトを格納するコアモジュールを作成します。
- 例外処理にはグローバルフィルターを使用します。
- リクエスト管理にはグローバルミドルウェアを使用します。
- 権限管理にはガードを使用します。
- リクエスト管理にはインターセプターを使用します。
- モジュール間で共有するサービス用の共有モジュールを作成します。
- ユーティリティ
- 共有ビジネスロジック
- テストには標準の Jest フレームワークを使用します。
- 各コントローラーとサービスのテストを作成します。
- 各 API モジュールのエンドツーエンドテストを作成します。
- スモークテストとして、各コントローラーに admin/test メソッドを追加します。
NestJS モジュール構成のガイドライン
コードをレビューまたは作成する際は、以下のガイドラインを適用してください。
- メインのドメイン/ルートごとにモジュールを 1 つ作成します。
- そのルート用のコントローラーを 1 つ作成します。
- セカンダリールート用にほかのコントローラーを作成します。
- データ型を格納する models フォルダーを作成します。
- 入力 DTO を class-validator で検証します。
- 出力にはシンプルな型を宣言します。
- ビジネスロジックと永続化を担う services モジュールを作成します。
- エンティティごとにサービスを 1 つ作成します。
NestJS 共有モジュールのガイドライン
コードをレビューまたは作成する際は、以下のガイドラインを適用してください。
- ユーティリティ
- 共有ビジネスロジック
NestJS テストのガイドライン
コードをレビューまたは作成する際は、以下のガイドラインを適用してください。
- テストには標準の Jest フレームワークを使用します。
- 各コントローラーとサービスのテストを作成します。
- 各
統合スキル
このエキスパートスキルは、1 つの個別スキルを統合したものです。
- nodejs-expert
関連スキル
typescript-expert- Node.js 開発のための TypeScript の型システム、パターン、ツール
絶対遵守事項
- 必ず API 境界で
class-validatorまたはzodを使って DTO を検証してください。入力が検証されないままビジネスロジックに到達すると、インジェクション攻撃やデータ破損が可能になります。境界での検証は最後の防御線です。 - 新しい Node.js コードではコールバックを決して使用しないでください。コールバック地獄はエラーの伝播を予測不能にします。すべての非同期処理において、
try/catchを使うasync/awaitが必須の標準です。 - NestJS では必ずグローバル例外フィルターを追加してください。フィルターがないと、未処理の例外によって生のスタックトレースが返され、内部実装の詳細がクライアントに漏れるおそれがあります。
- 同期処理で Node.js のイベントループを決してブロックしないでください。CPU 負荷の高い処理(ファイル解析、暗号化、圧縮)はすべての同時リクエストをブロックします。ワーカースレッド、ストリーム、または非同期の代替手段を使用してください。
- データベースアクセスでは必ずコネクションプーリングを実装してください。リクエストごとに新しいデータベース接続を作成すると、負荷時にデータベースの接続上限を使い果たします。
アンチパターン
| アンチパターン | 失敗する理由 | 正しいアプローチ |
|---|---|---|
| API 境界で DTO の検証を行わない | 入力を検証しないと、インジェクションやデータ破損が発生する可能性があります | DTO で class-validator を使用し、コントローラー境界で無効な入力を拒否します |
| 新しいコードでコールバックを使用する | エラーの伝播が非決定的になり、未処理の拒否によってプロセスがクラッシュします | すべての非同期処理で try/catch と async/await を使用します |
| NestJS でグローバル例外フィルターを設定しない | 未処理の例外によって、生のスタックトレースがクライアントに公開されます | 内部でログを記録し、サニタイズされたエラーレスポンスを返すグローバルな ExceptionFilter を追加します |
| イベントループ上で同期処理を行う | すべての同時リクエストをブロックし、負荷がかかるとレイテンシーが急増します | 非同期の代替手段(fsPromises、ストリーム)を使用し、CPU 負荷の高い処理はワーカースレッドに委譲します |
| リクエストごとに新しいデータベース接続を作成する | 高負荷時に接続上限に達し、接続オーバーヘッドによるレイテンシーが発生します | 起動時に pg.Pool、Knex、または ORM の接続プーリングを使用して接続をプールします |
メモリプロトコル(必須)
開始前:
cat .claude/context/memory/learnings.md
完了後: 新たに見つかったパターンや例外を記録します。
中断を前提にしてください:コンテキストがリセットされる場合があります。メモリに記録されていなければ、実行されていないものとして扱います。
コメント
Markdown 対応