# Правила локальной разработки > **Обязательно к прочтению перед началом работы!** --- ## Инструменты ### 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. Переходит к следующему этапу ```