# Правила локальной разработки

> **Обязательно к прочтению перед началом работы!**

---

## Инструменты

### MCP серверы
- **Serena** — для работы с кодом (символьная навигация, редактирование)
- **Context7** — для получения актуальной документации по библиотекам

Используй эти инструменты для эффективной работы с кодовой базой.

---

## Локальное окружение

### Порты
| Сервис | Порт |
|--------|------|
| Frontend (React) | 4000 |
| Backend (NestJS) | 4001 |
| PostgreSQL | 5432 |

### База данных
PostgreSQL поднимается в Docker. Файл `docker-compose.yml` в корне проекта.

```bash
# Запуск БД
docker-compose up -d postgres
```

---

## Правила работы

### 1. Никогда не запускай сервисы самостоятельно

**ЗАПРЕЩЕНО** запускать `npm run dev`, `npm start` и подобные команды.

**Вместо этого:**
1. Убедись, что команда запуска есть в `package.json`
2. Если команды нет — создай её
3. Попроси пользователя запустить:

```
Запусти, пожалуйста:
cd backend && npm run dev
```

### 2. Тестирование — только ручное

После завершения задачи:
1. Опиши сценарии для проверки
2. Попроси пользователя проверить вручную
3. Дождись фидбека

**Формат:**
```
Готово! Проверь, пожалуйста:

1. Открой http://localhost:4000
2. Нажми кнопку "Создать идею"
3. Заполни форму и сохрани
4. Убедись, что идея появилась в списке

Напиши, если что-то не работает.
```

### 3. Работа поэтапно

Делай работу **небольшими итерациями**:

1. **Один этап = одна логическая единица**
   - Один endpoint
   - Один компонент
   - Одна фича

2. **После каждого этапа:**
   - Сообщи что сделано
   - Дай сценарий проверки
   - Дождись подтверждения

3. **Не делай сразу много:**
   - ❌ Весь CRUD за раз
   - ✅ Сначала GET, проверили, потом POST, проверили...

### 4. Команды в package.json

Все команды запуска должны быть в `package.json`:

```json
// backend/package.json
{
  "scripts": {
    "dev": "nest start --watch",
    "build": "nest build",
    "start:prod": "node dist/main"
  }
}

// frontend/package.json
{
  "scripts": {
    "dev": "vite --port 4000",
    "build": "vite build",
    "preview": "vite preview"
  }
}
```

---

## Чеклист перед началом работы

- [ ] Прочитал CONTEXT.md
- [ ] Прочитал ROADMAP.md (понял текущую фазу)
- [ ] Понял задачу
- [ ] Готов работать поэтапно
- [ ] Помню: не запускаю сервисы сам, прошу пользователя

---

## Пример правильного workflow

```
Пользователь: Сделай endpoint для получения списка идей

Агент:
1. Читает документацию через Context7 (NestJS, TypeORM)
2. Использует Serena для навигации по коду
3. Создаёт endpoint GET /api/ideas
4. Сообщает:

   "Создал endpoint GET /api/ideas.

   Запусти backend:
   cd backend && npm run dev

   Проверь:
   curl http://localhost:4001/api/ideas

   Должен вернуться пустой массив: { data: [], meta: {...} }"

5. Ждёт фидбек
6. Переходит к следующему этапу
```
