Skip to content

Auto-generated skill.md frontmatter is invalid YAML (unquoted description with a colon) - breaks npx skills add #6061

@ahmad-wzk

Description

@ahmad-wzk

Auto-generated skill.md frontmatter is invalid YAML (unquoted description with a colon) - breaks npx skills add

Site: https://docs.reap.video

Summary

The auto-generated skill.md frontmatter emits the description value unquoted, and the generated text contains a colon-space (: ). A plain (unquoted) YAML scalar may not contain : , so the frontmatter is invalid YAML. Every spec-compliant parser rejects it, which means npx skills add https://docs.reap.video fails with "No skills found" even though the index, the artifact, and the sha256 digest are all served correctly.

What is served today

GET https://docs.reap.video/.well-known/agent-skills/reap/skill.md begins:

---
name: Reap
description: Use when building video automation workflows: creating AI-powered short clips from long-form videos, adding captions, reframing for different aspect ratios, dubbing audio into multiple languages, generating transcriptions, or publishing clips to social media platforms (YouTube, Instagram, TikTok, LinkedIn, X).
metadata:
    mintlify-proj: reap
    version: "1.0"
---

The : in ...workflows: creating ... is the problem.

Reproduction

// Both parsers throw on the generated frontmatter:
require("yaml").parse('description: a: b')      // eemeli/yaml (used by the skills CLI)
//   -> "Nested mappings are not allowed in compact mappings"
require("js-yaml").load('description: a: b')     // js-yaml
//   -> "bad indentation of a mapping entry"

The skills CLI fetches the artifact, verifies the digest (passes), then calls parseFrontmatter, which throws. The exception is swallowed and the skill is dropped, producing "No skills found".

Impact

Any project whose auto-generated skill description happens to contain : (or other plain-scalar hazards like #) ships a broken skill, with no signal to the site owner — all server-side checks pass.

Requested fix

When serializing generated skill.md frontmatter, quote string values (or otherwise escape them) so values containing :, #, etc. remain valid YAML. For example:

description: "Use when building video automation workflows: creating AI-powered short clips ..."

This is content-independent and fixes it for every customer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions