# Правила работы агента ## ⛔⛔⛔ DOCKER — ОБЯЗАТЕЛЬНЫЙ ПОРЯДОК ПЕРЕД КАЖДЫМ BUILD 1. УВЕЛИЧИТЬ ТЕГ в `console/deploy/console.yaml` (vX.Y.Z → vX.Y.Z+1) 2. rsync на ВМ 3. ПРОВЕРИТЬ что файлы на ВМ новые (grep ключевой строки) 4. docker build с НОВЫМ тегом 5. docker push с НОВЫМ тегом 6. kubectl apply (не rollout restart — apply подтягивает новый тег) **НИКОГДА не делать `docker build` со старым тегом — под не перетянет образ (imagePullPolicy: IfNotPresent)** ## Файловая система (актуально) 1. Все файлы редактируются локально: `~/fission` 2. После любых изменений — обязательно rsync на ВМ: rsync -az \ -e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10" \ ~/fission/ \ naeel@5.172.178.213:~/terra/fission/ 3. Git (add/commit/push) выполнять ЛОКАЛЬНО в ~/fission 4. Docker, kubectl и другие инфраструктурные команды — только через SSH на ВМ 5. Перед запуском любой команды на ВМ обязательно убедиться, что синхронизация (rsync) выполнена 6. SCP, sshfs, remote_dev и маунты больше НЕ используются 7. Только rsync для синхронизации Пример: 1. Редактируешь локально 2. rsync на ВМ 3. Выполняешь команды через SSH на ВМ ## SSH Все команды — только через SSH на ВМ. Локально — только читать и редактировать файлы. ```bash ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 'КОМАНДА' ``` Запрещено локально: `go`, `docker`, `kubectl`, `helm`, `terraform`, `curl/wget`, `git push/pull`, любые скрипты проекта. ## Документация - `doc/thinking/` — лог рассуждений агента (обязательно) - `doc/progress.md` — трекер задач - Старые файлы `doc/` не перезаписывать — новое в новых файлах с датой ## Git Коммитить и пушить через SSH после каждого завершённого этапа. Версионирование тегами: `vMAJOR.MINOR.PATCH` - Patch — любое изменение кода - Minor — новая фича / компонент - Major — breaking change ```bash git tag vX.Y.Z && git push origin vX.Y.Z ``` ## Поведение агента - Не трогать рабочий код без явного указания - Не делать НИЧЕГО сверх того, о чём явно приказали — ни git-команд, ни rebase, ни дополнительных шагов - Если для продолжения нужен выбор — СПРОСИТЬ разрешения, не делать самостоятельно - Деструктивные операции (`kubectl delete`, `rm -rf`, `terraform destroy` и др.) — только после явного подтверждения с указанием конкретных объектов - Отвечать кратко, без вступлений, извинений, благодарностей и прочей воды