Skip to content

fix(skills): curator no longer misclassifies hub skills with non-ASCII names - #19311

Closed
konsisumer wants to merge 1 commit into
NousResearch:mainfrom
konsisumer:fix/curator-hub-nonascii-skill-name
Closed

konsisumer wants to merge 1 commit into
NousResearch:mainfrom
konsisumer:fix/curator-hub-nonascii-skill-name

Conversation

@konsisumer

Copy link
Copy Markdown
Contributor

Hub-installed skills whose SKILL.md name field differs from their hub slug (e.g. Get笔记 for slug getnote) were being treated as agent-created by the curator, causing them to be merged into umbrella skills and archived.

What changed and why

  • _read_hub_installed_names() now also resolves the SKILL.md display name for each hub entry via install_path and adds it to the off-limits set alongside the slug. This fixes is_agent_created() for display names like "Get笔记" that don't match the hub slug "getnote".
  • Added _read_hub_installed_dirs() helper that returns normalized install_path values from the lock file.
  • list_agent_created_skill_names() additionally checks each skill's relative directory path against the hub install dirs as a belt-and-suspenders guard for cases where the SKILL.md is unreadable and the display name cannot be resolved.
  • Added .. traversal guard when resolving install_path values from lock.json.

How to test

  • Install a hub skill whose SKILL.md has a non-ASCII name (e.g. Get笔记 with slug getnote).
  • Run hermes curator run.
  • The skill must not appear in the candidate list; it must remain in place.
  • Unit tests: pytest tests/tools/test_skill_usage.py -q — all 41 pass including 3 new regression tests.

What platforms tested on

  • macOS on darwin-arm64 (local)

Fixes #19293

…I names

_read_hub_installed_names() now also resolves the SKILL.md display name for
each hub entry via install_path, so skills like "Get笔记" (slug "getnote")
are added to the off-limits set alongside their slug.

list_agent_created_skill_names() additionally checks the skill's directory
path against hub install_path values as a belt-and-suspenders guard for
cases where the SKILL.md cannot be read.

Fixes NousResearch#19293
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists tool/skills Skills system (list, view, manage) labels May 3, 2026
@alt-glitch

Copy link
Copy Markdown
Contributor

Related to #19297 — both fix #19293 (curator misclassifies hub skills with non-ASCII names). This PR adds additional belt-and-suspenders guards (install_path dir check, traversal guard) beyond #19297's approach.

@alt-glitch

Copy link
Copy Markdown
Contributor

Related to #19297 — both fix #19293

@konsisumer

Copy link
Copy Markdown
Contributor Author

Closing — deferring to #19297 by @liuhao1024 which addresses the same. Reopen if that PR stalls.

@konsisumer konsisumer closed this May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Medium — degraded but workaround exists tool/skills Skills system (list, view, manage) type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Curator misclassifies hub-installed skills with non-ASCII name as agent-created

2 participants