121 lines
8.8 KiB
Markdown
121 lines
8.8 KiB
Markdown
# Правила работы
|
||
|
||
Это общие правила для ассистента и будущих сессий. Детали проекта — в Skill
|
||
`vanguard-remaster`; здесь только обязательный процесс.
|
||
|
||
## Общение
|
||
|
||
- Отвечай **кратко, по существу и на русском**, если не попросили другой язык.
|
||
- Не пересказывай задачу, прочитанные файлы и очевидные действия.
|
||
- Не пиши длинные вступления, заключения и отчёты по каждому шагу.
|
||
- Сообщай только: изменённые файлы, результаты проверок, важные решения и
|
||
блокеры.
|
||
- Подробные объяснения давай по запросу или если без них можно сделать
|
||
неверный вывод.
|
||
|
||
## Контекст и Skill
|
||
|
||
- Перед любой задачей по правилам, картам, способностям, ходам, состоянию
|
||
матча, архитектуре, протоколу, клиенту или тестам **загружай Skill
|
||
`vanguard-remaster`**.
|
||
- В Skill есть отдельные документы:
|
||
- `game-rules.md` — подтверждённые правила ККИ;
|
||
- `architecture.md` — фактическая архитектура и границы систем;
|
||
- `card-implementation.md` — реализация карт и эффектов;
|
||
- `workflow-and-decisions.md` — соглашения, антипаттерны и открытые вопросы.
|
||
- Перед началом работы читай `docs/SESSION-STATE.md`, затем
|
||
`docs/HANDOFF.md` и `docs/client-visual-direction.md`; при работе с
|
||
правилами — `docs/game-rules.md`, с картами — `docs/ability-implementation.md`.
|
||
- Не пересказывай в ответе то, что уже сохранено в этих документах.
|
||
|
||
## Никаких выдумок
|
||
|
||
- Не выдумывай правила игры, карты, эффекты, API, классы, пути и пакеты.
|
||
- Не считай правила других ККИ правилами этого проекта.
|
||
- Не превращай предположение в договорённость. В Skill и документах явно
|
||
разделяй: подтверждённое решение, фактическое устройство кода, предположение,
|
||
открытый вопрос.
|
||
- Перед реализацией изучай существующий код и найденные договорённости.
|
||
- Если решение не определено и от него зависит реализация — сначала спроси.
|
||
|
||
## Вопросы
|
||
|
||
- Для существенной неопределённости используй специальный инструмент
|
||
`question` (если он недоступен — задай вопрос обычным сообщением).
|
||
- Предлагай 2–4 коротких варианта с рекомендацией и возможность своего ответа.
|
||
- Дождись ответа, прежде чем принимать зависящее от него решение.
|
||
- Не спрашивай о том, что уже однозначно установлено кодом, документацией или
|
||
историей. Не прерывай работу ради мелочей.
|
||
|
||
## Изменения
|
||
|
||
- Сначала найди существующую реализацию и связанные зависимости.
|
||
- Делай минимальные изменения; не переписывай работающие системы без причины.
|
||
- Не создавай дубликаты существующих классов, эффектов, оверлеев и сервисов.
|
||
- Не меняй несвязанный код, сцены и префабы.
|
||
- Сохраняй совместимость существующих механик и контрактов.
|
||
- Учитывай побочные эффекты: пул карт, `InputLockService`, порядок событий,
|
||
скрытую информацию и авторитет сервера.
|
||
- Если ранее согласованное правило расходится с кодом, не выбирай молча:
|
||
зафиксируй расхождение и задай вопрос.
|
||
|
||
## Игровые проверки
|
||
|
||
- **Геймплей вручную проверяет пользователь.** Не запускай тестовый бой и не
|
||
объявляй игровую механику принятой по собственному прохождению.
|
||
- Автоматические проверки правил, клиентские EditMode-тесты, `validate`,
|
||
`translations check` и smoke-проверки запускать можно и нужно.
|
||
- Не заявляй об успешной проверке, если она не запускалась. Указывай, что
|
||
именно проверено, а что осталось на ручную проверку.
|
||
|
||
## Окружение
|
||
|
||
- **Не запускай `dotnet` и Docker на рабочем ПК.** Серверные тесты, `validate`
|
||
и `translations check` — только на `ssh home` / Docker.
|
||
- **Не открывай второй экземпляр Unity с тем же проектом.** Для batch-проверок
|
||
делай копию проекта без `Library`.
|
||
- `Vanguard.Rules` остаётся чистой библиотекой: без сети, БД, Orleans, Unity и
|
||
файлового I/O.
|
||
- `Vanguard.Shared` — только DTO/протоколы; `netstandard2.1`-сборка
|
||
используется Unity. При изменении протокола пересобирай и заменяй
|
||
`client/Assets/Plugins/Vanguard.Shared/Vanguard.Shared.dll`.
|
||
- Клиент не является источником истины: состояние матча, RNG и скрытые данные
|
||
остаются на сервере.
|
||
|
||
## UI и взаимодействие
|
||
|
||
- Выбор карты, круга, зоны или цели — **клик/драг по объекту на поле**, а не
|
||
список кнопок в интерфейсе.
|
||
- Кнопки — только глобальные действия и подтверждения: завершить ход, сдаться,
|
||
отмена, принять/пропустить optional, подтвердить оплату.
|
||
- Информационные оверлеи не перехватывают клики и не дублируют выбор кнопками.
|
||
- Верхний `CombatStats` strip считается допустимым HUD; world-space
|
||
Power/Shield — отложенный долг.
|
||
- Для multi-target стоимости требуется отдельный `CostPaymentOverlay`; текущая
|
||
панель «Действия» считается промежуточной реализацией, а не отменой требования.
|
||
|
||
## Карты и способности
|
||
|
||
- Каждая текстовая способность карты имеет ровно одну реализацию: `CardScript`
|
||
(`Abilities`/`Continuous`/`Activated`), общий движок или флаг данных.
|
||
- Не добавляй новую универсальную систему эффектов без подтверждённой
|
||
необходимости.
|
||
- После правок способностей проверяй весь реестр `CardScripts.Default`, тесты
|
||
правил, `validate` и `translations check`.
|
||
- Точные паттерны AUTO/ACT/CONT, стоимости, выборы целей и частые ошибки —
|
||
в Skill `card-implementation.md` и `docs/ability-implementation.md`.
|
||
|
||
## Проверки и завершение блока
|
||
|
||
После существенного блока:
|
||
|
||
1. клиентские EditMode-тесты — в копии проекта;
|
||
2. серверные тесты — на `ssh home`/Docker;
|
||
3. `validate` и `translations check`;
|
||
4. при клиентских изменениях — smoke и при необходимости standalone;
|
||
5. коммит и push.
|
||
|
||
Состояние и следующие шаги — в `docs/SESSION-STATE.md`, подробная история — в
|
||
`docs/HANDOFF.md`. Не дублируй одни и те же правила в нескольких местах:
|
||
обновляй Skill, если пользователь согласовал новое долговременное правило.
|