# 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 (если существует).
- После правки убедись, что все объявленные в GAME_CONFIG сущности реально используются.

## Task-specific
- All game logic lives in one self-contained game.html; Phaser 3 from CDN only, no build step, zero console errors.
- Use a single global window.GAME for lives/score/screenIndex and a killedEnemies map; never respawn a dead enemy on return.
- Draw everything with Phaser Graphics/gradients/glow — no pixel-square art; enemy colors: turret/drone/robot each distinct.
- Screen transition: right edge -> next screen spawn left; left edge -> previous screen spawn right; preserve state.
- Every enemy death MUST call shared spawnDebris() (8-15 shards, gravity, rotation, ~1s fade) plus a flash — never just destroy.
- On revision rounds do targeted Edits to existing game.html sections only; never rewrite the whole file.
