feat(claude): add dotbot-validate and config-warn hooks

This commit is contained in:
2026-03-20 21:55:37 +02:00
parent 73ef292bd9
commit 5d8baea825
2 changed files with 43 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
# Post-edit: warn when formatter/linter configs are changed,
# since they affect the entire repo's code style.
fp=$(jq -r '.tool_input.file_path // empty')
[ -z "$fp" ] || [ ! -f "$fp" ] && exit 0
case "$(basename "$fp")" in
.editorconfig | biome.json | .prettierrc.json | .shellcheckrc | stylua.toml | .yamllint.yml)
echo "NOTE: Formatter/linter config changed ($fp)." >&2
echo "Run 'pre-commit run --all-files' to verify consistency." >&2
;;
esac
exit 0

View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Post-edit: validate Dotbot install.conf.yaml files after editing.
# Checks YAML syntax and verifies link targets exist.
fp=$(jq -r '.tool_input.file_path // empty')
[ -z "$fp" ] || [ ! -f "$fp" ] && exit 0
case "$fp" in
*install.conf.yaml) ;;
*) exit 0 ;;
esac
# YAML syntax check
if command -v yamllint > /dev/null; then
if ! output=$(yamllint -d relaxed "$fp" 2>&1); then
echo "Dotbot config YAML error in $fp:" >&2
echo "$output" >&2
exit 2
fi
elif command -v python3 > /dev/null; then
if ! output=$(python3 -c "import yaml; yaml.safe_load(open('$fp'))" 2>&1); then
echo "Dotbot config YAML parse error in $fp:" >&2
echo "$output" >&2
exit 2
fi
fi
exit 0