diff --git a/agent/skill_utils.py b/agent/skill_utils.py index d4d94f7e2..b26bf8298 100644 --- a/agent/skill_utils.py +++ b/agent/skill_utils.py @@ -200,6 +200,9 @@ def get_external_skills_dirs() -> List[Path]: if not isinstance(raw_dirs, list): return [] + from hermes_constants import get_hermes_home + + hermes_home = get_hermes_home() local_skills = get_skills_dir().resolve() seen: Set[Path] = set() result: List[Path] = [] @@ -210,7 +213,12 @@ def get_external_skills_dirs() -> List[Path]: continue # Expand ~ and environment variables expanded = os.path.expanduser(os.path.expandvars(entry)) - p = Path(expanded).resolve() + p = Path(expanded) + # Resolve relative paths against HERMES_HOME, not cwd + if not p.is_absolute(): + p = (hermes_home / p).resolve() + else: + p = p.resolve() if p == local_skills: continue if p in seen: