mcpField
N
nestjs

nestjs

github.com/ulpi-io開発5129 回インストール10 週間前に更新
リポジトリ

nestjs について

nestjs は、プロジェクト固有のリファレンスとモジュール構成の規約に沿って NestJS 開発タスクを進めるスキルです。検証、依存性注入、実装、確認を扱い、開発者やコーディングエージェント向けです。

主な機能

  1. 01タスクに応じた NestJS リファレンスの選択
  2. 02実装前のスタック方針の確認
  3. 03モジュール構成と依存性注入の適用
  4. 04検証、テスト、確認のガイド

活用シーン

  1. 01NestJS モジュールの作成や編集
  2. 02DTO 検証を伴うエンドポイントの実装
  3. 03認証、キュー、データベースの作業

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ulpi-io/skills --skill nestjs

インストール後、Claude Code で/nestjsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
auth.md
config.md
controllers.md
cqrs.md
docker.md
error-handling.md
health.md
interceptors.md
logging.md
microservices.md
middleware.md
modules.md
openapi.md
pipes.md
prisma.md
project-structure.md
providers.md
queues.md
scheduling.md
stack.md
testing.md
typeorm.md
validation.md
websockets.md

詳細

このスキルは、NestJS リファレンス一式を参照するためのルーティング用シェルです。

譲れないルール:

  1. プロジェクトの NestJS のバージョン、ORM、固定された決定事項を把握するため、最初に references/stack.md を読んでください。
  2. その後、実際のタスクに必要なリファレンスだけを読み込んでください。
  3. ドメインごとにモジュールは1つ — コントローラー、サービス、DTO、エンティティは、同じモジュールのディレクトリに配置します。
  4. コントローラーは薄く保つ — バリデーション(DTO + パイプ)、委譲(サービス)、返却を行います。ビジネスロジックは含めません。
  5. すべての入力を DTO で検証する — すべての DTO に class-validator デコレーターを適用し、ValidationPipe をグローバルに設定します。
  6. あらゆる箇所で依存性注入を使う — new Service() は使いません。コンストラクター経由で注入し、モジュールでプロバイダーとして設定します。
  7. 循環依存を避ける — forwardRef() の使用は最後の手段とし、構成の見直しを優先します。
  8. NestJS の詳細なガイダンスは、ここに直接書かず references/ に置いてください。

nestjs

入力

  • $request:作業対象の NestJS モジュール、エンドポイント、サブシステム、または機能

目標

NestJS の作業をプロジェクトのモジュールベースのアーキテクチャに沿って進め、依存性注入、バリデーション、データアクセス、リクエストのライフサイクルに関する既存のパターンに従って実装します。

ステップ 0:スタックの契約を読む

必ず最初に次を読んでください。

  • references/stack.md

ここでは、NestJS のバージョン、ORM(TypeORM/Prisma/Drizzle)、パッケージマネージャー、認証方式、キューシステム、固定された依存関係の選択が定められています。

成功基準:実装を始める前に、プロジェクトの NestJS アーキテクチャと固定された決定事項が明確になっていること。

ステップ 1:関連するリファレンスだけを読み込む

ルーティングテーブルからリファレンスファイルを選んでください。リファレンスツリー全体を一括で読み込まないでください。

タスク読むファイル
NestJS のバージョン、ORM、主要な依存関係、CLI、プロジェクト構成references/stack.md
フォルダーの規約、モジュール構成、バレルエクスポートreferences/project-structure.md
モジュールの作成または編集references/modules.md
コントローラー、ルートデコレーター、リクエストのライフサイクルreferences/controllers.md
サービス、プロバイダー、依存性注入references/providers.md
DTO、class-validator、ValidationPipe、変換references/validation.md
TypeORM のエンティティ、リポジトリ、マイグレーションreferences/typeorm.md
NestJS と Prisma の統合references/prisma.md
ガード、認証、認可、JWT、Passportreferences/auth.md
インターセプター、ロギング、キャッシュ、レスポンスのマッピングreferences/interceptors.md
パイプ、カスタムバリデーション、パラメーター変換references/pipes.md
例外フィルター、カスタム例外、エラーレスポンスreferences/error-handling.md
BullMQ のキュー、プロセッサー、フローreferences/queues.md
WebSocket ゲートウェイ、イベント、ルームreferences/websockets.md
マイクロサービス、トランスポート、メッセージパターンreferences/microservices.md
OpenAPI/Swagger デコレーター、スキーマ生成references/openapi.md
単体テスト、e2e テスト、テストモジュール、モックreferences/testing.md
設定、ConfigModule、環境変数のバリデーションreferences/config.md
ミドルウェア、ライフサイクルフック、シャットダウンreferences/middleware.md
pino または組み込みロガーによるロギングreferences/logging.md
ヘルスチェック、Terminusreferences/health.md
CQRS、イベント、サーガreferences/cqrs.md
スケジューリング、cron ジョブ、インターバルreferences/scheduling.md
Docker、デプロイ、本番環境のセットアップreferences/docker.md

複数のタスクがある場合は、複数のファイルを読んでください。各リファレンスは単独で利用できます。

成功基準:タスクに関連する NestJS の規約だけが対象になっていること。

ステップ 2:NestJS の基本ガードレールに従って実装する

以下のルールを常に適用してください。

  • すべてのモジュールで、コントローラー、プロバイダー、インポート、エクスポートを明示的に宣言します
  • コントローラーでは DTO と ValidationPipe で検証し、サービスに処理を委譲して、型付きのレスポンスを返します
  • サービスにビジネスロジックを記述し、コンストラクターで注入します。new でインスタンス化してはいけません
  • エンティティ/モデルと DTO は分けます。コントローラーから生のエンティティを返してはいけません
  • ガードは認証/認可を、インターセプターは横断的関心事を、パイプは変換を扱います
  • すべての外部入力に、class-validator デコレーターを付けた DTO を用意します
  • 原子性が重要な場合は、データベースの変更をトランザクションでラップします
  • 環境変数の検証には、Zod または Joi と @nestjs/config を使用します

成功基準:この変更がフレームワークを迂回せず、プロジェクトの NestJS モジュールアーキテクチャに適合していること。

ステップ 3:影響範囲を検証する

関連する範囲に絞って、最適な検証を行います。

  • ユニットテスト(jest --testPathPattern=<module>)
  • E2E テスト(jest --config test/jest-e2e.json)
  • 型チェック(tsc --noEmit)
  • リント(eslint .)
  • デコレーターを変更した場合は OpenAPI 仕様を再生成します

成功基準:変更した NestJS の範囲が引き続きビルドでき、型チェックに合格し、テストが通ること。

ガードレール

  • NestJS ハンドブック全体を SKILL.md にインラインで記述しないでください。
  • references/stack.md を省略しないでください。
  • コントローラーにビジネスロジックを記述しないでください。サービスに処理を委譲します。
  • 生のエンティティを返さないでください。DTO またはシリアライズ用インターセプターを使用します。
  • 依存性の注入を迂回しないでください。new Service() は使用しません。
  • ほかの選択肢を十分に検討する前に、循環するモジュール依存関係を作成しないでください。
  • 型のインポートに @nestjs/common のバレルインポートを使用しないでください。可能な場合は、個別のサブパスからインポートします。
  • disable-model-invocation を追加しないでください。これは通常のドメインスキルです。

参照資料を読み込むタイミング

  • references/stack.md 必ず読み込みます。

  • その後、references/ 内でタスクに関連するファイルのみを読み込みます

出力要件

以下を報告します。

  1. 読み込んだ NestJS の参照資料
  2. 選択したモジュールおよびアーキテクチャのパターン
  3. 実施した変更
  4. 実行した検証

コメント