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-collisionandtilemap-ruletile-createfromsegmentcan’t be installed at all.uiandui-imguican be installed from a revision predating the defect, but never updated past
it. Anyone who vendored them earlier is pinned silently —skills updateprints the failure line
and then a success summary, which is easy to miss.uiis 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.