From 85e27ff2f25928c692bbed3e1869dcbbcf10bfcb Mon Sep 17 00:00:00 2001 From: Panfilov Konstantin Date: Thu, 8 Oct 2026 13:41:52 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B8=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=86?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=B0=D0=B3=D0=B5=D0=BD=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yml | 4 ++-- AGENTS.md | 33 +++++++++++++++++++++++++++++++++ CLAUDE.md | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 AGENTS.md create mode 100644 CLAUDE.md diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 0959651..3a020db 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -3,7 +3,7 @@ name: deploy-preland # После коммита в main — заливка преленда на хостинги всех целей (FTP с TLS) и проверка страницы каждой цели. # Цель — домен со своим хостингом (список — matrix ниже): реквизиты — секреты репозитория _FTP_HOST, # _FTP_USER, _FTP_PASS (порт 21). Цели независимы: сбой одного хостинга остальные не останавливает. -# Заливаются файлы репозитория (git ls-files), кроме служебных (.gitea/, README.md, .gitignore) и тех, что живут +# Заливаются файлы репозитория (git ls-files), кроме служебных (.gitea/, README.md, AGENTS.md, CLAUDE.md, .gitignore) и тех, что живут # только на хостинге: config.json (в git его нет) и requisites.html (реквизиты заполняют на месте — пустой файл # из git их бы затёр). На хостинге ничего не удаляется: удалённое из репозитория убирать вручную. @@ -58,7 +58,7 @@ jobs: netrc=$(mktemp); list=$(mktemp) trap 'rm -f "$netrc" "$list"' EXIT printf 'machine %s login %s password %s\n' "$FTP_HOST" "$FTP_USER" "$FTP_PASS" > "$netrc" - git ls-files | grep -vE '^(\.gitea/|README\.md$|\.gitignore$|config\.json$|requisites\.html$)' > files.txt + git ls-files | grep -vE '^(\.gitea/|README\.md$|AGENTS\.md$|CLAUDE\.md$|\.gitignore$|config\.json$|requisites\.html$)' > files.txt # имя уходит в адрес ftp:// как есть — пробелы и прочее экранирование не поддерживаем if grep -q '[^A-Za-z0-9._/-]' files.txt; then echo "имена с недопустимыми символами:"; grep '[^A-Za-z0-9._/-]' files.txt; exit 1; fi # один curl на все файлы — одно соединение FTP+TLS вместо соединения на файл diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..ea912ae --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,33 @@ +# Инструкции агентов для `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.example`. +- Проверить состояние ветки и чужие изменения в `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` каждой цели и `requisites.html` живут на хостинге: не добавлять + их в git, не перезаписывать и не удалять при деплое. В репозитории — только образец конфига. +- Коммит в `main` запускает FTP-автодеплой на все цели workflow; откат через `git revert` + также запускает выкат. Коммит, push и изменения хостинга — только по прямому поручению. +- Проверки кода и браузера проводить в Docker без установки ПО на хост. + Проверка загрузки по боевому адресу вызывает реальную обработку; выполнять её только + в согласованном окружении, не публиковать ключи загрузок и FTP-секреты. + +План, журнал и база знаний ведутся в корне рабочей области по общим правилам. Ссылки на +политику и документацию не подключают MCP и не дают разрешения на публикацию или выкат. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..e353f51 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,33 @@ +# Инструкции агентов для `preland` + +Область действия — репозиторий `preland/`. Общие правила рабочей области находятся в +[AGENTS.md](../AGENTS.md) и [CLAUDE.md](../CLAUDE.md); канонический процесс и каталог ролей — +[в общей политике](../.known-base/Соглашения/Процесс%20командной%20разработки%20и%20каталог%20ролей.md). +Этот файл и [AGENTS.md](AGENTS.md) содержат одинаковые локальные правила; обновлять их вместе. + +## Перед работой + +- Прочитать [README.md](README.md), [заметку проекта](../.known-base/Проекты/Преленд%20—%20anton-preland.md), + а для выката — `.gitea/workflows/deploy.yml` и `config.json.example`. +- Проверить состояние ветки и чужие изменения в `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` каждой цели и `requisites.html` живут на хостинге: не добавлять + их в git, не перезаписывать и не удалять при деплое. В репозитории — только образец конфига. +- Коммит в `main` запускает FTP-автодеплой на все цели workflow; откат через `git revert` + также запускает выкат. Коммит, push и изменения хостинга — только по прямому поручению. +- Проверки кода и браузера проводить в Docker без установки ПО на хост. + Проверка загрузки по боевому адресу вызывает реальную обработку; выполнять её только + в согласованном окружении, не публиковать ключи загрузок и FTP-секреты. + +План, журнал и база знаний ведутся в корне рабочей области по общим правилам. Ссылки на +политику и документацию не подключают MCP и не дают разрешения на публикацию или выкат.