#!/usr/bin/env python3 """ Verification script for skills_inventory.json Confirms inventory matches actual skill files on disk. """ import json import os def verify_inventory(): inventory_path = "/root/.hermes/wizard-outputs/spark/skills_inventory.json" with open(inventory_path, 'r') as f: inventory = json.load(f) # Check that all listed skills exist on disk errors = [] for skill in inventory['skills']: # Construct expected path name = skill['name'] expected_path = f"/root/.hermes/profiles/spark/skills/{name}/SKILL.md" # Handle category-skill naming (e.g., apple-findmy -> apple/findmy) if '-' in name: parts = name.split('-', 1) expected_path = f"/root/.hermes/profiles/spark/skills/{parts[0]}/{parts[1]}/SKILL.md" if not os.path.exists(expected_path): errors.append(f"Missing: {name} (expected at {expected_path})") # Check total count actual_skill_count = sum(inventory['categories'].values()) print("=" * 60) print("SKILLS INVENTORY VERIFICATION") print("=" * 60) print(f"Total skills in inventory: {inventory['total_skills']}") print(f"Sum of category counts: {actual_skill_count}") print(f"Categories: {len(inventory['categories'])}") print() if errors: print("ERRORS FOUND:") for e in errors: print(f" ✗ {e}") return False else: print("✓ All skills verified on disk") return True if __name__ == "__main__": result = verify_inventory() exit(0 if result else 1)