Перед ручной правкой проверьте владельца файла. Генератор обновляет часть исходников по модели, а файлы для вашей логики создаёт только при отсутствии. От этого зависит результат следующего Generate — имя каталога и язык файла сами по себе недостаточны.
project/
.admingen/ модель, lock, история, baseline
backend/ Go API, команды, миграции, OpenAPI
admin/ React admin
deploy/ локальная среда и deployment при включении
Makefile
README.md
Как увидеть будущие изменения
В Generate → Preview changes выберите файл и посмотрите действие и diff. Изменения типовой структуры вносите в Content. Бизнес-логику своего приложения пишите в custom-файлах. Эти направления можно развивать параллельно.
Что обновляет генератор
Генератор владеет реализациями API и репозиториев, выпущенными контрактами, стандартным интерфейсом сущностей и OpenAPI. Ручные изменения в таких файлах конфликтуют с повторной генерацией.
backend/internal/generated/
backend/internal/adapters/http/generated/
backend/internal/adapters/postgres/generated/
backend/openapi/
backend/migrations/
admin/src/features/<entity>/generated/
Миграции — особый случай: история уже выпущенных файлов сохраняется. Новое изменение схемы добавляется следующей миграцией, а не правкой применённой ранее.
Где писать собственный код
Эти начальные файлы создаются, только если их ещё нет. Существующие файлы сохраняются при Generate и Force:
backend/internal/custom/app/
backend/internal/custom/<entity>/
admin/src/features/<entity>/custom/
admin/custom/vite.ts
Так же сохраняются go.mod и go.sum в backend, package.json и package-lock.json в admin. Вы можете добавлять зависимости, но обязательные версии, scripts и параметры Go-модуля должны соответствовать требованиям генератора. Generate не запускает за вас npm install или go get.
Корневой .gitignore также создаётся только при отсутствии и затем принадлежит вам. Его можно дополнять под проект; шаблон исключает /admin/node_modules/.
Кому принадлежат файлы deploy
При включённом развёртывании deploy/control и deploy/generated/** обновляются генератором. Профили UI находятся в deploy/generated/environments/**. Custom-переопределения в deploy/custom/environments/** создаются при отсутствии и сохраняются при повторной генерации. Полные ручные конфигурации в deploy/environments/** и локальное состояние в deploy/.state/** принадлежат оператору. Они хранят настройки и постоянные данные; Generate их не очищает.
При смене CI-провайдера старые специально отмеченные файлы удаляются только при совпадении сохранённого хеша. Если такой файл меняли вручную, возникает конфликт — даже с Force. Удаление конфигурации окружения само по себе не останавливает работающий сервер.
Как разрешить конфликт
Посмотрите diff и определите, что было изменено. Настройку стандартного поведения перенесите в модель, логику конкретного приложения — в custom. Прежде чем разрешать перезапись, сохраните нужные правки.
Не удаляйте lock, чтобы убрать сообщение о конфликте: без него теряется информация, по которой проверяется владение файлами.
Подробности применения — в Generate, предыдущие результаты — в History, способы расширения — в руководстве по custom-зонам.