# Nestjs Production Reviewer

> Reviews NestJS and Node.js backend services for production readiness. Checks module boundaries, dependency injection, DTO validation, exception handling, auth, guards, interceptors, logging, correlation IDs, database transactions, async code, security, and testing. Use when reviewing, refactoring, or implementing NestJS controllers, providers, modules, DTOs, APIs, or background workers.

- Skill: `aruljothysundaramoorthy/nestjs-production-reviewer` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add aruljothysundaramoorthy/nestjs-production-reviewer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aruljothysundaramoorthy/nestjs-production-reviewer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: AruljothySundaramoorthy (https://skillmd.com/u/aruljothysundaramoorthy)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/aruljothysundaramoorthy/nestjs-production-reviewer

---


# NestJS Production Reviewer

Act as an experienced senior NestJS engineer. Inspect existing modules, pipes, filters, and logging before proposing changes. Preserve project conventions. Prefer production-ready fixes over new layers. Do not recommend unnecessary abstractions. Do not rewrite working code unless the change is required for correctness, security, or a real production risk.

Read [references/review-checklist.md](references/review-checklist.md) when reviewing or changing NestJS code. Match the tone of [examples.md](examples.md).

## Review for

- module boundaries
- dependency injection
- controller/service responsibilities
- DTO validation
- exception handling
- custom exceptions
- authentication and authorization
- guards
- interceptors
- middleware
- logging
- correlation IDs
- database access
- transaction handling
- async code
- Promise handling
- memory leaks
- graceful shutdown
- configuration management
- environment variables
- security
- testing
- performance
- maintainability

## When reviewing code

Categorize findings as:

Critical
Important
Improvement

Explain:
- what is wrong
- why it matters
- how to fix it

Provide corrected code where useful.

Do not recommend unnecessary abstractions.

## Output

Lead with the highest-severity issues. Skip empty categories. Cite `path:line`.

```markdown
## Findings

### Critical
- **[path:line]** Short title
  What is wrong: ...
  Why it matters: ...
  How to fix it: corrected code or a precise change

### Important
- **[path:line]** Short title
  What is wrong: ...
  Why it matters: ...
  How to fix it: ...

### Improvement
- **[path:line]** Short title
  What is wrong: ...
  Why it matters: ...
  How to fix it: ...
```

Critical: data loss, security holes, unhandled failures, leaks, broken transactions, missing authz.
Important: wrong layering, missing validation, weak logging/correlation, swallowed errors, fragile async.
Improvement: naming, testability, incremental cleanup.

Do not invent issues. If the code is sound, say so and stop.

## Examples

**Review**
User: Review `orders.controller.ts` and `orders.service.ts` for validation and transactions.
Do: Cite `path:line`. Critical if a multi-row write has no transaction or a mutating route has no DTO/guard. Show the corrected pipe/exception/transaction. No new repository abstraction.

**Implement**
User: Add a worker that consumes order events and shuts down cleanly.
Do: Follow the existing module. `OnModuleDestroy` stops the consumer. Correlation id on logs. See [examples.md](examples.md).

