Added validate-skills-official.sh that uses the official skills-ref library from https://github.com/agentskills/agentskills for validation. This replaces the custom bash validation with the canonical implementation used by the Agent Skills project. All 25 skills pass validation. Usage: ./validate-skills-official.sh https://claude.ai/code/session_01DboBqyncsUPg5Z5qpLJx4x
85 lines
1.9 KiB
Bash
Executable file
85 lines
1.9 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Validation script using official skills-ref library
|
|
# https://github.com/agentskills/agentskills/tree/main/skills-ref
|
|
|
|
SKILLS_DIR="skills"
|
|
SKILLS_REF_DIR="/tmp/agentskills/skills-ref"
|
|
|
|
echo "🔍 Validating Skills Using Official skills-ref Library"
|
|
echo "========================================================"
|
|
echo "Reference: https://github.com/agentskills/agentskills"
|
|
echo ""
|
|
|
|
# Check if skills-ref is already installed
|
|
if [ ! -d "$SKILLS_REF_DIR/.venv" ]; then
|
|
echo "📦 Installing skills-ref library..."
|
|
echo ""
|
|
|
|
if [ ! -d "$SKILLS_REF_DIR" ]; then
|
|
cd /tmp
|
|
git clone https://github.com/agentskills/agentskills.git
|
|
fi
|
|
|
|
cd "$SKILLS_REF_DIR"
|
|
|
|
if command -v uv &> /dev/null; then
|
|
echo "Using uv to install..."
|
|
uv sync
|
|
else
|
|
echo "Using pip to install..."
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -e .
|
|
fi
|
|
echo ""
|
|
fi
|
|
|
|
# Activate the virtual environment
|
|
source "$SKILLS_REF_DIR/.venv/bin/activate"
|
|
|
|
# Return to the original directory
|
|
cd "$(dirname "$0")"
|
|
|
|
# Track results
|
|
PASSED=0
|
|
FAILED=0
|
|
FAILED_SKILLS=()
|
|
|
|
echo "Running validation..."
|
|
echo ""
|
|
|
|
# Validate each skill
|
|
for skill_dir in "$SKILLS_DIR"/*/; do
|
|
skill_name=$(basename "$skill_dir")
|
|
printf " %-30s" "$skill_name"
|
|
|
|
output=$(skills-ref validate "$skill_dir" 2>&1)
|
|
if echo "$output" | grep -q "Valid skill"; then
|
|
echo "✓"
|
|
((PASSED++))
|
|
else
|
|
echo "✗"
|
|
((FAILED++))
|
|
FAILED_SKILLS+=("$skill_name")
|
|
echo "$output" | sed 's/^/ /'
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "========================================================"
|
|
echo "Summary:"
|
|
echo " ✓ Passed: $PASSED"
|
|
echo " ✗ Failed: $FAILED"
|
|
echo ""
|
|
|
|
if [ $FAILED -eq 0 ]; then
|
|
echo "✅ All skills are valid!"
|
|
exit 0
|
|
else
|
|
echo "❌ Failed skills:"
|
|
for skill in "${FAILED_SKILLS[@]}"; do
|
|
echo " - $skill"
|
|
done
|
|
exit 1
|
|
fi
|