kadajett

nestjs-best-practices

15
0
# Install this skill:
npx skills add Kadajett/agent-nestjs-skills

Or install specific skill: npx add-skill https://github.com/Kadajett/agent-nestjs-skills

# Description

NestJS best practices and architecture patterns for building production-ready applications. This skill should be used when writing, reviewing, or refactoring NestJS code to ensure proper patterns for modules, dependency injection, security, and performance.

# SKILL.md


name: nestjs-best-practices
description: NestJS best practices and architecture patterns for building production-ready applications. This skill should be used when writing, reviewing, or refactoring NestJS code to ensure proper patterns for modules, dependency injection, security, and performance.
license: MIT
metadata:
author: Kadajett
version: "1.1.0"


NestJS Best Practices

Comprehensive best practices guide for NestJS applications. Contains 40 rules across 10 categories, prioritized by impact to guide automated refactoring and code generation.

When to Apply

Reference these guidelines when:

  • Writing new NestJS modules, controllers, or services
  • Implementing authentication and authorization
  • Reviewing code for architecture and security issues
  • Refactoring existing NestJS codebases
  • Optimizing performance or database queries
  • Building microservices architectures

Rule Categories by Priority

Priority Category Impact Prefix
1 Architecture CRITICAL arch-
2 Dependency Injection CRITICAL di-
3 Error Handling HIGH error-
4 Security HIGH security-
5 Performance HIGH perf-
6 Testing MEDIUM-HIGH test-
7 Database & ORM MEDIUM-HIGH db-
8 API Design MEDIUM api-
9 Microservices MEDIUM micro-
10 DevOps & Deployment LOW-MEDIUM devops-

Quick Reference

1. Architecture (CRITICAL)

  • arch-avoid-circular-deps - Avoid circular module dependencies
  • arch-feature-modules - Organize by feature, not technical layer
  • arch-module-sharing - Proper module exports/imports, avoid duplicate providers
  • arch-single-responsibility - Focused services over "god services"
  • arch-use-repository-pattern - Abstract database logic for testability
  • arch-use-events - Event-driven architecture for decoupling

2. Dependency Injection (CRITICAL)

  • di-avoid-service-locator - Avoid service locator anti-pattern
  • di-interface-segregation - Interface Segregation Principle (ISP)
  • di-liskov-substitution - Liskov Substitution Principle (LSP)
  • di-prefer-constructor-injection - Constructor over property injection
  • di-scope-awareness - Understand singleton/request/transient scopes
  • di-use-interfaces-tokens - Use injection tokens for interfaces

3. Error Handling (HIGH)

  • error-use-exception-filters - Centralized exception handling
  • error-throw-http-exceptions - Use NestJS HTTP exceptions
  • error-handle-async-errors - Handle async errors properly

4. Security (HIGH)

  • security-auth-jwt - Secure JWT authentication
  • security-validate-all-input - Validate with class-validator
  • security-use-guards - Authentication and authorization guards
  • security-sanitize-output - Prevent XSS attacks
  • security-rate-limiting - Implement rate limiting

5. Performance (HIGH)

  • perf-async-hooks - Proper async lifecycle hooks
  • perf-use-caching - Implement caching strategies
  • perf-optimize-database - Optimize database queries
  • perf-lazy-loading - Lazy load modules for faster startup

6. Testing (MEDIUM-HIGH)

  • test-use-testing-module - Use NestJS testing utilities
  • test-e2e-supertest - E2E testing with Supertest
  • test-mock-external-services - Mock external dependencies

7. Database & ORM (MEDIUM-HIGH)

  • db-use-transactions - Transaction management
  • db-avoid-n-plus-one - Avoid N+1 query problems
  • db-use-migrations - Use migrations for schema changes

8. API Design (MEDIUM)

  • api-use-dto-serialization - DTO and response serialization
  • api-use-interceptors - Cross-cutting concerns
  • api-versioning - API versioning strategies
  • api-use-pipes - Input transformation with pipes

9. Microservices (MEDIUM)

  • micro-use-patterns - Message and event patterns
  • micro-use-health-checks - Health checks for orchestration
  • micro-use-queues - Background job processing

10. DevOps & Deployment (LOW-MEDIUM)

  • devops-use-config-module - Environment configuration
  • devops-use-logging - Structured logging
  • devops-graceful-shutdown - Zero-downtime deployments

How to Use

Read individual rule files for detailed explanations and code examples:

rules/arch-avoid-circular-deps.md
rules/security-validate-all-input.md
rules/_sections.md

Each rule file contains:
- Brief explanation of why it matters
- Incorrect code example with explanation
- Correct code example with explanation
- Additional context and references

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md

# README.md

NestJS Best Practices

πŸ“– For Humans <3

A structured repository for creating and maintaining NestJS Best Practices optimized for agents and LLMs.

Installation

Install this skill using add-skill:

# GitHub shorthand
npx add-skill Kadajett/agent-nestjs-skills

# Install globally (available across all projects)
npx add-skill Kadajett/agent-nestjs-skills --global

# Install for specific agents
npx add-skill Kadajett/agent-nestjs-skills -a claude-code -a cursor

Supported Agents

  • Claude Code
  • OpenCode
  • Codex
  • Cursor
  • Antigravity
  • Roo Code

Structure

  • rules/ - Individual rule files (one per rule)
  • _sections.md - Section metadata (titles, impacts, descriptions)
  • _template.md - Template for creating new rules
  • area-description.md - Individual rule files
  • scripts/ - Build scripts and utilities
  • metadata.json - Document metadata (version, organization, abstract)
  • AGENTS.md - Compiled output (generated)

Getting Started

  1. Install dependencies:
    bash cd scripts && npm install

  2. Build AGENTS.md from rules:
    bash npm run build # or ./scripts/build.sh

Creating a New Rule

  1. Copy rules/_template.md to rules/area-description.md
  2. Choose the appropriate area prefix:
  3. arch- for Architecture (Section 1)
  4. di- for Dependency Injection (Section 2)
  5. error- for Error Handling (Section 3)
  6. security- for Security (Section 4)
  7. perf- for Performance (Section 5)
  8. test- for Testing (Section 6)
  9. db- for Database & ORM (Section 7)
  10. api- for API Design (Section 8)
  11. micro- for Microservices (Section 9)
  12. devops- for DevOps & Deployment (Section 10)
  13. Fill in the frontmatter and content
  14. Ensure you have clear examples with explanations
  15. Run the build script to regenerate AGENTS.md

Rule File Structure

Each rule file should follow this structure:

---
title: Rule Title Here
impact: MEDIUM
impactDescription: Optional description
tags: tag1, tag2, tag3
---

## Rule Title Here

Brief explanation of the rule and why it matters.

**Incorrect (description of what's wrong):**

```typescript
// Bad code example

Correct (description of what's right):

// Good code example

Optional explanatory text after examples.

Reference: NestJS Documentation

File Naming Convention

  • Files starting with _ are special (excluded from build)
  • Rule files: area-description.md (e.g., arch-avoid-circular-deps.md)
  • Section is automatically inferred from filename prefix
  • Rules are sorted alphabetically by title within each section
  • IDs (e.g., 1.1, 1.2) are auto-generated during build

Impact Levels

Level Description
CRITICAL Violations cause runtime errors, security vulnerabilities, or architectural breakdown
HIGH Significant impact on reliability, security, or maintainability
MEDIUM-HIGH Notable impact on quality and developer experience
MEDIUM Moderate impact on code quality and best practices
LOW-MEDIUM Minor improvements for consistency and maintainability

Scripts

  • npm run build (in scripts/) - Compile rules into AGENTS.md

Contributing

When adding or modifying rules:

  1. Use the correct filename prefix for your section
  2. Follow the _template.md structure
  3. Include clear bad/good examples with explanations
  4. Add appropriate tags
  5. Run the build script to regenerate AGENTS.md
  6. Rules are automatically sorted by title - no need to manage numbers!

Acknowledgments

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.