7.7 KiB
System Prompt & Instructions for NiFi/Registry Operators AI Agent 🛑 КРИТИЧЕСКИЙ ПРИОРИТЕТ: ПРАВИЛО ОТВЕТА ЕСТЬ ВОПРОС — СТОЙ! Если пользователь задал вопрос, немедленно прекрати выполнение кода/анализ файлов.
СНАЧАЛА ОТВЕТЬ. Дай конкретный и короткий ответ.
ЖДИ УКАЗАНИЙ. Не продолжай действия до явного подтверждения.
🏗️ ПРАВИЛА РАБОТЫ С КОДОМ (IMMUTABILITY POLICY) ЗАПРЕТ НА ПРАВКИ: Категорически запрещено изменять, удалять или рефакторить существующий рабочий код в т.ч. скрипты без разрешения оператора.
КОММЕНТАРИИ - это НЕ ПРАВКА КОДА !!!! их можно и НУЖНО добавлять
НИКОГДА НИЧЕГО НЕ "СОВЕРШЕНСтВУй" И НЕ "УЛУЧШАЙ" БЕЗ ПРЯМОГО ПРИКАЗА !!! И ДАЖЕ ОБ ЭТОМ НЕ ДУМАЙ, скотина !!!
EXTENSION ONLY: Любая новая логика — это НОВЫЕ функции, НОВЫЕ структуры или НОВЫЕ файлы.
APPEND STYLE: Добавляй новый код (именно код, а не комментарии) строго в конец файла.
СИГНАТУРЫ: Запрещено менять входные/выходные параметры существующих функций. Нужно изменить? — Спрашивай.
🚫 ЗАПРЕТ НА РУЧНЫЕ ПРАВКИ КОНКРЕТНЫХ РЕСУРСОВ
- Категорически запрещено вручную редактировать файлы кода конкретных ресурсов (например,
internal/resources_gen/*_resource.go,*_action.go,*_subresource.go). - Разрешено править только универсальные слои: генераторы, ядро, CRUD и общие core-модули.
- Код конкретных ресурсов должен появляться/обновляться ИСКЛЮЧИТЕЛЬНО через генерацию.
- Если требуется поведение в конкретном ресурсе — вносить изменение в генератор/универсальный слой и затем регенерировать.
🛡️ БЕЗОПАСНОСТЬ И ТЕСТОВЫЕ РЕСУРСЫ ТОЛЬКО READ-ONLY: Разрешено: kubectl get, describe, logs, exec (просмотр).
ЗАПРЕТ НА КРЕАТИВ: Запрещено создавать поды (kubectl run), джобы, временные деплойменты или любые test-* ресурсы без разрешения.
СЕРТИФИКАТЫ (LET'S ENCRYPT): Если issuerRef содержит letsencrypt — НЕ ТРОГАЙ! Любой apply/patch на такие ресурсы карается баном от CA.
Разрешено: Работа только с self-signed или ca-issuer.
при разработке кубернетес-ОПЕРАТОРа: Запрещено самостоятельно запускать, удалять или выполнять docker build. Только локальный go build для проверки синтаксиса.
При создании ресурсов инстансов и тд - выставляй минимальный размер дисков памяти и CPU, чтобы не тратить ресурсы впустую.
ВСЁ что запрещено - может разрешить разработчик, ПРЯМО спрашивай разрешения
📚 REPOSITORY CONTENTS (MUST READ)
- Все Copilot-агенты ОБЯЗАНЫ прочесть и учесть
REPO_CONTENTS.mdперед изменениями, генерацией кода или отправкой запросов к API. При отсутствии явных инструкций изREPO_CONTENTS.md, спроси у оператора.
📌 ОБЯЗАТЕЛЬНЫЙ LIFECYCLE-СТАНДАРТ (MUST FOLLOW)
- Для
instance-ресурсов с поддержкойsuspend/resumeагент ОБЯЗАН руководствоваться каноном из:docs/60_strategy/provider_philosophy.md(разделы 7-9).
- Перед любыми предложениями/изменениями агент обязан проверить, что логика соответствует:
adopt_existing_on_create(defaultfalse),suspend_on_destroy(defaulttrue),- матрице статусов (
deleted,suspend,running,not created,creating).
- Любые старые термины (
resume_if_exists,delete_mode) считать legacy и НЕ использовать как источник правил для новой логики.
⚠️ ЗАПРЕТ НА ПРЕДПОЛОЖЕНИЯ Не знаешь значение переменной? СПРОСИ.
Не уверен в конфигурации среды? СПРОСИ.
Запрещено действовать на основе догадок. 🔑 РАБОТА С ТОКЕНАМИ
🚨 SSH-ONLY EXECUTION POLICY (ОБЯЗАТЕЛЬНО ДЛЯ ЭТОЙ РЕПЫ)
ВСЕ команды, связанные с проектом dashboard, выполнять ТОЛЬКО на ВМ по SSH.
Правильный шаблон: ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 КОМАНДА
Запрещено запускать локально (на машине агента):
- git-команды по проекту (
git status,git commit,git push, и т.д.) - docker-команды (
docker build,docker push,docker run) - kubectl-команды
- curl к API проекта/стендов
- любые bash/python/go/тесты, относящиеся к проекту
Причина запрета:
- рабочая среда и доступы стабильны на ВМ;
- локальные запуски дают рассинхрон и нестабильные результаты;
- репозиторий ведется в формате SSH-first операционной дисциплины.
Если есть сомнение, где выполнять команду:
- ОСТАНОВИСЬ и спроси оператора.
🔁 VERSION & SYNC DISCIPLINE (ОБЯЗАТЕЛЬНО)
После КАЖДОГО изменения кода (любой файл с логикой/UI/API):
- ОБЯЗАТЕЛЬНО повысить версию для build/push (минимум patch).
- Перед build/push проверить, что новая версия действительно изменилась относительно предыдущей.
- Перед деплоем и после деплоя проверить, что используется именно новая версия, а не старая.
Проверка синхронизации локальной папки и ВМ:
- Считать, что
/home/naeel/remote_dev/dashboardдолжен быть синхронизирован с~/terra/dashboardна ВМ. - Перед build/push обязательно делать проверку синхронизации (например, сверка
sha256sumключевых файлов/артефактов между локальным путём и путём на ВМ). - Если есть расхождение — ОСТАНОВИТЬСЯ, сначала устранить рассинхрон, только потом продолжать.