Brings in the enforcement layer from ~/daytoday/meta:
- Makefile, scripts/ (check-rules.sh, setup-hooks.sh, pre-commit/pre-push,
docker-run.sh, garden.sh, lib/common.sh)
- WORKING.md, questions-v1.md, .env.example
- Git hooks installed (pre-commit: fast audit, pre-push: full audit)
Fixes to pass rule audit:
- Pin Pi-hole/autoheal Docker images (no :latest tags)
- Fix shellcheck SC2001 in probe-vm-dns.sh
- Prune vendor/ and archive/ from shellcheck + Discourse pointer checks
- Add Quick Start, Enforcement Model, Task Tracking, Working Style
sections to AGENTS.md from template
💘 Generated with Crush
Assisted-by: Crush:glm-5.2
26 lines
846 B
Bash
Executable File
26 lines
846 B
Bash
Executable File
#!/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
|