#!/usr/bin/env python3 """Verify the Hermes Agent skill system is working correctly.""" import sys from pathlib import Path def verify_skill_system(): """Test skill loading and structure verification.""" from hermes_tools import skill_view, skills_list results = { "passed": 0, "failed": 0, "tests": [] } # Test 1: skills_list returns a valid response try: skills_response = skills_list() if skills_response.get("success") and "skills" in skills_response: skills = skills_response["skills"] results["passed"] += 1 results["tests"].append({ "name": "skills_list returns valid response", "status": "PASS", "details": f"Found {len(skills)} skills" }) else: results["failed"] += 1 results["tests"].append({ "name": "skills_list returns valid response", "status": "FAIL", "details": "Invalid response structure" }) except Exception as e: results["failed"] += 1 results["tests"].append({ "name": "skills_list returns valid response", "status": "FAIL", "details": str(e) }) # Test 2: skill_view loads a skill successfully try: skill_response = skill_view("hermes-agent") if skill_response.get("success") and skill_response.get("name") == "hermes-agent": results["passed"] += 1 results["tests"].append({ "name": "skill_view loads hermes-agent skill", "status": "PASS", "details": "Skill loaded with name: hermes-agent" }) else: results["failed"] += 1 results["tests"].append({ "name": "skill_view loads hermes-agent skill", "status": "FAIL", "details": "Failed to load skill" }) except Exception as e: results["failed"] += 1 results["tests"].append({ "name": "skill_view loads hermes-agent skill", "status": "FAIL", "details": str(e) }) # Test 3: skill has required fields try: skill_response = skill_view("hermes-agent") required_fields = ["name", "description", "version", "content", "tags"] missing = [f for f in required_fields if f not in skill_response] if not missing: results["passed"] += 1 results["tests"].append({ "name": "Skill has all required fields", "status": "PASS", "details": f"All fields present: {required_fields}" }) else: results["failed"] += 1 results["tests"].append({ "name": "Skill has all required fields", "status": "FAIL", "details": f"Missing fields: {missing}" }) except Exception as e: results["failed"] += 1 results["tests"].append({ "name": "Skill has all required fields", "status": "FAIL", "details": str(e) }) return results if __name__ == "__main__": print("=" * 60) print("HERMES AGENT SKILL SYSTEM VERIFICATION") print("=" * 60) print() results = verify_skill_system() for test in results["tests"]: status_symbol = "✓" if test["status"] == "PASS" else "✗" print(f"[{status_symbol}] {test['name']}") print(f" {test['details']}") print() print("=" * 60) print(f"SUMMARY: {results['passed']} passed, {results['failed']} failed") print("=" * 60) if results["failed"] > 0: sys.exit(1) sys.exit(0)