Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    KubrickCode

    nestjs

    KubrickCode/nestjs
    Coding
    1
    5 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Provides NestJS framework development standards and architectural patterns. Ensures domain-centric architecture, proper dependency injection, and decorator pattern utilization...

    SKILL.md

    NestJS Development Standards

    Module Organization Principles

    Domain-Centric Modularization

    Organize modules by business domain, not by function.

    • ❌ Bad: controllers/, services/, repositories/
    • ✅ Good: users/, products/, orders/

    Single Responsibility Module

    Each module is responsible for only one domain.

    • Separate common functionality into common/ or shared/ modules
    • Inter-domain communication must go through Services only

    Dependency Injection Rules

    Constructor Injection Only

    Property injection (@Inject) is forbidden.

    // ✅ Good
    constructor(private readonly userService: UserService) {}
    
    // ❌ Bad
    @Inject() userService: UserService;
    

    Provider Registration Location

    Providers are registered only in the module where they are used.

    • Minimize global providers
    • Use forRoot/forRootAsync only in AppModule

    Decorator Usage Rules

    Prioritize Custom Decorators

    Abstract repeated decorator combinations into custom decorators.

    // Create custom decorator when combining 3+ decorators
    @Auth() // Integrates @UseGuards + @ApiBearerAuth + @CurrentUser
    

    Decorator Order

    Arrange in execution order from top to bottom.

    1. Metadata decorators (@ApiTags, @Controller, @Resolver)
    2. Guards/Interceptors (@UseGuards, @UseInterceptors)
    3. Route decorators (@Get, @Post, @Query, @Mutation)
    4. Parameter decorators (@Body, @Param, @Args)

    DTO/Entity Rules

    DTO is Pure Data Transfer

    Business logic is forbidden; only validation is allowed.

    // ✅ Good: Validation only
    class CreateUserDto {
      @IsEmail()
      email: string;
    }
    
    // ❌ Bad: Contains business logic
    class CreateUserDto {
      toEntity(): User {} // Forbidden
    }
    

    Separate Entity and DTO

    Never return Entity directly; always convert to DTO.

    • Request: CreateInput, UpdateInput (GraphQL) / CreateDto, UpdateDto (REST)
    • Response: Type definition or plain object

    Error Handling

    Domain-Specific Exception Filter

    Each domain has its own Exception Filter.

    @Module({
      providers: [
        {
          provide: APP_FILTER,
          useClass: UserExceptionFilter,
        },
      ],
    })
    

    Explicit Error Throwing

    Always throw Exception explicitly in all error situations.

    • REST: Use HttpException series
    • GraphQL: Use GraphQLError or custom error
    • Forbid implicit null/undefined returns
    • Error messages should be understandable by users
    Recommended Servers
    Vercel Grep
    Vercel Grep
    Astro Docs
    Astro Docs
    Svelte
    Svelte
    Repository
    kubrickcode/workflow-toolkit
    Files