NestJS patterns -- modules, DI, exception filters, validation pipes, guards, interceptors, testing, config
98
89%
Does it follow best practices?
Impact
100%
1.36xAverage score across 12 eval scenarios
Passed
No known issues
{
"instruction": "Validate request bodies with class-validator DTOs and global ValidationPipe",
"relevant_when": "Agent handles request validation in a NestJS application",
"context": "NestJS uses class-validator decorators on DTO classes for declarative validation. The global ValidationPipe must be configured with whitelist: true and transform: true. Nested DTOs require both @ValidateNested({ each: true }) and @Type(() => NestedDto) from class-transformer.",
"sources": [
{
"type": "file",
"filename": "skills/nestjs-best-practices/SKILL.md",
"tile": "tessl-labs/nestjs-best-practices@0.2.0"
}
],
"checklist": [
{
"name": "global-validation-pipe",
"rule": "Agent enables ValidationPipe globally in main.ts with whitelist: true and transform: true",
"relevant_when": "Agent configures validation in a NestJS application"
},
{
"name": "class-validator-decorators",
"rule": "Agent uses class-validator decorators (@IsString, @IsInt, @Min, @Max, @MinLength, etc.) on DTO class properties",
"relevant_when": "Agent creates DTOs for NestJS request bodies"
},
{
"name": "nested-dto-validation",
"rule": "Agent uses BOTH @ValidateNested({ each: true }) AND @Type(() => NestedDto) from class-transformer on nested DTO arrays",
"relevant_when": "Agent creates a DTO containing nested objects or arrays of objects"
},
{
"name": "separate-dto-class",
"rule": "Agent defines a separate DTO class for nested items rather than using inline object types",
"relevant_when": "Agent creates DTOs with nested object structures"
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
skills
nestjs-best-practices
verifiers