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.

Activity

  1. ayghri commented on Jul 31, 2026

    @ayghri
    Owner

    I think we should raise this first in the agentskills repo, the documentation seems inconsistent.

    In the frontmatter overview:

    Field Required Constraints
    metadata No Arbitrary key-value mapping for additional metadata.

    Later in "metadata field":

      -  A map from string keys to string values
    

    "arbitrary key-value" is not the same as "string-string key-value".

  2. Repository owner deleted a comment from on Aug 4, 2026
  3. Repository owner deleted a comment from on Aug 4, 2026
  4. Repository owner deleted a comment from on Aug 5, 2026
  5. SID-6921 commented on Sep 9, 2026

    @SID-6921

    This is already tracked upstream: agentskills/agentskills#514 (filed 2026-08-21, still open, same string-vs-map ambiguity). No new issue needed here. Added the case there as a second confirmed data point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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