CLI AI

Vom Einzeiler zum eingecheckten Script: wann graduieren

2026-04-15

CliAI glänzt in der Kategorie einmalig benötigt. Die 80%-Fälle. Aber es gibt eine leisere Kategorie: derselbe Befehl in derselben Form, den du immer wieder neu generierst. Irgendwann verdient dieser Befehl einen Namen, ein Review und einen Platz unter scripts/.

Drei Reife-Signale

Du hast dieselbe Form dreimal in einer Woche laufen lassen. Nicht denselben Befehl exakt — dieselbe Form. „Tail die Staging-Logs und grep FAILED" am Montag, „… und grep ERROR" am Mittwoch, „… und grep timeout" am Freitag. Die Form ist es, die nach Script ruft.

Ein Kollege fragt dich nach dem Befehl. Wenn er deinen Einzeiler ohnehin nach Slack kopieren wird, erspare ihm den Umweg und check ihn ein.

Der Befehl läuft in CI. Ungereviewter Shell-Code in einer CI-Pipeline ist Zeitlupen-Vorfall. Sobald ein CliAI-generierter Einzeiler nach CI geht, schreib ihn ordentlich auf.

Das Graduierungs-Muster

Mit dem Prompt anfangen. Ausführen. Ergebnis kopieren.

clai
$ clai für jeden Pod in staging der nicht Ready ist, Name und letzte 20 Log-Zeilen ausgeben→ 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'

Dann mach ein diff-fähiges Ding daraus:

#!/usr/bin/env bash
# scripts/staging-unready-pods.sh
# Name + letzte 20 Log-Zeilen für jeden Pod in staging, der nicht Ready ist.
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

Die Delta ist klein, aber echt: set -euo pipefail, ein Parameter für den Namespace, ein einzeiliger Kommentar, ein Header pro Pod. Nichts davon braucht ein LLM, und einmal eingecheckt ist jeder folgende Lauf reproduzierbar — ohne Anfrage zu kosten.

Was CliAI behält

Graduier nicht alles. Einmalige Aufgaben — Onboarding in ein neues Repo, Vorfall debuggen, fremde Config lesen — sind genau die Ad-hoc-Arbeit, für die CliAI gebaut ist. Sie zu früh zu skripten heißt: Lärm im Repo ohne zusätzlichen Hebel.

Siehe auch