41 lines
4.1 KiB
Markdown
41 lines
4.1 KiB
Markdown
# Инструкции агентов для `preland`
|
||
|
||
Область действия — репозиторий `preland/`. Общие правила рабочей области находятся в
|
||
[AGENTS.md](../AGENTS.md) и [CLAUDE.md](../CLAUDE.md); канонический процесс и каталог ролей —
|
||
[в общей политике](../.known-base/Соглашения/Процесс%20командной%20разработки%20и%20каталог%20ролей.md).
|
||
Этот файл и [CLAUDE.md](CLAUDE.md) содержат одинаковые локальные правила; обновлять их вместе.
|
||
|
||
## Перед работой
|
||
|
||
- Прочитать [README.md](README.md), [заметку проекта](../.known-base/Проекты/Преленд%20—%20anton-preland.md),
|
||
а для выката — `.gitea/workflows/deploy.yml` и единственный `config.json`.
|
||
- Проверить состояние ветки и чужие изменения в `preland/`; изменения API сайта согласовать
|
||
с его контрактом и инструкциями `api/`.
|
||
|
||
## Локальные ограничения
|
||
|
||
- Преленд — PHP без фреймворка и сборки; `Yii::t` реализован локальной заглушкой `i18n.php`.
|
||
Сохранять существующие компоненты и передачу меток трафика на сайт.
|
||
- Загрузка идёт на `POST /api/images/public/create` с `file` и случайным `client_key`,
|
||
переход — через `/api/images/public/claim?key=…`. Ключ одноразовый, срок 30 минут;
|
||
переход напрямую на `/public/upscale` не заменяет передачу владельца через claim.
|
||
- `host` задаёт сайт назначения; HTTPS необходим для `crypto.randomUUID()`.
|
||
Не обходить серверные правила доступа к загрузке и результату обработки.
|
||
- Рабочий `config.json` на каждом хостинге настраивает владелец. Деплой не имеет
|
||
права перезаписывать его значений. При появлении новой обязательной UTM workflow
|
||
получает текущий хостовый конфиг и меняет только ключи, которые прямо
|
||
согласованы в задаче. Иные значения, включая уже настроенные UTM, остаются
|
||
байт-в-байт прежними. Для #274 `bin/ensure-focus-config.php` — явное
|
||
исключение: он задаёт только новый `focus=face` (default и rnd). После каждого
|
||
такого выпуска фактический stage-config следует забрать и зафиксировать в Git.
|
||
`requisites.html` также живёт только на хостинге и не перезаписывается. Не
|
||
создавать target-specific конфиги или `config.json.example`.
|
||
- Коммит в `main` запускает FTP-автодеплой на все цели workflow; откат через `git revert`
|
||
также запускает выкат. Коммит, push и изменения хостинга — только по прямому поручению.
|
||
- Проверки кода и браузера проводить в Docker без установки ПО на хост.
|
||
Проверка загрузки по боевому адресу вызывает реальную обработку; выполнять её только
|
||
в согласованном окружении, не публиковать ключи загрузок и FTP-секреты.
|
||
|
||
План, журнал и база знаний ведутся в корне рабочей области по общим правилам. Ссылки на
|
||
политику и документацию не подключают MCP и не дают разрешения на публикацию или выкат.
|