# AGENTS.md — конвенции этого workspace

## Проект
Средний по размеру одностраничный проект: один самодостаточный deliverable
(game.html / scene.html), библиотеки только с CDN, без сборки.

## Architecture
- Код внутри файла организуй ЯВНЫМИ секциями с комментариями-заголовками:
  CONFIG / HELPERS / BACKGROUND / ENTITIES / INPUT / GAME LOOP / HUD / WIN-LOSE.
- Состояние игры — в одном объекте state (не рассыпать по глобалам).
- Константы (скорости, HP, размеры) — только в GAME_CONFIG сверху, не «магией» в коде.
- Каждая сущность (игрок, турель, пуля) — свой draw/update блок; не смешивать.

## Style (средний проект — умеренная чистота)
- Функция может быть длинной, если делает одно связное дело; НЕ дробить на
  микрофункции ради «чистоты».
- Выносить абстракцию только при третьем повторении (rule of three).
- Осмысленные имена важнее комментариев; комментарии — только «почему», не «что».
- Мёртвый код удалять сразу (неиспользуемые конфиги/функции не оставлять).

## Boundaries
- Deliverable — ОДИН файл; не создавать соседние .js/.css.
- Никогда не переписывать файл целиком на ревизиях — только точечные Edit.
- Не менять чужую секцию без необходимости: правишь физику — не трогай отрисовку.

## Workflow
- Перед работой прочитай этот файл и текущий deliverable (если существует).
- Прочитай lessons.md и snippets.md (общая память прошлых прогонов): не повторяй
  описанные там грабли, переиспользуй проверенные приёмы.
- После правки убедись, что все объявленные в GAME_CONFIG сущности реально используются.
