pi-allium-port/smoke/test-distill.sh

40 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -uo pipefail
# Smoke test: /skill:distill loads and the model responds with distillation methodology
# Expects: the response discusses extracting entities/rules from code
cd "$(dirname "$0")/.."
MODEL="Qwen3.6-35B-A3B-MXFP4_MOE.gguf"
TIMEOUT=180
echo "=== distill: invoking pi ==="
output=$(timeout "$TIMEOUT" pi -p --no-session --model "$MODEL" \
"/skill:distill I have a TypeScript function that checks if a user's subscription is active by comparing expiry date to now, and if expired sets status to 'expired'. How would you begin distilling this into an Allium spec? Keep it under 100 words." 2>&1)
rc=$?
if [ $rc -ne 0 ]; then
echo " FAIL: pi exited with code $rc"
echo "$output" | tail -20
exit 1
fi
if [ -z "$output" ]; then
echo " FAIL: empty response"
exit 1
fi
echo "$output"
echo ""
# Check the response is relevant to distillation
if echo "$output" | grep -iqE 'entit|rule|status|domain|abstract|spec|allium|subscription|temporal|transition'; then
echo " PASS: response contains distillation-relevant content"
exit 0
else
echo " FAIL: response does not appear to follow distillation methodology"
exit 1
fi