fix: exclude scan_modes and coordination from available skills

This commit is contained in:
0xallam
2026-01-19 22:57:54 -08:00
committed by Ahmed Allam
parent 6cb1c20978
commit 762c25d6ed

View File

@@ -1,6 +1,9 @@
from strix.utils.resource_paths import get_strix_resource_path
_EXCLUDED_CATEGORIES = {"scan_modes", "coordination"}
def get_available_skills() -> dict[str, list[str]]:
skills_dir = get_strix_resource_path("skills")
available_skills: dict[str, list[str]] = {}
@@ -11,6 +14,10 @@ def get_available_skills() -> dict[str, list[str]]:
for category_dir in skills_dir.iterdir():
if category_dir.is_dir() and not category_dir.name.startswith("__"):
category_name = category_dir.name
if category_name in _EXCLUDED_CATEGORIES:
continue
skills = []
for file_path in category_dir.glob("*.md"):
@@ -68,6 +75,29 @@ def generate_skills_description() -> str:
return description
def _get_all_categories() -> dict[str, list[str]]:
"""Get all skill categories including internal ones (scan_modes, coordination)."""
skills_dir = get_strix_resource_path("skills")
all_categories: dict[str, list[str]] = {}
if not skills_dir.exists():
return all_categories
for category_dir in skills_dir.iterdir():
if category_dir.is_dir() and not category_dir.name.startswith("__"):
category_name = category_dir.name
skills = []
for file_path in category_dir.glob("*.md"):
skill_name = file_path.stem
skills.append(skill_name)
if skills:
all_categories[category_name] = sorted(skills)
return all_categories
def load_skills(skill_names: list[str]) -> dict[str, str]:
import logging
@@ -75,7 +105,7 @@ def load_skills(skill_names: list[str]) -> dict[str, str]:
skill_content = {}
skills_dir = get_strix_resource_path("skills")
available_skills = get_available_skills()
all_categories = _get_all_categories()
for skill_name in skill_names:
try:
@@ -84,7 +114,7 @@ def load_skills(skill_names: list[str]) -> dict[str, str]:
if "/" in skill_name:
skill_path = f"{skill_name}.md"
else:
for category, skills in available_skills.items():
for category, skills in all_categories.items():
if skill_name in skills:
skill_path = f"{category}/{skill_name}.md"
break