# nestjs-best-practices

Скилл задаёт агенту правила NestJS: модули, области видимости провайдеров, фильтры исключений, DTO-валидация и Drizzle ORM.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3800 установок · ★ 363
- Автор: giuseppe-trisciuoglio
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/giuseppe-trisciuoglio/developer-kit/tree/HEAD/plugins/developer-kit-typescript/skills/nestjs-best-practices/SKILL.md
- Обновлён: 2026-09-10
- HTML: https://affpapa.org/nevibecode/skills/giuseppe-trisciuoglio-nestjs-best-practices

## Что делает

Скилл подключается к агенту и подсовывает ему свод правил по NestJS. Внутри шесть разделов: модульная архитектура, внедрение зависимостей, жизненный цикл запроса, обработка ошибок, валидация и работа с базой через Drizzle ORM. К каждому разделу приложен файл с деталями — например, `references/arch-module-boundaries.md` или `references/db-drizzle-patterns.md`.

Правила жёсткие. Модуль на каждую доменную фичу, экспорт только того, что нужно снаружи. `forwardRef()` разрешён как последнее средство, а лучше перестроить модули. Область видимости по умолчанию — `DEFAULT`, `REQUEST` и `TRANSIENT` только с обоснованием. `ValidationPipe` включается глобально с `transform: true` и `whitelist: true`, все свойства DTO получают декораторы `class-validator`. Клиент Drizzle оборачивается в инжектируемый провайдер, запросы к базе уходят из контроллеров в репозитории.

Есть отдельная таблица «делай / не делай» и разбор примера с модулем `Product`: модуль, DTO, сервис с доменным исключением, проверка регистрации через `grep` и `npx jest`. Скилл работает с `Read`, `Write`, `Edit`, `Glob`, `Grep` и `Bash`. Учтите: `REQUEST`-провайдер тянет за собой всех зависимых — это повод перепроверить граф зависимостей перед тем, как включать его в сервисе с общим состоянием.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add giuseppe-trisciuoglio/developer-kit --skill nestjs-best-practices -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/nestjs-best-practices/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/nestjs-best-practices/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add giuseppe-trisciuoglio/developer-kit --skill nestjs-best-practices -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/nestjs-best-practices/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add giuseppe-trisciuoglio/developer-kit --skill nestjs-best-practices -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/nestjs-best-practices/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install giuseppe-trisciuoglio/developer-kit nestjs-best-practices
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/nestjs-best-practices/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add giuseppe-trisciuoglio/developer-kit --skill nestjs-best-practices -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/giuseppe-trisciuoglio/developer-kit --path plugins/developer-kit-typescript/skills/nestjs-best-practices
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/nestjs-best-practices/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add giuseppe-trisciuoglio/developer-kit --skill nestjs-best-practices -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/giuseppe-trisciuoglio/developer-kit/tree/HEAD/plugins/developer-kit-typescript/skills/nestjs-best-practices/SKILL.md

## Когда брать
- разложить доменную фичу по модулям вместо свалки в `AppModule`
- выбрать область видимости провайдера и не утащить `REQUEST` куда не надо
- сделать единый формат ошибок через фильтр исключений
- закрыть вход валидацией DTO вместо ручных проверок в контроллере
- вынести запросы Drizzle из контроллеров в репозиторий

## Примеры запросов агенту
- Разбей фичу Product на модуль, сервис и репозиторий по правилам скилла
- Проверь мой модуль на антипаттерны NestJS и подскажи, что перестроить
- Подключи Drizzle ORM как инжектируемый провайдер и убери запросы из контроллера

## Похожие
- [nestjs](https://affpapa.org/nevibecode/rules/nestjs.md) — правило · ★ 40418
- [nestjs-expert](https://affpapa.org/nevibecode/skills/httpsgithubcomjeffallan-nestjs-expert.md) — скилл · 5900 установок
- [nestjs-patterns](https://affpapa.org/nevibecode/skills/nestjs-patterns.md) — скилл · 5000 установок
- [nestjs-modular-monolith](https://affpapa.org/nevibecode/skills/nestjs-modular-monolith.md) — скилл · 329 установок
- [openapi-to-application-nodejs-nestjs](https://affpapa.org/nevibecode/plugins/openapi-to-application-nodejs-nestjs.md) — плагин · ★ 40418
- [drizzle-orm](https://affpapa.org/nevibecode/skills/drizzle-orm.md) — скилл · 1000 установок

## Другие версии с тем же именем
- [nestjs-best-practices · kadajett](https://affpapa.org/nevibecode/skills/nestjs-best-practices.md) — 30400 установок

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
