63 lines
5.1 KiB
Markdown
63 lines
5.1 KiB
Markdown
# Обязательные инструкции проекта
|
||
|
||
## Язык общения
|
||
|
||
- Все ответы пользователю в чате необходимо писать только на русском языке.
|
||
- Английский язык допустим только внутри кода, имён API, идентификаторов, путей, команд и дословных технических терминов, когда перевод ухудшает точность.
|
||
|
||
## Коммиты
|
||
|
||
- Все сообщения коммитов, включая заголовок и описание, необходимо писать только на русском языке.
|
||
|
||
## Работа с Unity
|
||
|
||
- При любой работе с Unity обязательно использовать MCP-сервер `unityMCP`.
|
||
- Это правило распространяется в том числе на UI, сцены, префабы, GameObject, компоненты, ассеты, материалы, камеры, настройки проекта, консоль, компиляцию, тесты и визуальную проверку результата.
|
||
- Перед изменениями читать через `unityMCP` релевантные ресурсы и состояние Unity Editor. После изменений проверять результат через `unityMCP`, включая состояние компиляции, консоль, тесты и снимки экрана, когда это применимо.
|
||
- Не считать работу с Unity завершённой без проверки через `unityMCP`. Если сервер недоступен, явно сообщить об этом пользователю и не подменять обязательную Unity-проверку неподтверждёнными предположениями.
|
||
|
||
## DOTween
|
||
|
||
- В проекте новые `Tween` и `Sequence` не запускаются автоматически.
|
||
- После создания анимации обязательно явно вызывать `PlayForward()` или `Play()`.
|
||
- Если метод только собирает и возвращает анимацию, явный запуск обязан выполнить вызывающий код.
|
||
|
||
## Память и контекст проекта
|
||
|
||
- В любой задаче без исключений обязательно использовать MCP-сервер `agentmemory` для получения и сохранения контекста проекта.
|
||
- В начале каждой задачи запрашивать из `agentmemory` релевантную информацию до принятия архитектурных и реализационных решений.
|
||
- Использовать `agentmemory` как постоянное хранилище сведений об архитектуре, структуре папок и файлов, кодовой базе, документации, принятых решениях, соглашениях, зависимостях, известных проблемах и результатах работы.
|
||
- По мере исследования и выполнения задачи сохранять или обновлять в `agentmemory` новую существенную информацию, чтобы она была доступна в следующих задачах.
|
||
- При создании контекста решения обязательно объединять актуальное состояние репозитория и Unity Editor с информацией из `agentmemory`; не полагаться только на текущий чат.
|
||
- Перед завершением задачи фиксировать в `agentmemory` важные изменения, решения и результаты проверки.
|
||
- Если `agentmemory` недоступен, явно сообщить об этом пользователю. Попытка обратиться к `agentmemory` всё равно обязательна; задача не должна молча обходить это требование.
|
||
|
||
# Code Style
|
||
|
||
## Структура скрипта (строгий порядок)
|
||
|
||
1. `public event`
|
||
2. `public` поля
|
||
3. `[SerializeField] private` поля
|
||
4. `private` поля
|
||
5. Свойства
|
||
6. Unity-методы (`Awake` → `OnEnable` → `Start` → `Update` → `FixedUpdate` → `LateUpdate` → `OnDisable` → `OnDestroy`)
|
||
7. Публичные методы
|
||
8. Приватные методы
|
||
|
||
## Именование
|
||
|
||
| Что | Как |
|
||
|-----|-----|
|
||
| Публичные поля | `camelCase` |
|
||
| Публичные события | `PascalCase` |
|
||
| `[SerializeField] private` | `_camelCase` |
|
||
| Приватные поля | `_camelCase` |
|
||
| Свойства | `PascalCase` |
|
||
| Параметры методов | `camelCase` |
|
||
|
||
## Комментарии
|
||
|
||
- **Без `/// <summary>`**
|
||
- Комментарии только для сложной/неочевидной логики
|