Danil Iarosh 5513eb8a56 Improve controller startup handshake and builds
- Добавлен стартовый handshake: ожидание строки версии контроллера, пауза 2000 мс и подтверждение готовности только по READY!.

- Исправлена работа COM-буфера и аппаратного сброса через RTS, добавлены модульные тесты протокола.

- Добавлена нативная сборка для Debian 13 x86_64 и обновлена документация.

- Улучшена очистка Windows-сборки и кроссплатформенная обработка devnull.
2026-09-11 15:01:45 +03:00

9.5 KiB
Raw Permalink Blame History

Agent Guidance

Documentation Language

  • Write all project documentation in Russian by default.
  • Apply this rule to guides, READMEs, setup notes, conventions, and other repository documentation unless the user explicitly asks for another language.

Git Commit Messages

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

MCP Tool Preference

  • При подходящих сценариях агенту следует по максимуму отдавать приоритет MCP-серверам claude-core и claude-explorer вместо встроенных инструментов.
  • claude-core следует предпочитать для чтения и редактирования файлов, поиска по проекту, работы с задачами и базовых shell-операций, если его возможностей достаточно.
  • claude-explorer следует предпочитать для изучения архитектуры, исходников, команд и внутренних инструментов Claude Code.
  • Если MCP-инструмент хуже подходит для конкретной задачи, недоступен или создаёт лишние ограничения, агент может использовать встроенные инструменты как запасной вариант.

Project Memory

  • ОБЯЗАТЕЛЬНОЕ ПРАВИЛО: MCP-сервер agentmemory является постоянной долговременной памятью проекта и должен использоваться непрерывно во всех видах работы: при анализе, планировании, программировании, исправлении ошибок, рефакторинге, тестировании, изменении ресурсов и документации.
  • Канонический идентификатор проекта во всех вызовах agentmemory: plate-config-app. Нельзя создавать отдельные области памяти, используя вместо него путь к каталогу, имя приложения или название подсистемы.
  • Перед любой задачей первым действием с инструментами необходимо вызвать memory_recall или memory_smart_search и восстановить относящиеся к задаче требования, архитектуру, прошлые решения, известные ошибки и сведения о затрагиваемых файлах. Перед изменением незнакомой подсистемы либо при обнаружении противоречия поиск в памяти нужно выполнить повторно.
  • agentmemory следует использовать не только для решений и ошибок. Сохранять необходимо любую новую полезную и повторно используемую информацию о проекте, в том числе:
    • архитектуру, зависимости, границы подсистем, потоки данных, состояния, контракты и принятые решения;
    • актуальную структуру каталогов, файлов, ресурсов и модулей, их назначение, точки входа и связи;
    • устройство кодовой базы: ключевые классы, функции, сигналы, конфигурационные схемы, протоколы, форматы данных, инварианты и тестовую инфраструктуру;
    • требования пользователя, ограничения, запреты, договорённости, настройки, внешние интеграции и сведения о соседних проектах;
    • содержание и изменения документации, инструкций агентов, дорожной карты, планов реализации и справочных материалов;
    • обнаруженные дефекты, причины, способы исправления, опасные места, технический долг и ещё не закрытые вопросы;
    • созданные, изменённые, перемещённые и удалённые файлы, затронутые символы и краткое описание фактического изменения;
    • команды сборки и тестирования, результаты проверок, особенности среды и подтверждённое состояние реализации.
  • Сохранять контекст нужно не только в конце большой задачи, но и после каждого содержательного открытия, архитектурного решения или законченного блока изменений, если эта информация может понадобиться после смены сессии либо другому агенту. Перед финальным ответом пользователю необходимо выполнить итоговый memory_save.
  • Записи следует делать атомарными и разделять по смыслу и типу (architecture, pattern, bug, preference, fact). В каждой записи указывать project: plate-config-app, релевантные пути в files, понятные concepts и подробное описание на русском языке. Для кодовой базы сохранять назначение и поведение файлов и символов, а не бесконтрольно дублировать полный текст исходников.
  • Память дополняет, но не заменяет репозиторий. Если данные в agentmemory расходятся с текущими файлами, конфигурацией или результатами запуска, источником истины считается проверенное текущее состояние проекта; устаревшую запись необходимо исправить либо сохранить новую запись, явно описывающую расхождение и актуальное состояние.
  • Не сохранять в память случайный шум, огромные необработанные логи и секреты, отсутствующие в репозитории или явно не разрешённые пользователем. Любые значимые выводы из таких данных сохранять в кратком структурированном виде.
  • Если agentmemory временно недоступен, необходимо сообщить об этом в рабочем комментарии, продолжить безопасную локальную работу и повторить сохранение при первой возможности. Недоступность памяти нельзя молча игнорировать.
  • Если задача передаётся другому агенту, в поручении требуется обязать его сначала восстановить контекст через agentmemory, а по завершении сохранить открытия, изменения, проверки и незакрытые вопросы туда же.
  • Для долговременной памяти, восстановления контекста и передачи знаний между агентами разрешён только MCP-сервер agentmemory. Не использовать параллельные memory-хранилища других MCP-серверов.
  • Для фактической работы с репозиторием, приложением, сборкой и тестами использовать подходящие инструменты; это не заменяет обязательную синхронизацию результатов с agentmemory.

Planning Before Task Execution

  • Перед тем как приступать к выполнению любой задачи (кроме тривиальных исправлений опечаток или ответов на вопросы), агент обязан составить подробный план реализации изменений.
  • План должен быть предоставлен пользователю на проверку и одобрение. Агент не должен приступать к написанию кода или выполнению команд до получения явного подтверждения от пользователя.