Template
Apply answers to questions-v1.md (Q1–Q5):
- Q4: Remove crush.json and hooks/ entirely. All enforcement is now portable
via git hooks (pre-commit/pre-push) + check-rules.sh + AGENTS.md prose.
Works under Crush, OpenWebUI, Hermes, or any agent framework.
- Q5: Remove docs/JOURNAL.md. Redmine is the system of record for work;
Discourse for docs. JOURNAL.md was a stopgap.
- Q3: Add mandatory Discourse pointer-header check to check-rules.sh. Any
non-exempt tracked .md without a Discourse URL FAILs. All projects, no
exceptions.
- Q2: Reference real CLI container invocation paths
(KNEL-AIMiddleware/{redmine,discourse}-cli/) in AGENTS.md instead of the
missing bin/ shortcuts.
- Q1: Note tea + docker login are preconfigured on TSYS workstations.
Also: make test default is now no-op pass so the template self-validates;
make validate now passes clean on the repo itself (17 PASS / 0 FAIL).
💘 Generated with Crush
Assisted-by: Crush via Crush <crush@charm.land>
26 lines
809 B
Bash
Executable File
26 lines
809 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# pre-commit — fast rule audit (< 1s typical).
|
|
# Hot-path bypass: commits that ONLY touch STATUS.md / WORKING.md skip the
|
|
# audit so frequent status/task 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|WORKING.md)$' || true)"
|
|
|
|
if [ -z "$HOT_PATHS" ]; then
|
|
echo "hot-path files only (STATUS/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
|