# nestjs-modular-monolith

Ведёт от анализа домена до кода: границы модулей, DDD, Clean Architecture и CQRS в одном бэкенде на NestJS.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 329 установок · ★ 7089
- Автор: Felipe Rodrigues - github.com/felipfr
- Лицензия: CC-BY-4.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/tech-leads-club/agent-skills/tree/HEAD/packages/skills-catalog/skills/(development)/nestjs-modular-monolith/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/nestjs-modular-monolith

## Что делает

Скилл превращает агента в архитектора модульного монолита на NestJS. Сначала он разбирает домен: какие бизнес-способности отдельны, где проходят bounded contexts, какие агрегаты и сущности лежат в основе. Потом спрашивает про стек — HTTP-адаптер, ORM, стиль API, монорепозиторий, линтер, авторизацию — и только после этого рисует карту модулей с контрактами связи.

Внутри три фазы: Discovery, Design, Implementation. Модули строятся слоями Clean Architecture — домен, приложение, инфраструктура, представление. Между модулями связь через события, внутри модуля прямые вызовы. CQRS подключается не всегда: скилл сначала спрашивает, есть ли в домене раздельные сценарии чтения и записи, и советует начать с простых сервисов, если их нет.

Есть жёсткие рамки. Скилл не берётся за простые CRUD API с небольшим числом эндпоинтов, за фронтенд и общие вопросы по NestJS без архитектурного контекста. Для эволюционного модульного монолита без привязки к стеку он тоже не подходит — там нужен другой скилл. Зато принципы модульности перебивают стандартные настройки NestJS, когда те расходятся с изоляцией состояния: общих таблиц базы между модулями быть не должно.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add tech-leads-club/agent-skills --skill nestjs-modular-monolith -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add tech-leads-club/agent-skills --skill nestjs-modular-monolith -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add tech-leads-club/agent-skills --skill nestjs-modular-monolith -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install tech-leads-club/agent-skills nestjs-modular-monolith
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add tech-leads-club/agent-skills --skill nestjs-modular-monolith -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/tech-leads-club/agent-skills --path 'packages/skills-catalog/skills/(development)/nestjs-modular-monolith'
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add tech-leads-club/agent-skills --skill nestjs-modular-monolith -a opencode
```

### Claude.ai

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

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/tech-leads-club/agent-skills/tree/HEAD/packages/skills-catalog/skills/(development)/nestjs-modular-monolith/SKILL.md

## Когда брать
- разложить монолит на bounded contexts с понятными границами
- спроектировать модули NestJS по слоям Clean Architecture
- настроить обмен событиями между модулями без прямых импортов
- решить, нужен ли CQRS в конкретном домене
- проложить путь от монолита к микросервисам

## Примеры запросов агенту
- Спроектируй модульный монолит на NestJS для системы заказов: разбери bounded contexts и предложи карту модулей
- Добавь модуль billing: изолированное состояние, публичный интерфейс, связь с остальными через события
- Проверь границы модулей в текущем проекте и скажи, где есть прямые импорты между ними

## Похожие
- [nestjs-expert](https://affpapa.org/nevibecode/skills/httpsgithubcomjeffallan-nestjs-expert.md) — скилл · 5900 установок
- [nestjs-patterns](https://affpapa.org/nevibecode/skills/nestjs-patterns.md) — скилл · 5000 установок
- [nestjs](https://affpapa.org/nevibecode/skills/nestjs.md) — скилл · 4200 установок
- [nestjs-code-review](https://affpapa.org/nevibecode/skills/nestjs-code-review.md) — скилл · 3800 установок
- [V3 Core Implementation](https://affpapa.org/nevibecode/skills/v3-core-implementation.md) — скилл · 1100 установок
- [openapi-to-application-nodejs-nestjs](https://affpapa.org/nevibecode/plugins/openapi-to-application-nodejs-nestjs.md) — плагин · ★ 40418

Из того же набора: [tech-leads-club/agent-skills](https://affpapa.org/nevibecode/by/tech-leads-club/agent-skills.md) — 11 карточек

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