Skills

Skill Discovery

The source process that finds SKILL.md files, reads frontmatter, and filters by platform.

Skill Discovery

What it is

The source process that finds SKILL.md files, reads frontmatter, and filters by platform.

In plain terms

Imagine a job listing that only surfaces to applicants whose profile matches its stated requirements — a posting marked ‘Chicago only’ never shows up to someone browsing from Miami. Skill discovery is Hermes running that same filter on every stored skill file: reading its declared requirements, then deciding whether it belongs in front of the agent on this particular machine right now.

Why it matters

Before any of the 175 skills spread across built-in, optional, and plugin sources can be used, agent/skill_utils.py has to walk the source tree, read each SKILL.md’s frontmatter, and filter the result down to whatever platform the current session is actually running on. That filtering step is what keeps an agent from being handed instructions meant for a platform it isn’t connected to. A misformatted frontmatter block tends to make a skill silently disappear during this process rather than error out loudly.

How it works

agent/skill_utils.py walks the local skills directory first, then any external directories set in config.yaml, using iter_skill_index_files — an os.walk that skips VCS, cache, and dependency folders along with progressive-disclosure support folders like references/ and scripts/, so only genuine skill roots get scanned. For every SKILL.md found, parse_frontmatter reads its YAML header. skill_matches_platform_list then compares a declared platforms list against the current operating system (with special handling so Termux/Android still matches skills tagged linux), and skill_matches_environment checks tags like kanban or docker against what’s actually detected as running. A skill with no platforms or environments field passes both checks automatically.

A concrete example

You install Hermes on a Windows laptop, and a friend’s old iMessage-automation skill ends up copied into your skills folder too. Because that SKILL.md declares platforms: [macos] in its header, discovery reads the tag, compares it to your OS, and quietly leaves it out of the skills list and slash commands — no error message, it simply never shows up. A different skill tagged environments: [kanban] stays hidden the same way; once a session actually has Kanban board delegation turned on, that session’s discovery pass picks up the change and starts surfacing it.

How it connects

This note belongs to the Skills family. Its closest neighboring concepts are: Skills, Skill Lifecycle, Agent Runtime, Personal OS.

Source evidence

  • vendor/hermes-agent/agent/skill_utils.py#<file> — Structural Source Map fallback for agent/skill_utils.py. A core source file in the Skill Discovery and Invocation structure within Skills and Plugins.

Workflows

  • No first-pass workflow mapping yet; this concept still appears in the vault graph through articles and source evidence.
  • No article currently mentions this concept by name/alias often enough to qualify (see mention-mining policy).