Files
sless/.github/copilot-instructions.md
T
Repinoid 6dc2dc69ba IoT MVP: архитектура, план реализации, лог рассуждений
- Определена архитектура managed IoT service
- Согласовано решение: RabbitMQ (MVP), потом Kafka; EMQX + CRD контроллер
- Создан подробный план для Sonnet (doc/iot-mvp-plan.md)
- Добавлено правило в copilot-instructions: лог мышления в doc/thinking/ по датам
- Полный ход рассуждений в doc/thinking/2026-04-04.md

Ключевые решения:
- IoT код в iot/ (легко вынести потом)
- CRD IoTDevice + контроллер (как все остальное в sless)
- EMQX HTTP Auth Backend для динамической аутентификации устройств
- Архитектура broker-agnostic (легко переключить на Kafka)
- Terraform: расширяем текущий provider (sless_iot_device ресурс)
2026-04-04 08:34:14 +03:00

4.5 KiB
Raw Blame History

Правила работы агента в этом проекте

ГЛАВНОЕ ПРАВИЛО

НЕ "СОВЕРШЕНСТВОВАТЬ" РАБОЧИЙ КОД БЕЗ ЯВНОГО УКАЗАНИЯ.


ЗАПРЕТ НА ВЫДУМКИ

КАТЕГОРИЧЕСКИ ЗАПРЕЩАЕТСЯ придумывать, догадываться или предполагать:

  • значения параметров, которые не видны в коде или документации
  • допустимые значения enum/ролей/типов — если не взяты из реального источника
  • поведение API, провайдеров, библиотек — если не подтверждено кодом или документацией
  • любые факты о системе, которые агент "знает" из общих соображений

Если информации нет — спросить у пользователя. Не угадывать.

Если код работает — не трогать. Никаких:

  • рефакторингов "попутно"
  • улучшений стиля
  • добавления комментариев / docstring
  • переименований переменных
  • "пока уж заодно поправлю"

Делай только то, о чём явно попросили. Ничего лишнего.


Комментарии в коде

Комментарии — обязательны:

  • В начале каждого файла при создании или правке — дата и время изменения
  • На каждой функции/методе — краткое назначение
  • На нетривиальной логике — почему сделано именно так (не "что делает", а "зачем")

Цель: любой агент в новом чате должен понять логику без дополнительных вопросов.


Темп работы

Не спешить. Перед каждым шагом — убедиться что предыдущий понят и согласован.


Документация

Всё важное фиксировать в doc/:

  • doc/architecture/ — архитектура, стек, схемы
  • doc/api/ — дизайн API
  • doc/decisions/ — принятые решения с обоснованием
  • doc/infrastructure/ — инфраструктура, кластер, сервисы
  • doc/errors/ — ошибки и как решили
  • doc/progress.md — трекер задач

Обновлять после каждого значимого изменения.


Именование

Имена должны быть уникальными и осмысленными по всему проекту:

  • имена файлов
  • имена функций/методов
  • имена переменных/констант
  • имена ресурсов (Terraform, Kubernetes и т.д.)

Цель: чтобы поиск по проекту находил нужные сущности без неоднозначности, а имя сразу отражало назначение.

Запрещены безликие и повторяющиеся имена вида handler.py, handle, data, value, temp без контекста.


Лог мышления (обязательно)

Каждый агент в каждом чате обязан вести лог своих рассуждений:

  • Папка: doc/thinking/
  • Файл: ГГГГ-ММ-ДД.md (по дате сессии)
  • В начале файла указать имя агента и модель
  • Если файл на текущую дату уже существует — дописывать в конец, добавив разделитель --- и имя агента
  • Записывать полный ход мыслей: что анализирую, какие гипотезы, что нашёл, что отбросил, к чему пришёл, почему
  • Записывать до начала действий (план) и после (результат)

Цель: пользователь должен видеть весь процесс рассуждений в читаемом виде.


Git

Коммитить и пушить после каждого завершённого этапа.