--- description: Bash-Script-Lifecycle nach Best Practices — Aufgabenklärung → Scope-Einschätzung → Schnell- oder Vollpfad → shellcheck → PR → Merge. Aktivieren für jede Bash-Script-Aufgabe: neues Script, Feature, Bugfix, Refactoring. Nicht verwenden für andere Shells (sh/zsh/fish), Python-/Node-Scripts oder einfache Einzeiler/Aliase. model: claude-opus-4-6 --- # /script — Bash-Script-Lifecycle **Nicht-verhandelbare Mindeststandards — gelten für beide Pfade:** - Feature-Branch - `shellcheck` (alle Befunde beheben) - PR erstellen, Approval abwarten, mergen ## Vorab: Repository-Check ```bash git rev-parse --show-toplevel ``` Scheitert der Befehl: **Abbruch**. Der Skill arbeitet ausschließlich innerhalb eines Repos. Meldung an den User: > "Kein Git-Repository gefunden. Starte `/script` erst nach `git init` oder aus einem bestehenden Repo." --- ## Phase 0: Aufgabenklärung + Scope-Einschätzung ### 0a: Aufgabe klären Lies das betroffene Script (falls vorhanden) und den Request. Stelle offene Fragen, falls nötig — aber nur solche, die den Lösungsweg beeinflussen: - **Bei Bugfixes:** Was ist das erwartete Verhalten? Was passiert stattdessen? Wie lässt sich der Fehler reproduzieren? - **Bei neuen Features:** Was soll das Script leisten, was es heute nicht kann? Gibt es Randbedingungen (Umgebung, Eingaben, Abhängigkeiten)? - **Bei neuen Scripts:** Welches Problem wird gelöst? Wer ruft das Script auf und in welchem Kontext? Wenn der Request eindeutig genug ist, diese Fragen überspringen. Warte auf Antwort des Users, bevor du mit 0b fortfährst. ### 0b: Scope einschätzen Entscheide anhand dieser Heuristiken: **Schnellpfad** wenn alle Punkte zutreffen: - Kein neues CLI-Interface (kein neues Flag, kein neuer Subcommand, keine neue Abhängigkeit) - Änderung betrifft nur internen Ablauf (Bugfix, Ausgabe, Logik) - Geschätzter Diff: < 20 Zeilen **Vollpfad** wenn mindestens eines zutrifft: - Neues Script - Neues Flag, Subcommand oder externe Abhängigkeit - Strukturelle Änderung (Error-Handling, Trap, Exit-Codes, Logging-Schema) - Geschätzter Diff: ≥ 20 Zeilen Präsentiere dem User in einem Satz: Pfad + Begründung. Warte auf Bestätigung oder Korrektur. --- ## Schnellpfad ### S1: Branch + Implementierung ```bash git checkout -b fix/script- # oder feat/ je nach Typ ``` Änderungen direkt implementieren. Bash-Leitplanken einhalten: - Quoting: `"$var"`, Arrays als `"${array[@]}"` - Keine neuen Magic Numbers ohne benannte Konstante - `set -euo pipefail` muss gesetzt bleiben ### S2: shellcheck (Pflicht) ```bash shellcheck