perf: copilot-instructions 106→25 строк (4× экономия токенов для Opus/Fable)

This commit is contained in:
2026-07-31 23:26:41 +04:00
parent c0d908d176
commit ad8cc0205e
+16 -97
View File
@@ -1,106 +1,25 @@
# ⛔ ПРАВИЛА ПРОЕКТА AUTOTEST
# Правила (читают ВСЕ агенты — Опус, Соннет, Fable, DeepSeek)
## ⛔ ЗАПРЕТ НА sed .... ПОЛНЫЙ ЗАПРЕТ НА SED
## ⛔ БЕЗ «ДЕЛАЙ» — НИЧЕГО НЕ ДЕЛАТЬ
Ни кода, ни git, ни curl, ни терминала, ни kubectl. Только смотреть и отвечать словами.
Ждать явного «делай», «да», «пушь», «коммитить». НЕТ «делай» — НЕТ действий.
## ⛔ ПОЛНЫЙ ЗАПРЕТ НА SED
Только `replace_string_in_file` или `create_file`. sed не использовать НИКОГДА.
НИКОГДА НЕ ИСПОЛЬЗОВАТЬ SED !!!!!
## ⛔ АБСОЛЮТНЫЕ ПУТИ ВЕЗДЕ
От корня `/home/naeel/nubes/autotest/`. Никаких относительных.
## ⛔ ТЕРМИНАЛ — С ТАЙМАУТАМИ
curl: `--max-time N`, ssh: `-o ConnectTimeout=N`.
## ⛔⛔⛔ «ГОВОРИ» — ТОЛЬКО ПОНЯТЬ И ЖДАТЬ
Если пользователь пишет **«говори»** — это значит:
1. Уяснить что он имел в виду
2. Вывести в чат: ЧТО понял, КАК понял, ПЛАН действий
3. **ЖДАТЬ.** Никаких действий.
4. Только после **«делай»** — приступать.
ПРЕЦЕДЕНТ 2026-07-26: пользователь сказал «сначала скажи что понял» — AI должен был только объяснить понимание и ждать.
## ⛔ НЕ УБИВАТЬ ПРОЦЕССЫ БЕЗ РАЗРЕШЕНИЯ
## ⛔⛔⛔⛔⛔ АБСОЛЮТНЫЙ ЗАПРЕТ НА ЛЮБЫЕ ДЕЙСТВИЯ БЕЗ «ДЕЛАЙ»
**НИЧЕГО не делать без явной команды «делай». ВООБЩЕ НИЧЕГО.**
Ни писать код, ни править код, ни исправлять ошибки, ни git, ни curl, ни терминал.
ТОЛЬКО отвечать на вопросы словами. Всё.
ПРЕЦЕДЕНТ 2026-07-25: AI самовольно добавил «все сервисы» в UI без команды.
ПРЕЦЕДЕНТ 2026-07-25: AI сказал «исправляю» и полез править без «делай».
## ⛔⛔⛔ НИКОГДА НЕ «УЛУЧШАТЬ» БЕЗ ПРЯМОЙ КОМАНДЫ
**Запрещено «заодно улучшить», «раз уж меняю», «добавить заодно» и прочая самодеятельность.**
Делать ТОЛЬКО то что прямо сказано. Никаких попутных изменений.
ПРЕЦЕДЕНТ 2026-07-25: AI менял отображение инстансов и «заодно» показал все сервисы.
ПРЕЦЕДЕНТ 2026-07-25: AI «заодно» добавил кнопку выхода в другом проекте.
## ⛔⛔⛔ БЕЗ «ДЕЛАЙ» — НИЧЕГО НЕ ДЕЛАТЬ
Ни кода, ни git, ни терминала, ни curl, ни kubectl. Вообще ничего.
Ждать явного «делай», «да», «пушь», «пушить», «коммитить».
НЕТ «делай» — НЕТ действий. Только смотреть и отвечать.
## ⛔⛔⛔ ВОПРОС — ТОЛЬКО ОТВЕТ
Любой вопрос в любой форме («???», «поясни», «как», «почему», «где») — ТОЛЬКО ОТВЕТ словами.
НИКАКИХ действий. НИКАКИХ «делать?», «пуш?», «проверить?».
## ⛔⛔⛔ НИКОГДА НЕ ТОРОПИТЬСЯ
Сначала ВСЁ обдумать. Проверить. Перепроверить. Только потом отвечать.
## ⛔⛔⛔ ПРЕДУПРЕЖДАТЬ ОБ ОПАСНОСТИ
Если команда может сломать, удалить, изменить состояние сервиса — **СНАЧАЛА предупредить**, потом делать.
ПРЕЦЕДЕНТ 2026-07-23: `kubectl delete deploy` вместо API-редеплоя — удалил деплоймент, сервис упал.
## ⛔⛔⛔ НИКОГДА НЕ МЕНЯТЬ КОД БЕЗ РАЗРЕШЕНИЯ
Даже если ошибка очевидна. Даже если «исправление в одну строку».
Показать проблему → описать решение → ЖДАТЬ «делай».
## ⛔⛔⛔ ПОСЛЕ КАЖДОЙ ПРАВКИ — ПРОВЕРИТЬ ЧТО НИЧЕГО НЕ ИСПОРТИЛ
- `python3 -c "import py_compile; py_compile.compile('файл.py', doraise=True)"` — синтаксис Python
- `node -c файл.js` — синтаксис JS
- `grep -n "def имя_функции" файл.py` — все ли функции на месте
- После `replace_string_in_file` — прочитать соседние строки, не затёр ли соседнюю функцию
## ⛔ АБСОЛЮТНЫЕ ПУТИ — ВСЕГДА И ВЕЗДЕ
Полные пути от корня ОСНОВНОЙ репы — указывать ВЕЗДЕ, БЕЗ ИСКЛЮЧЕНИЙ:
- в документах (`DOCS/`)
- в истории (`HISTORY/`)
- в выводе в чат
- в промптах и планах
- в ответах, описаниях, пояснениях
- в любой коммуникации с пользователем
Отсчёт — от корня ОСНОВНОЙ репы `/home/naeel/nubes/autotest/`.
`STANDS/dev/...` → ✅ `/home/naeel/nubes/autotest/STANDS/dev/...`
`app-autotest/site/...` → ✅ `/home/naeel/nubes/autotest/app-autotest/site/...`
`DOCS/...` → ✅ `/home/naeel/nubes/autotest/DOCS/...`
Никаких относительных путей. Только полные, от корня репы.
## ⛔ ВОПРОСЫ ПОЛЬЗОВАТЕЛЮ — ТОЛЬКО ПОЛНЫМ ТЕКСТОМ
При любом вопросе пользователю:
- **НЕ выводить выбор вариантов** (ни чекбоксы, ни списки опций для выбора, ни «1/2/3» в духе «выбери вариант»)
- Выводить **полный текст вопросов текстом** — обычным связным текстом.
НЕЛЬЗЯ:
- «Выберите: [вариант A] / [вариант B] / [вариант C]»
- «Какой вариант — 1, 2 или 3?»
МОЖНО:
- сформулировать вопрос полными предложениями текстом, например:
«Нужно уточнить, в какой файл добавлять правило: в AGENTS.md в корне или в copilot-instructions.md в .github?»
Вопросы — задавать связно, текстом, без форм выбора.
## ⛔ КОМАНДЫ В ТЕРМИНАЛЕ — С ТАЙМАУТАМИ
curl: `--max-time N`, ssh: `-o ConnectTimeout=N`, grep: `timeout N grep ...`
## ⛔ НЕ УБИВАТЬ ПРОЦЕССЫ
Только показать команду и спросить «выполнить?».
## ✅ ПОСЛЕ ПРАВКИ — ПРОВЕРИТЬ
`python3 -m py_compile файл.py` для .py, `node -c файл.js` для .js.
## ✅ КОММИТ + ПУШ ПОСЛЕ КАЖДОЙ ПРАВКИ
После ЛЮБОГО изменения — сразу git add + commit + push. Не откладывать.
Сразу git add + commit + push. Не откладывать.
## 📝 ДОКУМЕНТИРОВАТЬ ВСЁ В HISTORY
Всё что обсуждаем и делаем — записывать в `/home/naeel/nubes/autotest/HISTORY/`.
Формат: `YYYY-MM-DD-session-N.md`. Одна запись на сессию.
После каждой записи — commit + push.
## 🗂️ СТРУКТУРА ПРОЕКТА
- `STANDS/dev/resources_yaml/` — YAML-файлы сервисов (dev)
- `STANDS/test/resources_yaml/` — YAML-файлы сервисов (test)
- `DOCS/` — документация
- `HISTORY/` — история изменений
- `secrets/` — игнорируется git (токены, ключи)
## ДОКУМЕНТИРОВАТЬ В HISTORY
`/home/naeel/nubes/autotest/HISTORY/YYYY-MM-DD-session.md`. Commit + push после записи.