NousResearch/hermes-agent

Skill name mismatch between frontmatter and directory name

Cluster 11777 · gateway. Data as of

2 open items. Fix merged in #11853 on 18 Apr 2026. Check it covers your case.

The short answer

1open issue
1open PR
10items grouped
Known?
Yes. 10 related items grouped here, 3 issues already closed.
Fix event
A fix was merged to main in PR #11853. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this partially resolved, deciding PR #11853. That is separate from the fix event.
Still open
1 issue and 1 PR.

Most members concern skills being listed or indexed by one name (frontmatter) but looked up or created by another (directory name), affecting skill_view, skills_list, and the system prompt index. One member, an automated '7 identified issues' fix, is not clearly tied to this theme.

Open issues1

  • Issue#21782[Bug]: `_create_skill` / `_edit_skill` allow frontmatter `name` to diverge from directory name

Open PRs1

  • PR#18337fix: resolve 7 identified issues [automated]

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #11853 fix(skills): use frontmatter name in skills index instead of directory name

    merged to main

    files: agent/prompt_builder.py

    Show the diff
    • agent/prompt_builder.py
      @@ -654,7 +654,7 @@ def build_skills_system_prompt(
                   ):
                       continue
                   skills_by_category.setdefault(category, []).append(
      -                (skill_name, entry.get("description", ""))
      +                (frontmatter_name, entry.get("description", ""))
                   )
               category_descriptions = {
                   str(k): str(v)
      @@ -679,7 +679,7 @@ def build_skills_system_prompt(
                   ):
                       continue
                   skills_by_category.setdefault(entry["category"], []).append(
      -                (skill_name, entry["description"])
      +                (entry["frontmatter_name"], entry["description"])
                   )
       
               # Read category-level DESCRIPTION.md files
      @@ -722,9 +722,10 @@ def build_skills_system_prompt(
                           continue
                       entry = _build_snapshot_entry(skill_file, ext_dir, frontmatter, desc)
                       skill_name = entry["skill_name"]
      -                if skill_name in seen_skill_names:
      +                frontmatter_name = entry["frontmatter_name"]
      +                if frontmatter_name in seen_skill_names:
                           continue
      -                if entry["frontmatter_name"] in disabled or skill_name in disabled:
      +                if frontmatter_name in disabled or skill_name in disabled:
                           continue
                       if not _skill_should_show(
                           extract_skill_conditions(frontmatter),
      @@ -732,9 +733,9 @@ def build_skills_system_prompt(
                           available_toolsets,
                       ):
                           continue
      -                seen_skill_names.add(skill_name)
      +                seen_skill_names.add(frontmatter_name)
                       skills_by_category.setdefault(entry["category"], []).append(
      -                    (skill_name, entry["description"])
      +                    (frontmatter_name, entry["description"])
                       )
                   except Exception as e:
                       logger.debug("Error reading external skill %s: %s", skill_file, e)

4 PRs closed without merging

From the close comments: done elsewhere 1 · duplicate 1 · superseded by another PR 1 · other 1

  • #17918 fix(skills): resolve skill_view by frontmatter name · other → #18337, #17914
  • #18879 fix(skills): skill_view fallback to frontmatter name lookup (fixes #18872) · superseded by another PR → #18901
  • #18901 fix(skills): add frontmatter-name fallback in skill_view to resolve name mismatch · done elsewhere → 9caa12f
  • #21815 fix(skills): prevent frontmatter name from diverging from directory name · duplicate → #21806, #21782
Closed issues · 3
  • Closed#11777[Bug]: System prompt skills index uses directory names instead of frontmatter names, breaking skill routing
  • Closed#17914skill_view resolves by directory name but skills_list displays frontmatter name — mismatch causes 'not found'
  • Closed#18872[Bug]: skill_view/skills_list name mismatch breaks agent tool-calling loop — model can't load skills it discovers
How this cluster was grouped
  • Link evidence (partly structural links): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
  • Members outside that structural core may belong to a different underlying problem.
  • Pairwise link density 0.18: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
gateway
Merged PRs
#11853
Closed issues
3
Attempts
4 PRs closed without merging
Fix link checked
18 Apr 2026. This confirmation is old and may be out of date (a revert or reopen would not have invalidated it here); re-verify.

For your agent

The same facts, typed.