Skip to content

Bug: Nested SKILL.md metadata breaks strict Agent Skills parsers #93

Description

@DaVinci42

Summary

The i-have-adhd skill currently includes a nested object under the metadata field in skills/i-have-adhd/SKILL.md:

metadata:
  hermes:
    tags: [ADHD, Output Style, Productivity, Formatting]
    category: productivity
    related_skills: []

This can make the skill fail discovery in clients that implement the Agent Skills metadata field as a string-to-string map.

Expected behavior

The skill should be discoverable by Agent Skills-compatible clients, including clients with stricter frontmatter parsing.

Actual behavior

Crush rejects the skill during frontmatter parsing and skips it:

Failed to parse skill file error="parsing frontmatter: yaml: unmarshal errors:\n  line 7: cannot unmarshal !!map into string"

As a result, i-have-adhd does not appear in the available skills list.

Why this happens

The Agent Skills specification describes metadata as:

A map from string keys to string values

Reference: https://agentskills.io/specification

The current frontmatter uses:

  • metadata.hermes, a nested object
  • metadata.hermes.tags, an array
  • metadata.hermes.related_skills, an array

Those values are useful ecosystem-specific annotations, but they are not string values. A strict client that models metadata as map[string]string will fail to parse this frontmatter.

There is one nuance: the official skills-ref parser currently appears lenient and coerces nested metadata values to strings after parsing:

if "metadata" in metadata and isinstance(metadata["metadata"], dict):
    metadata["metadata"] = {str(k): str(v) for k, v in metadata["metadata"].items()}

So this may validate in the reference tooling, but it is still incompatible with clients that follow the documented string-to-string shape more strictly.

Suggested fix

Flatten the metadata values into strings, for example:

metadata:
  hermes_tags: "ADHD, Output Style, Productivity, Formatting"
  hermes_category: "productivity"
  hermes_related_skills: ""

Alternatively, remove the metadata block if those annotations are only needed by Hermes and not required for general Agent Skills compatibility.

Impact

Flattening or removing the nested metadata would make the skill usable in stricter Agent Skills clients while preserving the core skill behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions