Four skills in Unity-Technologies/skills have invalid YAML frontmatter and can't be installed

Four skills in Unity-Technologies/skills have invalid YAML frontmatter and can’t be installed

Posting here because Unity-Technologies/skills has Issues disabled, and its CONTRIBUTING.md
points here for feedback. I have a fix ready as a branch, but the repo also limits opening a pull
request to collaborators, so I can’t submit it directly:

An owner of this repository has limited the ability to open a pull request to users that are
collaborators on this repository.

Branch, which GitHub reports as Able to merge:

If a maintainer wants it as a PR, I’m happy to open one given access — or just take the four lines.

The problem

skills/ui, skills/ui-imgui, skills/physics-3d-collision and
skills/tilemap-ruletile-createfromsegment have SKILL.md frontmatter that is not valid YAML.

Each has an unquoted description: scalar containing a colon followed by a space:

description: <text> … <word>: <more text>
                              ^^

YAML’s plain-scalar rule is that ": " inside an unquoted value ends the scalar and starts a
mapping value, so the parser stops with mapping values are not allowed here.

Skill Text at the break
ui …settings or pause screens) when no framework is named: consult this skill to detect…
ui-imgui …or OnGUI. Do not use for NEW editor windows or tools: new editor UI defaults to UI…
physics-3d-collision …for MonoBehaviour-based Unity projects. Primary scope: OnCollisionEnter / OnTr…
tilemap-ruletile-createfromsegment …output patterns into Unity RuleTile TilingRules: 3x3 grid text patterns…

For ui and ui-imgui the defect arrived with the sentence that was added to widen the
description — the earlier, shorter ones parse fine.

What it breaks

Anything that parses the frontmatter rejects those files. npx skills does:

npx skills add Unity-Technologies/skills --skill "physics-3d-collision" -y --copy
◇  Found 27 skills
■  No matching skills found for: physics-3d-collision

27 found, 31 directories in skills/ — the four missing are exactly these.

And on an existing install:

npx skills update -y -p
✗ Failed to update ui
✗ Failed to update ui-imgui

Every other skill in the same run updated fine, so it is per-file rather than environmental. The
same failure reproduces with a plain YAML parser, independent of the installer:

import yaml
text = open("skills/ui/SKILL.md", encoding="utf-8").read()
yaml.safe_load(text.split("---")[1])
# yaml.scanner.ScannerError: mapping values are not allowed here

Practical impact:

  • physics-3d-collision and tilemap-ruletile-createfromsegment can’t be installed at all.
  • ui and ui-imgui can be installed from a revision predating the defect, but never updated past
    it. Anyone who vendored them earlier is pinned silently — skills update prints the failure line
    and then a success summary, which is easy to miss.
  • ui is the routing skill the other UI skills defer to, which makes it the costliest of the four.

The fix

Quote the scalar. Four lines, one per file, no description text changed — the parsed value is
identical to the line it replaces. Afterwards all 31 skills parse.

Two suggestions beyond the fix

  • A CI step that YAML-parses every skills/*/SKILL.md. The failure is silent from the authoring
    side: the Markdown renders correctly and only the frontmatter is malformed, so this will recur.
  • A note in CONTRIBUTING.md. Its frontmatter template shows a plain unquoted scalar and says
    nothing about quoting, so the template invites the bug.

One more thing worth deciding separately: CONTRIBUTING.md says “Open a PR. A maintainer reviews
and merges”, but the repository setting above makes that impossible for anyone outside the org. Some
route for outside contributions — enabling Issues, or relaxing that setting — would help, since the
invitation is already written.