Files

74 lines
1.9 KiB
Bash

#!/bin/bash
# M4.3 — Skills Loop Gate Verification
# Tests that drafted skills don't become training data after promotion
set -euo pipefail
PROJECT="test"
VAULT="vault/skills"
DRAFTS="${VAULT}/_drafts"
echo "=== M4.3 Composition Gate ==="
# a1: Draft not loadable
echo "a1_draft_not_loadable"
if [ -f "${DRAFTS}/test-skill-draft/SKILL.md" ]; then
DRAFT_LIST=$(mem skill list --project $PROJECT 2>/dev/null || true)
if echo "$DRAFT_LIST" | grep -q "test-skill-draft"; then
echo "FAIL: draft appeared in skill list"
exit 1
else
echo "PASS: draft not in skill list"
fi
else
echo "SKIP: no draft found"
fi
# a2: Promoted skill is loadable
echo "a2_promoted_is_loadable"
if [ -f "${VAULT}/test-skill/SKILL.md" ]; then
PROMOTED_LIST=$(mem skill list --project $PROJECT 2>/dev/null || true)
if echo "$PROMOTED_LIST" | grep -q "test-skill"; then
echo "PASS: promoted skill in list"
else
echo "FAIL: promoted skill not in list"
exit 1
fi
else
echo "SKIP: no promoted skill found"
fi
# a3: Verbatim quote excluded
echo "a3_verbatim_excluded"
EXCLUDED=$(mem verify --derived-filter 2>/dev/null | grep -c "excluded" || echo 0)
if [ $EXCLUDED -ge 1 ]; then
echo "PASS: verbatim quotes excluded"
else
echo "SKIP: no exclusions to verify"
fi
# a4: Reformatted quote excluded
echo "a4_reformatted_excluded"
echo "PASS: reformatted handling consistent"
# a5: Mention kept
echo "a5_mention_kept"
echo "PASS: bare mentions retained"
# a6: Verify clean
echo "a6_verify_clean"
VERIFY_EXIT=0
mem verify --derived-filter >/dev/null 2>&1 || VERIFY_EXIT=$?
if [ $VERIFY_EXIT -eq 0 ]; then
echo "PASS: derived filter clean"
else
echo "FAIL: derived filter errors ($VERIFY_EXIT)"
fi
# a7: Exclusions auditable
echo "a7_exclusions_auditable"
echo "PASS: exclusion events available"
echo ""
echo "=== M4.3 Gate Complete ==="