Creates and configures NestJS modules, controllers, services, DTOs, guards, and interceptors for enterprise-grade TypeScript backend applications. Use when building NestJS REST APIs or GraphQL services, implementing dependency injection, scaffolding modular architecture, adding JWT/Passport authentication, integrating TypeORM or Prisma, or working with .module.ts, .controller.ts, and .service.ts files. Invoke for guards, interceptors, pipes, validation, Swagger documentation, and unit/E2E testing in NestJS projects.
92
92%
Does it follow best practices?
Impact
91%
1.01xAverage score across 6 eval scenarios
Passed
No known issues
Controller Swagger docs and DTO validation
ApiTags on controller
100%
100%
ApiOperation on endpoints
100%
100%
ApiResponse with status codes
100%
100%
ApiProperty on DTO fields
100%
100%
class-validator decorators
100%
100%
PartialType or OmitType for update DTO
100%
100%
Global ValidationPipe whitelist
100%
100%
Global ValidationPipe transform
0%
100%
ParseUUIDPipe on id params
100%
100%
HttpCode NO_CONTENT on DELETE
100%
100%
No any type
100%
100%
No secrets in response
100%
100%
Service DI, logger, error handling, unit tests
Constructor DI
100%
100%
Logger instance
0%
0%
NestJS HTTP exceptions
100%
100%
Test.createTestingModule
100%
100%
jest.fn() mocks
44%
44%
afterEach clearAllMocks
0%
0%
NotFoundException test case
100%
100%
Module exports service
100%
100%
@Injectable decorator
100%
100%
No any type
100%
100%
DTOs for inputs
100%
100%
JWT auth, guards, roles, configuration
bcrypt cost factor 10
100%
100%
JWT payload fields
100%
100%
Access token expiry 15m
88%
100%
Refresh token expiry 7d
0%
0%
ConfigService for JWT_SECRET
100%
100%
Bearer token extraction
100%
100%
Global guard via APP_GUARD
100%
100%
@Public() decorator
66%
55%
@Roles() with RolesGuard
66%
55%
Password not in response
100%
100%
No hardcoded secrets
100%
100%
Express to NestJS migration patterns
Auth via Guard not middleware
100%
100%
Logging via Interceptor not middleware
100%
100%
Constructor DI, no new keyword
100%
100%
class-validator DTO decorators
100%
100%
NestJS HTTP exceptions
100%
100%
NestJS module directory structure
100%
100%
Global ValidationPipe with whitelist and transform
100%
100%
@Injectable on service
100%
100%
No raw req.body in services
100%
100%
Guard uses CanActivate interface
100%
77%
Interceptor uses NestInterceptor interface
100%
100%
Nested DTO validation and custom validation decorators
@ValidateNested with @Type
100%
100%
@ArrayMinSize on array field
100%
100%
Custom registerDecorator
100%
100%
@Transform sanitization
100%
100%
PartialType or OmitType for update DTO
100%
100%
PickType for subset DTO
0%
0%
ValidationPipe whitelist
100%
100%
ValidationPipe forbidNonWhitelisted
100%
100%
ValidationPipe transform
100%
100%
@ApiProperty on all DTO fields
100%
100%
No any type in DTOs
57%
100%
DTO files in dto/ subdirectory
100%
100%
Interceptors, exception filters, versioning, and E2E tests
NestInterceptor implementation
100%
100%
Interceptor uses Observable pipe and tap
100%
100%
Interceptor Logger named after class
100%
100%
ExceptionFilter implementation
100%
100%
Exception filter response shape
100%
100%
Global prefix api
100%
100%
URI versioning enabled
100%
100%
E2E test uses createNestApplication
100%
100%
E2E test uses supertest
100%
100%
E2E test ValidationPipe
100%
100%
E2E afterAll closes app
100%
100%
Output template order
100%
100%
5b76101
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.