# Вечерний детектив — правила работы агента ## Структура - `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` во фронтенде и соответствующую генерацию в бэкенде. Для задач, затрагивающих `evening_detective_frontend`, обязательный стандарт кода находится в [`evening_detective_frontend/docs/FRONTEND_CODE_STANDARD.md`](evening_detective_frontend/docs/FRONTEND_CODE_STANDARD.md); это единственный источник правил фронтенда. ## Работа со списком задач - Команды взаимодействия с агентом описаны в `docs/agent/README.md`. - Активные задачи находятся в `docs/agent/TASKS.md`, архив завершённых — в `docs/agent/COMPLETED_TASKS.md`; не создавай task-файлы в дочерних репозиториях. - Используй только две канонические команды из `docs/agent/README.md`: `Новая задача:` и `Выполнить задачу:`. - Для `Новая задача:` задавай необходимые уточняющие вопросы итеративно, пока задача не станет понятной: определены цель, границы, критерии готовности, проверка, ограничения и следующий шаг. До этого не добавляй её в `TASKS.md`; после подтверждения полноты добавь со следующим ID и статусом `TODO`. Код не меняй. - Для `Выполнить задачу:` сначала проверь полноту требований и задай вопросы только при блокирующей неоднозначности. - Простую задачу выполняй без отдельного плана. Для обычной задачи составь короткий внутренний план. Для сложной или рискованной задачи сначала покажи план пользователю и дождись подтверждения. - Делегируй только независимое исследование или ревью, когда это сокращает риск или время; последовательную маленькую задачу выполняй сам. - В процессе: изучи текущий flow и callers, внеси минимальный diff, после каждого существенного этапа запускай релевантную проверку, исправь ошибки и обнови статус и результат в `TASKS.md`. После перевода задачи в `DONE` перенеси её в `docs/agent/COMPLETED_TASKS.md`. - После любого действия сообщи ID задачи и результат; коммиты и push не выполняй.