# Вечерний детектив — правила работы агента ## Структура - `evening_detective_server/` — отдельный Go-репозиторий бэкенда. - `evening_detective_frontend/` — отдельный Vue/TypeScript-репозиторий фронтенда. - `email_server/` — устаревающая инфраструктура собственного почтового сервера. - `.agents/` и `.codex/` — локальная конфигурация среды; не менять без явного запроса. ## Правила 1. Сначала изучай существующий поток и используй текущие паттерны проекта. 2. Делай минимальный целевой diff; не добавляй зависимости и абстракции без необходимости. 3. Не трогай вложенные `.git` и не смешивай историю двух дочерних репозиториев. 4. Коммиты и push выполняет только пользователь. Агент никогда не коммитит и не отправляет изменения. 5. Не добавляй `.env`, ключи, пароли, сертификаты и локальные артефакты в Git. 6. После нетривиальных изменений запускай краткую релевантную проверку и сообщай результат. ## Команды проверки - Бэкенд: `cd evening_detective_server && go test ./...` - Фронтенд: `cd evening_detective_frontend && npm run type-check && npm run lint && npm run lint:css` Для изменений protobuf сначала используй существующую команду `npm run proto:gen` во фронтенде и соответствующую генерацию в бэкенде. ## Работа со списком задач - Команды взаимодействия с агентом описаны в `docs/agent/README.md`. - Единственный источник задач — `docs/agent/TASKS.md`; не создавай task-файлы в дочерних репозиториях. - Используй только две канонические команды из `docs/agent/README.md`: `Новая задача:` и `Выполнить задачу:`. - Неизвестное или неполное сообщение не изменяет файлы и не запускает код: попроси пользователя использовать каноническую команду. - Для `Новая задача:` задай только необходимые вопросы, затем добавь задачу в `TASKS.md` со следующим ID, статусом `TODO`, приоритетом, целью, критериями готовности, проверкой, ограничениями, границами задачи и следующим шагом. Код не меняй. - Для `Выполнить задачу:` сначала проверь полноту требований и задай вопросы только при блокирующей неоднозначности. - Простую задачу выполняй без отдельного плана. Для обычной задачи составь короткий внутренний план. Для сложной или рискованной задачи сначала покажи план пользователю и дождись подтверждения. - Делегируй только независимое исследование или ревью, когда это сокращает риск или время; последовательную маленькую задачу выполняй сам. - В процессе: изучи текущий flow и callers, внеси минимальный diff, после каждого существенного этапа запускай релевантную проверку, исправь ошибки и обнови статус и результат в `TASKS.md`. - После любого действия сообщи ID задачи и результат; коммиты и push не выполняй.