# OpenWC Agent Guide Эти инструкции действуют для всего репозитория, кроме поддеревьев с собственным `AGENTS.md`. ## Миссия Реализовать клиент World of Warcraft 3.3.5a build 12340 с максимально точным поведением оригинального клиента (`1:1`) и расширяемый набор инструментов авторинга внутри Godot Editor. TrinityCore/AzerothCore являются целевыми server backends. Улучшения допускаются как отдельные настраиваемые режимы; они НЕ ДОЛЖНЫ незаметно менять профиль совместимости `Blizzlike335`. ## Обязательное чтение перед работой Каждый агент ДОЛЖЕН: 1. Прочитать [`targets/README.md`](targets/README.md). 2. Прочитать файл текущей цели, указанный там как `Current target`. 3. Прочитать [`docs/README.md`](docs/README.md) и связанные с задачей нормативные документы. 4. Для renderer-задач прочитать [`RENDER.md`](RENDER.md). 5. Проверить рабочее дерево и не перезаписывать чужие изменения. 6. Перед созданием сложной подсистемы или добавлением dependency проверить [`docs/TOOLING_CATALOG.md`](docs/TOOLING_CATALOG.md), зарегистрировать найденные готовые решения и провести bounded evaluation вместо немедленного вендоринга. Если задача пользователя противоречит target-порядку, прямое указание пользователя имеет приоритет, но агент обязан сохранить архитектурные границы и отметить влияние на roadmap. ## Правила выполнения целей - Работать только над текущей целью или явно указанной пользователем задачей. - Не начинать следующий milestone, пока текущий не имеет доказательств завершения. - Не объявлять совместимость `1:1` без fixture, сравнения с оригинальным клиентом или подтверждённого protocol/server behavior. - Не смешивать render, gameplay, UI, network и server-data adapters. - Не добавлять прямую запись в production DB. - Интерактивный authoring UI реализуется только через Godot `EditorPlugin`. - Любой новый формат, публичный контракт или несовместимое решение требует обновления документации и при необходимости ADR. - Исправление дефекта должно получать regression test, когда это технически возможно. - Не писать крупную подсистему с нуля до поиска готовых libraries, reference implementations, fixtures и tooling; результат исследования фиксируется в `docs/TOOLING_CATALOG.md`. ## Метки состояния В каждом `targets/*.md` присутствует ровно одна метка: - `` — цель ещё не начата. - `` — единственная текущая цель. - `` — продолжение невозможно; причина записана в Evidence/Blockers. - `` — все критерии и проверки выполнены. Завершение подтверждается второй меткой: ```text ``` Правила метки `DONE`: 1. Все обязательные checklist-пункты отмечены. 2. Выполнены команды Verification. 3. В Evidence записаны команды, результаты и изменённые файлы. 4. Не осталось обязательных незакрытых пунктов или скрытых заглушек. 5. Обновлены `targets/README.md` и матрица функций, если применимо. Агент НЕ ДОЛЖЕН ставить `DONE` только потому, что код компилируется. Если пользователь явно принял частичный результат, статус остаётся `ACTIVE`, а принятое ограничение записывается в Evidence. ## Формат отчёта агента Финальный отчёт должен содержать: - Target ID и статус; - что изменено; - какие проверки выполнены; - fidelity evidence для поведения 3.3.5a; - оставшиеся риски или следующий незакрытый checklist item.