From 357e6637678195309f8f09b11ee1ee87be971392 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 15 Feb 2026 10:08:14 +0000 Subject: [PATCH] feat: add official skills-ref validation script 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 --- validate-skills-official.sh | 85 +++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 validate-skills-official.sh diff --git a/validate-skills-official.sh b/validate-skills-official.sh new file mode 100755 index 0000000..27e5c92 --- /dev/null +++ b/validate-skills-official.sh @@ -0,0 +1,85 @@ +#!/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