Backend開発スキル
このスキルは、Backend(NestJS)の開発時に必要な検証を自律的に実施します。
利用可能なツール
- bash: コマンド実行、依存関係インストール、検証コマンド実行
- view: ファイル内容の確認
- edit: ファイルの編集
- grep: コード検索
使用すべきタイミング
以下の場合にこのスキルを使用してください:
- Backendコード(
apps/backend/)を変更する場合 - Backend APIの新規実装や修正を行う場合
- NestJSのコントローラー、サービス、エンティティを変更する場合
必須検証項目
1. プロジェクトルートへの移動
cd /home/runner/work/attendance-kit/attendance-kit
すべてのコマンドはプロジェクトルートから実行してください。
注: このパスはGitHub Actions環境用です。ローカル開発では、自身のプロジェクトルートディレクトリに置き換えてください。
2. 依存関係のインストール
npm run setup
変更前に依存関係が正しくインストールされていることを確認します。
3. Lint実行
npm run lint
必須: コード変更後、必ず実行してください。
- ESLintによるコードスタイルチェック
- TypeScriptの型チェック
- 未使用変数・インポートの検出
4. ビルド実行
npm run build
必須: コード変更後、必ず実行してください。
- TypeScriptのコンパイル
- Distディレクトリへの出力確認
5. ユニットテスト実行
npm run test:unit
必須: コード変更後、必ず実行してください。
- Jestによるユニットテスト
- スナップショットテストの更新(必要に応じて)
6. Backend統合テスト実行
# Backend統合テストのみ実行
cd apps/backend
npm run test:integration
必須: API関連のコード変更時は実行してください。
- aws-sdk-client-mockを使用した統合テスト
- エンドポイントの動作確認
7. OpenAPI仕様の生成
npm run generate
必須: APIエンドポイントやDTOを変更した場合は実行してください。
- OpenAPI仕様(
apps/backend/api/openapi.json)の自動生成 - Swagger UIで確認可能
実行順序
推奨される実行順序:
npm run setup- 依存関係インストールnpm run lint- コードスタイルチェックnpm run build- ビルド確認npm run test:unit- ユニットテストcd apps/backend && npm run test:integration- 統合テスト(API変更時)npm run generate- OpenAPI仕様生成(API変更時)
エラー対応
Lintエラーが発生した場合
# エラー詳細を確認
npm run lint
# 自動修正可能なものは修正
cd apps/backend
npm run lint
- 未使用変数・インポートを削除
- 型定義を追加
- コードスタイルを修正
ビルドエラーが発生した場合
# エラー詳細を確認
npm run build
# 型エラーを確認
cd apps/backend
npm run build
- TypeScriptの型エラーを修正
- インポートパスを確認
- tsconfig.jsonの設定を確認
テストエラーが発生した場合
# 失敗したテストの詳細を確認
npm test
# 特定のテストファイルのみ実行
cd apps/backend
npm test -- <test-file-name>
- テストロジックを確認
- モックの設定を確認
- スナップショットを更新(
npm run test:unitで自動更新)
統合テストエラーが発生した場合
# 失敗したテストの詳細を確認
cd apps/backend
npm run test:integration
# 特定のテストファイルのみ実行
npm run test:integration -- <test-file-name>
- テストロジックを確認
- モックの設定を確認
- DynamoDBのモック動作を確認
ベストプラクティス
コード変更時の原則
- 変更前に既存のテストを実行: 既存の問題を把握
- 小さな変更を頻繁にテスト: エラーの早期発見
- すべての検証を通過させる: Premergeワークフローと同じ基準
- 自動生成ファイルをコミット: OpenAPI仕様やスナップショット
検証のスキップ条件
以下の場合のみ一部の検証をスキップ可能:
- ドキュメントのみの変更: テスト不要
- テストファイルのみの変更: 統合テスト不要(ユニットテストは実行)
- コメントのみの変更: ビルド確認のみ
それ以外の場合は、必ずすべての検証を実行してください。
技術スタック
- フレームワーク: NestJS 10.x
- 言語: TypeScript 5.1.x
- ランタイム: Node.js 24.x以上
- データベース: DynamoDB (AWS SDK v3)
- 認証: JWT (Passport)
- テスト: Jest + Supertest + aws-sdk-client-mock
- ビルドツール: NestJS CLI
Premergeワークフローとの対応
このスキルの検証項目は、GitHub ActionsのPremergeワークフローと対応しています:
| Premergeステップ | ローカル検証コマンド |
|---|---|
npm run setup |
npm run setup |
npm run lint |
npm run lint |
npm run build |
npm run build |
npm run test:unit |
npm run test:unit |
npm run generate |
npm run generate |
| Backend統合テスト | npm run test:integration --workspace=@attendance-kit/backend |
参考資料
Converted and distributed by TomeVault — claim your Tome and manage your conversions.