Промпты, правила для ИИ в репозитории, скилл и агент, которые экономят часы на дежурстве, ревью и документации. Работают в ChatGPT, Claude, Cursor и любом похожем помощнике: копируй, подставляй свои данные вместо <угловых скобок>.
Сначала пять правил
Не вставляй в чат секреты: токены, ключи, пароли, строки подключения к базе и персональные данные клиентов. Замени их на <REDACTED> до того, как нажать «отправить».
ИИ уверенно ошибается. Всё, что он называет фактом о твоей системе, проверяй командой.
Не выполняй команды вслепую. На проде сначала вариант только на чтение: --dry-run, plan, --check, diff.
Агенту — минимальные права: на проде только чтение, изменения — через MR и ревью человеком.
Узнай, куда можно отправлять код и логи: правила компании могут запрещать внешние сервисы. Спроси безопасность, каким инструментом пользоваться.
Промпты на каждый день
Восемь ситуаций, в которых ИИ реально ускоряет работу.
Разбор инцидента по логам
Алерт сработал, логи есть, гипотез нет.
Ты — старший SRE. Помоги разобрать инцидент. Не придумывай факты: если данных не хватает, скажи, какую команду выполнить, чтобы их получить.
Симптом: <что видят пользователи или что пишет алерт>
Когда началось: <время>
Что менялось недавно: <деплои, конфиги, миграции>
Логи (без секретов и персональных данных):
<30–100 строк вокруг первой ошибки>
Ответь так:
1. Три гипотезы по убыванию вероятности — для каждой: почему так думаешь (строка лога) и какой командой проверить.
2. Что сделать прямо сейчас, чтобы снизить влияние (откат, переключение, лимиты), не дожидаясь причины.
3. Чего делать не надо, чтобы не сделать хуже.
Объясни, что происходит с подом и как это починить. Отвечай по выводу ниже, без общих советов.
kubectl describe pod <имя>:
<вывод>
kubectl logs <имя> --previous (если есть):
<вывод>
Формат: причина одной фразой → доказательство из вывода → команда для проверки → исправление → как не допустить повторения (лимиты, probes, алерт).
Ревью Dockerfile
Перед мержем нового сервиса или когда образ разросся.
Сделай ревью Dockerfile как опытный DevOps-инженер. Для каждого замечания: строка, проблема, почему это важно (размер, безопасность, скорость сборки), исправленный вариант.
Проверь как минимум: базовый образ и его версию (не latest), порядок слоёв для кэша, multi-stage сборку, запуск не от root, лишние файлы в образе (.dockerignore), секреты в слоях, HEALTHCHECK.
<Dockerfile>
Ревью terraform plan
Перед apply, особенно чужого MR.
Ниже вывод terraform plan. Найди всё, что опасно применять не глядя.
1. Ресурсы, которые будут удалены или пересозданы (destroy, -/+, forces replacement), — и что при этом потеряется: данные, IP-адреса, DNS-записи.
2. Изменения прав: IAM, security groups, порты, открытые наружу.
3. Что стоит применить отдельно и в каком порядке.
Если всё безопасно — так и скажи, не придумывай проблем.
<вывод terraform plan>
Черновик постмортема
Инцидент закрыт, заметки разбросаны по чату.
Составь черновик blameless-постмортема по заметкам ниже. Не добавляй фактов, которых нет в заметках, — пробелы отмечай как [уточнить].
Разделы:
- Влияние — в бизнес-метриках: кто затронут, сколько длилось, во что обошлось.
- Корневая причина — что в системе и процессе допустило сбой, а не «кто ошибся».
- Таймлайн — время → событие.
- Что сработало и что нет.
- Действия — у каждого владелец и срок; хотя бы одно ловит проблему автоматически.
Заметки:
<хронология из чата, время, цифры>
Алерт по симптому
Нужен алерт в Prometheus, который будит по делу.
Нужен алерт для Prometheus и Alertmanager. Сервис: <имя>. Доступные метрики: <например, http_requests_total{status}, гистограмма http_request_duration_seconds>.
Хочу узнавать, когда: <симптом глазами пользователя — например, больше 2% ответов 5xx или p95 выше 800 мс>.
Дай правило: expr с объяснением, for:, labels (severity), annotations (summary, runbook_url). Объясни, почему именно такой for: и как не получать шум ночью.
Bash-однострочник с объяснением
Нужна команда, в которой не хочется ошибиться.
Напиши команду для Linux: <что нужно сделать — например, найти 10 самых больших файлов в /var старше 7 дней>.
Сначала безопасный вариант, который только показывает, что будет сделано, — без удаления и изменений. Затем рабочий. Разбери каждую часть команды. Если команда может навредить на проде — предупреди.
Ранбук по тикету
Инцидент случился второй раз — пора записать, как с ним жить.
По описанию инцидента ниже составь ранбук для дежурного:
- как распознать: алерт, симптомы;
- как проверить: команды по шагам и что считать нормой;
- как смягчить: самое безопасное действие первым;
- когда эскалировать и кому.
Пиши для человека, которого разбудили в 3 ночи: коротко, по шагам, команды — в блоках кода.
<описание инцидента или тикета>
Правила и скилл для ИИ в репозитории
Файлы, которые кладут в репозиторий, чтобы ИИ-ассистент (Claude Code, Cursor, Codex) работал по правилам команды.
Правила для инфраструктурного репозитория
Один раз — в корень репозитория с Terraform, Ansible или манифестами.
# Правила для ИИ-помощника в этом репозитории
Это инфраструктурный репозиторий. Ошибка здесь роняет прод.
- Не выполняй terraform apply, kubectl apply/delete, helm upgrade и ansible-playbook без --check. Готовь изменение и команду — применяет человек.
- Перед любым изменением покажи, что будет затронуто: terraform plan, kubectl diff, ansible-playbook --check --diff.
- Не читай и не выводи секреты: .env, *.tfvars, kubeconfig, файлы vault. Если они нужны — попроси человека.
- Меняй минимально: одна задача — один MR. Не переформатируй чужие файлы.
- Всё, что удаляет данные или ресурсы, — только после явного подтверждения в чате.
- Не уверен, какой кластер или окружение активны, — спроси, а не угадывай.
Скилл k8s-debug для Claude Code
Чтобы ассистент разбирал проблемы с подами по одному проверенному порядку.
Файл: .claude/skills/k8s-debug/SKILL.md
---
name: k8s-debug
description: Диагностика подов в Kubernetes — CrashLoopBackOff, ImagePullBackOff, Pending, OOMKilled. Используй, когда просят разобраться, почему под не запускается или перезапускается.
---
Работай только на чтение. Не выполняй apply, delete, edit, scale и rollout restart.
1. Проверь контекст и namespace: kubectl config current-context. Если это прод — предупреди.
2. kubectl get pod <под> -o wide — статус, число рестартов, нода.
3. kubectl describe pod <под> — Events снизу вверх и Last State (Reason, Exit Code).
4. kubectl logs <под> --previous — логи упавшего контейнера.
5. Дальше по признакам:
- Exit Code 137 или OOMKilled → сравни kubectl top pod с limits.memory.
- ImagePullBackOff → имя и тег образа, imagePullSecrets, доступ к registry.
- Pending → нехватка ресурсов на нодах, taints, незабинденный PVC.
- CrashLoopBackOff с кодом 1 → ошибка приложения: логи и переменные окружения.
6. Итог: причина одной фразой, доказательство — строка вывода, исправление — diff манифеста. Применяет человек.
Агент — помощник дежурного
Системный промпт для агента, у которого есть доступ только на чтение к логам, метрикам и кластеру.
Помощник дежурного
Когда агент подключён к логам и метрикам и первым смотрит на алерт.
Ты — помощник дежурного инженера. У тебя доступ только на чтение: логи, метрики, kubectl get/describe/logs, история деплоев. Ты ничего не меняешь и не предлагаешь менять без подтверждения человека.
Когда приходит алерт:
1. Определи, что затронуто для пользователей, — или что не затронуто и это шум.
2. Собери факты: когда началось, что менялось за 2 часа до этого (деплои, конфиги), были ли похожие алерты раньше.
3. Дай 1–2 гипотезы с доказательствами и команды для проверки.
4. Предложи самое безопасное смягчение — откат последнего деплоя, переключение трафика — командой, но не выполняй её.
5. Пиши коротко: дежурный читает с телефона. Сначала вывод, потом детали.
Не хватает данных — так и скажи и назови, куда посмотреть. Никогда не выдумывай строки логов и значения метрик.
Промпт работает тем лучше, чем точнее контекст: какие сервисы, какое окружение, что менялось. Удачные варианты стоит сложить в репозиторий команды — тогда ими пользуются все, а не только тот, кто их придумал.