Replies: 2 comments
|
Landed a fix for the exact mechanism you traced:
The "fix is one character" framing undersells it slightly — the safe fix is the narrow fallback, not changing one character in every author's frontmatter. Your dsh-movein |
|
Verified, the approach reads right. Catching only Two things from our side.
Until a fix ships in a release, |
Uh oh!
There was an error while loading. Please reload this page.
A skill can sit on disk, work every day in Claude Code, and be completely absent from DSH's catalog. No error, no log line, the agent just never sees it. We hit this while building a migration tool and traced the mechanism through the rc.6 source. Sharing it here because the failure is invisible by design and the fix is one character.
The mechanism. Claude Code reads
SKILL.mdfrontmatter with a lenient line-based parser, so everything after the first colon becomes the value. DSH hands the same block to the fullyamlnpm parser as an open object. In spec YAML, a second": "on a plain scalar line is a syntax error (Nested mappings are not allowed in compact mappings). The parse throws, DSH catches it per skill and moves on. The skill is simply not cataloged.Colons without a following space (
10:30,foo:bar) are safe, that is a valid plain scalar.Two traps stacked on top.
Related upstream discussion, #1401. Full writeup with every safe shape (quoting, block scalars, the no-frontmatter case) is here, https://github.com/sjh9714/dsh-movein/blob/main/docs/skill-vanish.md
If you moved your setup over with dsh-movein, the dry run warns on this shape before anything moves, and the new
doctorcommand (v0.5.0, shipped today) checks skills already inside DSH roots any time,Until the parser question in #1401 lands on a resolution, detection is the practical answer. Happy to add other vanish shapes to the check if you have hit one.
All reactions