#!/usr/bin/env bash
# pre-push — full rule audit + clean-working-tree gate before pushing.
# Installed via: bash scripts/setup-hooks.sh
#
# Combines two proven policies observed across projects:
#   - KNEL-AIMiddleware: block push if the working tree is dirty.
#   - RCEO-PersonalAssistant: block push if the full test suite fails.
set -euo pipefail

REPO_ROOT="$(git rev-parse --show-toplevel)"
cd "$REPO_ROOT"

echo "pre-push: running full rule audit..."

# Full audit (non-fast): runs the slow test suite via `make test` if present.
if ! bash scripts/check-rules.sh --quiet; then
    echo ""
    echo "pre-push audit FAILED. Push blocked."
    echo "Re-run with output:  bash scripts/check-rules.sh"
    echo "Bypass:              git push --no-verify   (emergencies only)"
    exit 1
fi

echo "pre-push: all rules and tests passed."
exit 0
