From 881add2fbb76610a79e2f471025a63ac4d159865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Thu, 6 Aug 2026 12:27:49 +0400 Subject: [PATCH] 1 --- .github/copilot-instructions.md | 27 +++++++++---- .github/pravila.md | 56 --------------------------- site/__pycache__/app.cpython-312.pyc | Bin 590 -> 17340 bytes 3 files changed, 19 insertions(+), 64 deletions(-) delete mode 100644 .github/pravila.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 18abd2e..29d2d0f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,10 +1,21 @@ -# Правила +# Правила (читают ВСЕ агенты — Опус, Соннет, Fable, DeepSeek) + +## ⛔ БЕЗ «ДЕЛАЙ» — НИЧЕГО НЕ ДЕЛАТЬ +Ни кода, ни git, ни curl, ни терминала, ни kubectl. Только смотреть и отвечать словами. +Ждать явного «делай», «да», «пушь», «коммитить». НЕТ «делай» — НЕТ действий. + +## ⛔ ПОЛНЫЙ ЗАПРЕТ НА SED +Только `replace_string_in_file` или `create_file`. sed не использовать НИКОГДА. + +## ⛔ АБСОЛЮТНЫЕ ПУТИ ВЕЗДЕ +От корня `/home/naeel/....`. Никаких относительных. + +## ⛔ ТЕРМИНАЛ — С ТАЙМАУТАМИ +curl: `--max-time N`, ssh: `-o ConnectTimeout=N`. + +## ⛔ НЕ УБИВАТЬ ПРОЦЕССЫ БЕЗ РАЗРЕШЕНИЯ + +## ✅ ПОСЛЕ ПРАВКИ — ПРОВЕРИТЬ +`python3 -m py_compile файл.py` для .py, `node -c файл.js` для .js. -> Подробные правила: [`.github/pravila.md`](pravila.md) -1. Не трогать рабочий код без явного указания. -2. Файлы редактировать локально — `~/remote_dev/` = `~/terra/` на ВМ (sshfs), SCP не нужен. -3. Все команды — **только через SSH**, никогда локально: - ```bash - ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 'КОМАНДА' - ``` diff --git a/.github/pravila.md b/.github/pravila.md deleted file mode 100644 index be15fff..0000000 --- a/.github/pravila.md +++ /dev/null @@ -1,56 +0,0 @@ -# Правила работы агента - -## Файловая система - -`~/remote_dev/` (локально) примонтирован через sshfs к `~/terra/` на ВМ — **одна ФС**. -Файлы, сохранённые локально, мгновенно видны на ВМ. SCP не нужен. - -Монтирование может слетать. Признак: файлы рассинхронизированы. - -```bash -# Размонтировать -fusermount -u ~/remote_dev -# Если завис: sudo umount -l /home/naeel/remote_dev - -# Примонтировать -sshfs naeel@5.172.178.213:/home/naeel/terra ~/remote_dev \ - -o cache=no -o no_readahead -o reconnect \ - -o ServerAliveInterval=15 -o ServerAliveCountMax=3 \ - -o IdentityFile=~/.ssh/naeel_vm_id_ed25519 -``` - -## 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 -``` - -## Поведение агента - -- Не трогать рабочий код без явного указания -- Не делать ничего сверх того, о чём явно попросили -- Деструктивные операции (`kubectl delete`, `rm -rf`, `terraform destroy` и др.) — только после явного подтверждения с указанием конкретных объектов -- Отвечать кратко, без вступлений, извинений, благодарностей и прочей воды diff --git a/site/__pycache__/app.cpython-312.pyc b/site/__pycache__/app.cpython-312.pyc index a95642f33e05eb6aad40addcbd57e32883db244f..1de3418a19abe2559f438c04d07832525141f347 100644 GIT binary patch literal 17340 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 literal 590 zcmYjO&ubGw6n^t#eJUw%Oe-Xzi4nY{-= zPuVuqSSzhGIvZQbj;rKLKTg!(&a2dDIGDqOt>+J(Z9jg}`T!HHo8EOgQ6Qbrld|jl zr*UFGk&f5v)q8`?@IxWrDE*)|&bWeZ2;a)9C$EqFv;KK$?VPVEy_MOn8+d-`x~YZj z=;4o+uqB%DP825@??ozU)of*Iwy~qzRJt#%481_QZpN@|W~iv2$XU&dseY&|B+Y85 z0-~wi2qMw%$}NS*gZ``dDY~2yLN1Dxq4g7Pem6^_M+ec6