CLI AI

От однострочника к закоммиченному скрипту: когда пора

2026-04-15

CliAI блистает на мне это нужно один раз. 80% случаев. Но есть тихая категория: команда той же формы, которую вы перегенерируете снова и снова. В какой-то момент она заслуживает имени, код-ревью и места в scripts/.

Три признака зрелости

Вы запускали ту же форму три раза за неделю. Не ту же команду — ту же форму. «Тейл стейдж-логов и grep FAILED» в понедельник, «…и grep ERROR» в среду, «…и grep timeout» в пятницу. Форма — это то, что просится в скрипт.

Коллега просит у вас команду. Если он сейчас скопирует ваш однострочник в Slack — сэкономьте круг и закоммитьте.

Команда едет в CI. Неревьюенная shell в CI-пайплайне — это инцидент в замедленной съёмке. Как только CliAI-однострочник попадает в CI, оформите его нормально.

Паттерн «выпускного»

Начните с промпта. Запустите. Скопируйте результат.

clai
$ clai для каждого пода в staging, который не Ready, напечатай имя и последние 20 строк логов→ kubectl -n staging get pods -o json \    | jq -r '.items[] | select(.status.containerStatuses[0].ready==false) | .metadata.name' \    | xargs -I{} sh -c 'echo "── {} ──"; kubectl -n staging logs {} --tail=20'

Затем превратите во что-то, что можно ревьюить:

#!/usr/bin/env bash
# scripts/staging-unready-pods.sh
# Печатает имя + последние 20 строк логов для каждого пода в staging, который не Ready.
set -euo pipefail

NAMESPACE="${1:-staging}"

kubectl -n "$NAMESPACE" get pods -o json \
  | jq -r '.items[] | select(.status.containerStatuses[0].ready==false) | .metadata.name' \
  | while read -r pod; do
      echo "── $pod ──"
      kubectl -n "$NAMESPACE" logs "$pod" --tail=20
    done

Дельта маленькая, но реальная: set -euo pipefail, параметр для namespace, однострочный комментарий, разделитель для каждого пода. Ничему из этого не нужна LLM, и каждый следующий запуск воспроизводим без расхода запроса.

Что остаётся за CliAI

Не выпускайте всё. Одноразовые задачи — онбординг в новом репо, дебаг инцидента, чтение чужого конфига — именно та ad-hoc работа, ради которой CliAI и сделан. Если их преждевременно закоммитить, добавили мусор без добавления рычага.

См. также