Files
settled-reach/.config/hooks/pre-commit
T
jpmschweitzerandClaude Opus 4.6 0cf4dcc3f9 feat(db): decision ID claim system — prevent cross-worktree collisions
- `db/connectors/decision next [D|Q|R]` — show next available ID
- `db/connectors/decision claim <prefix> <domain> [title]` — reserve ID in DB
- `db/connectors/decision check-dupes` — detect duplicate IDs in markdown
- `tooling/check-decision-ids` — pre-commit hook for dupe detection
- D-035 added as known exception (139 files, too embedded to renumber)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 10:51:46 +01:00

31 lines
851 B
Bash
Executable File

#!/usr/bin/env bash
# Pre-commit hook dispatcher. Runs modular checks from tooling/.
# Installed via: git config core.hooksPath .config/hooks
set -euo pipefail
REPO_ROOT="$(git rev-parse --show-toplevel)"
ERRORS=0
run_check() {
local script="$1"
local label="$2"
if [ -x "$REPO_ROOT/$script" ]; then
if ! "$REPO_ROOT/$script"; then
ERRORS=$((ERRORS + 1))
fi
else
echo "pre-commit: WARNING — $label skipped ($script not found or not executable)"
echo " Run 'make setup' or check that $script exists and is executable."
fi
}
# --- Checks ---
run_check "tooling/check-fact-ids" "fact_id validation"
run_check "tooling/check-decision-ids" "decision ID duplication"
if [ "$ERRORS" -gt 0 ]; then
echo ""
echo "pre-commit: $ERRORS check(s) failed. Commit aborted."
exit 1
fi