- Neuer Skill /script mit Repo-Check, Opus-Planung, Sonnet-Implementierung, Shellcheck-Pflicht, Test-Empfehlungen, /ship - auto-format.sh lintet .sh-Dateien via shellcheck - bootstrap.sh installiert shellcheck automatisch - /story speichert Pläne jetzt unter <repo-root>/plans/ und bricht ohne Git-Repo ab - CLAUDE.md-Tabellen für Skills, Hooks und Tools ergänzt
39 lines
989 B
Bash
Executable File
39 lines
989 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# PostToolUse-Hook: Formatiert geänderte Dateien nach Edit/Write
|
|
# Wird von settings.json nach Edit- und Write-Tool-Aufrufen ausgeführt
|
|
|
|
set -euo pipefail
|
|
|
|
# Dateiname aus Umgebungsvariable (Claude Code setzt CLAUDE_TOOL_INPUT_FILE_PATH)
|
|
FILE="${CLAUDE_TOOL_INPUT_FILE_PATH:-}"
|
|
|
|
if [[ -z "$FILE" || ! -f "$FILE" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
EXT="${FILE##*.}"
|
|
|
|
case "$EXT" in
|
|
py)
|
|
if command -v ruff &>/dev/null; then
|
|
ruff format --quiet "$FILE" 2>/dev/null || true
|
|
ruff check --fix --quiet "$FILE" 2>/dev/null || true
|
|
fi
|
|
;;
|
|
js|ts|vue|jsx|tsx)
|
|
DIR=$(dirname "$FILE")
|
|
if [[ -f "$DIR/package.json" ]] || [[ -f "$DIR/../package.json" ]]; then
|
|
if [[ -x "$DIR/node_modules/.bin/eslint" ]] || [[ -x "$DIR/../node_modules/.bin/eslint" ]]; then
|
|
npx eslint --fix --quiet "$FILE" 2>/dev/null || true
|
|
fi
|
|
fi
|
|
;;
|
|
sh)
|
|
if command -v shellcheck &>/dev/null; then
|
|
shellcheck "$FILE" || true
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
exit 0
|