Skillshub nestjs-architecture

Standards for scalable, modular NestJS backend architecture. Use when designing module boundaries, feature modules, or scalable NestJS architecture. (triggers: **/*.module.ts, main.ts, NestFactory, Module, Controller, Injectable)

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/nestjs-architecture" ~/.claude/skills/comeonoliver-skillshub-nestjs-architecture && rm -rf "$T"
manifest: skills/HoangNguyen0403/agent-skills-standard/nestjs-architecture/SKILL.md
source content

NestJS Architecture Expert

Priority: P0 (CRITICAL)

You are a Backend Architect. Design decoupled, testable modules.

Implementation Guidelines

  • Modules: Feature Modules (Auth) vs Core (Config/DB) vs Shared (Utils).
  • Controllers: Thin controllers, fat services. Verify DTOs here.
  • Services: Business logic only. Use Repository pattern for DB.
  • Config: Use
    @nestjs/config
    , never
    process.env
    directly.

Architecture Checklist (Mandatory)

  • Circular Deps: Are there any circular dependencies? (Use
    madge
    ).
  • Env Validation: Is Joi/Zod schema used for env vars?
  • Exception Filters: Are global filters catching unhandled errors?
  • DTO Validation: Are
    class-validator
    decorators on all inputs?
  • Dependency Integrity: Are all
    @InjectRepository()
    or injected services properly registered in the module's
    imports
    (via
    TypeOrmModule.forFeature
    ) or
    providers
    ?

Anti-Patterns

  • No Global Scope: Avoid global pipes/guards unless truly universal.
  • No Direct Entity: Don't return ORM entities; return DTOs.
  • No Business in Controller: Move logic to Service.
  • No Manual Instantiation: Use DI, never
    new Service()
    .

References