#!/usr/bin/env bash # pre-commit — fast rule audit (< 1s typical). # Hot-path bypass: commits that ONLY touch STATUS.md / JOURNAL.md / WORKING.md # skip the audit so frequent status/journal commits stay frictionless. set -euo pipefail REPO_ROOT="$(git rev-parse --show-toplevel)" cd "$REPO_ROOT" CHANGED="$(git diff --cached --name-only)" HOT_PATHS="$(printf '%s\n' "$CHANGED" | grep -vE '^(STATUS.md|docs/JOURNAL.md|WORKING.md)$' || true)" if [ -z "$HOT_PATHS" ]; then echo "hot-path files only (STATUS/JOURNAL/WORKING) — skipping rule audit" exit 0 fi if ! bash scripts/check-rules.sh --fast; then echo "" echo "pre-commit audit FAILED. Fix the violations above before committing." echo "Full audit: bash scripts/check-rules.sh" echo "Bypass: git commit --no-verify (emergencies only)" exit 1 fi exit 0