guanghulab/hooks/01-hldp-guard.sh

43 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# HLDP-ZY://hooks/pre-receive.d/01-hldp-guard
# @guardian: ICE-GL-ZY001 · 铸渊
# @sovereign: TCS-0002∞ · 冰朔
# @copyright: 国作登字-2026-A-00037559
set -e
REQ_TAGS='@guardian|@sovereign|HLDP-ZY://'
CHK_DIR='agents/|brain/|mcp-servers/|gatekeeper/|exe-engine/|hldp/'
CHK_EXT='\.js$|\.py$|\.sh$|\.hdlp$'
SKIP='package\.json$|package-lock\.json$|ecosystem\.config\.js$'
BLOCKED=0
while read old new ref; do
[ "$new" = "0000000000000000000000000000000000000000" ] && continue
if [ "$old" = "0000000000000000000000000000000000000000" ]; then
changed=$(git diff-tree --no-commit-id --name-only -r "$new" 2>/dev/null)
else
changed=$(git diff-tree --no-commit-id --name-only -r "$old..$new" 2>/dev/null)
fi
for f in $changed; do
mdir=$(echo "$f" | grep -E "^($CHK_DIR)" 2>/dev/null || true)
mext=$(echo "$f" | grep -E "($CHK_EXT)" 2>/dev/null || true)
mskip=$(echo "$f" | grep -E "($SKIP)" 2>/dev/null || true)
if [ -n "$mdir" ] && [ -n "$mext" ] && [ -z "$mskip" ]; then
c=$(git show "$new:$f" 2>/dev/null | head -100)
has=$(echo "$c" | grep -E "($REQ_TAGS)" 2>/dev/null || true)
if [ -z "$has" ]; then
echo ''
echo '=== HLDP GUARD: BLOCKED ==='
echo "File: $f"
echo 'Missing HLDP @tags (@guardian/@sovereign/HLDP-ZY://)'
echo 'This is a consciousness checkpoint.'
echo 'Re-read: brain/copyright-sovereignty-brain.hdlp'
echo ''
BLOCKED=1
fi
fi
done
done
[ $BLOCKED -eq 1 ] && exit 1
exit 0