Files
autodesk/AGENTS.md

11 KiB
Raw Permalink Blame History

AGENTS.md

Назначение проекта

Этот репозиторий содержит аудит, архитектуру, исходный код, тесты, runtime evidence и документацию миграции корпоративной экосистемы Autodesk AutoCAD Plant 3D 2019 на Autodesk AutoCAD Plant 3D 2026.

Конечная цель — функционально эквивалентная рабочая схема Plant 3D 2026: корпоративный Launcher, локальная доставка и активация пакетов, managed плагины, команды, Ribbon, Plant project integration, DataLinks, Ortho, аннотации, обновление, диагностика и rollback. Миграция не считается завершённой после успешной компиляции: необходима runtime-проверка реальных сценариев в Plant 3D 2026.

Связанные репозитории

  • основной Autodesk-репозиторий: C:\dev\autodesk;
  • Launcher Next: C:\dev\launcher-next;
  • legacy launcher (read-only): C:\dev\launcher\git, C:\dev\p_serv_starter;
  • legacy P_Rec_Annot (read-only): C:\dev\autodesk\link\P_Rec_Annot\v1.0.4\repo.

Legacy и deployed-файлы нельзя изменять без отдельного прямого задания.

Целевая платформа и принцип миграции

  • Autodesk AutoCAD Plant 3D 2026, series R25.1, Windows x64, .NET 8;
  • использовать реальные Autodesk 2026 managed assemblies;
  • managed package загружается локально, не напрямую с UNC;
  • Autodesk DLL нельзя коммитить, помещать в package/fixture или публиковать.

Переносится функциональное поведение, а не историческая структура файлов. Не воспроизводить без отдельного доказательства 20 последовательных NETLOAD, legacy LISP bootstrap, OrthoLoader.dll, загрузку с сети или прежние workaround. Предпочтительная цепочка:

Launcher Next → versioned local package → один managed entry assembly → internal dependencies → commands and Ribbon.

Статус legacy-команд

Ни одна активная команда Plant 3D 2019 не исчезает молча. Для каждой команды фиксируется ровно один статус: IMPLEMENTED, RUNTIME_VERIFIED, REPLACED_WITH_NATIVE, RETIRED_APPROVED или BLOCKED_WITH_REASON. Aliases сохраняются, пока их удаление не утверждено отдельно.

Runtime уровни

Smoke проверяет assembly load, регистрацию команд, Plant context, Ribbon, отсутствие необработанных исключений и отсутствие записи в DWG.

DryRun проверяет реальные Plant data, Ortho/sheet/view definitions, DataLinks, Plant objects, детерминированный план и отсутствие записи в DWG/project DB.

Apply разрешается только отдельным явным заданием: write guard, ограниченная DWG transaction, тестовая копия проекта, baseline, rollback/UNDO, duplicate protection и runtime evidence обязательны. Apply нельзя включать только локальной конфигурацией.

Runtime важнее предположений

Build и unit tests не доказывают Autodesk integration. Для RUNTIME_VERIFIED необходимы фактические результаты: команда, module path, DBMOD, Ribbon, DataLinks, Ortho status, telemetry и состояние файлов после закрытия. Не выдумывать UI evidence: использовать null, NOT VERIFIED или BLOCKED WITH REASON.

На тестовой машине реальный Plant 3D запуск разрешён, если он входит в задачу и есть test branch, локальный fixture, пройденные build/tests, rollback и нет production deploy. Не создавать искусственный review-gate перед Process.Start. Остановка допустима лишь после завершения доступной части работы и при конкретном внешнем blocker: установка, ОС, права, Autodesk runtime, fixture или необходимость production-данных.

Test fixtures и отсутствие записи

Fixtures создаются вне Git, например <TEST_FIXTURE_ROOT>. Ortho fixture — настоящий Plant project с Pipe, DataLinks row, line group, Ortho drawing, Ortho viewport и source-model connection; обычный AutoCAD viewport не годится. Production DWG/project использовать нельзя без прямого разрешения.

Нельзя коммитить DWG, DCF, Project.xml с runtime-data, project DB, Ortho generated files или реальные engineering values.

Для Smoke/DryRun проверять DBMOD до/после, SHA-256 содержательных project files, отсутствие непредусмотренных transactions/DCF/project-metadata writes. LastWriteTime недостаточен. Отделять служебные Plant cache/session files от содержательных данных.

Ribbon, механика и evidence

Ribbon — часть продукта: проверять tab, panel, button, command binding, stable IDs, отсутствие дубликатов при документах/workspace/reinitialization. Команда может быть отдельно рабочей, но plugin slice не завершён без Ribbon evidence или отдельного UI defect.

Документировать каждую runtime-цепочку: component/project/class/method, input/output, Autodesk transaction mode, writes, telemetry, failure code и rollback action. Документация соответствует фактическому коду.

Evidence содержит только проверенные значения. Не добавлять username, permit, полный environment, real project paths/line numbers/ObjectId/RowId/properties, полные logs, local manifest или startup scripts. Путь fixture заменять на <TEST_FIXTURE_ROOT>.

Warnings и Git

Известный MSB3277 WindowsBase 4.0.0.0/8.0.0.0 допустим только при полном совпадении с ранее зафиксированным warning. Новые warnings исследовать; не подавлять NoWarn без причины.

Запрещены force push, amend/rebase опубликованной истории, push binaries, изменение неизвестного remote и production deployment из test branch. Перед commit выполнять:

git diff --check
git status --short
git diff --cached --check

Не смешивать Launcher defect, plugin defect, runtime evidence и unrelated formatting в одном commit.

Definition of Done

Срез завершён, когда реализованы код, build/tests, валидный package и требуемый runtime-сценарий; записаны фактические результаты; выполнен rollback; fixture и production изолированы; механика документирована; ветка опубликована обычным push.

Общая карта проекта

Каноническая общая карта проекта находится в Google Drive: https://drive.google.com/drive/folders/1avnR0V8q7y5pfWRYwB6LPBEEyfpN7PpV. Локальная синхронизированная копия, если она доступна, определяется только переменной среды PHIM_PLANT3D_PROJECT_MAP_ROOT; её путь не хардкодить.

Перед работой над архитектурой, миграцией или runtime-сценарием обязательно прочитать доступные индекс/обзор карты, целевую архитектуру и migration status, индекс runtime evidence, а также записи карты для затрагиваемых Launcher и P_Rec_Annot. Затем сверить их с локальными AGENTS.md, релевантными tracked документами, текущим кодом и тестами.

Источники истины имеют следующий приоритет: фактическое runtime evidence; текущий код, tests и tracked configuration на проверенном Git HEAD; tracked документация репозитория; общая карта проекта. Внешняя карта описывает и связывает работу, но не является build/runtime dependency и не переопределяет текущий код или runtime evidence.

Проверять свежесть каждой используемой записи карты по фактическим git rev-parse HEAD, ветке и привязанному runtime evidence. Если карта или её локальная копия недоступна, фиксировать PROJECT_MAP_UNAVAILABLE; если зафиксированные commit/runtime status не совпадают с фактическими — PROJECT_MAP_STALE. Эти статусы не разрешают выдумывать evidence: продолжать по доступным локальным источникам и явно сообщать расхождение.

Системные инварианты сохраняются: Launcher доставляет versioned local package с одним managed entry assembly и без Autodesk DLL; P_Rec_Annot подтверждает реальное Plant/Ortho/DataLinks поведение runtime evidence, а не только build или tests. После изменения архитектуры либо runtime-статуса в отчёте указывать конкретные документы общей карты, которые требуют обновления (архитектура, статус миграции, evidence index и запись затронутой подсистемы); не заявлять, что они уже обновлены, без фактического изменения.