Fix npx skills add compatibility with a one-character, zero-content-loss fix (#50) - #58
Merged
Merged
Conversation
…oss fix (#50) The Vercel Agent Skills CLI (npx skills add) was silently failing to discover tastemaker at all - it scanned the repo, found only the vendored ideagram/ sub-skill, and installed that instead. A user running the documented install command today would get the wrong skill with no error. Root-caused properly rather than guessed, through direct empirical testing (isolated scratch repros, not assumptions): - The official Agent Skills spec allows descriptions up to 1024 characters. Ours was 866 - spec-compliant. - An initial binary search against real (truncated) description text found a "failure" boundary around 720-740 characters, which looked like an undocumented length limit in the CLI. - That theory didn't hold up: a freshly-rewritten 684-character description still failed, while the *original* text truncated to the exact same 684 characters worked. Length wasn't the variable. - Isolated the actual cause by testing fragments independently, then recombined: the sentence "Also triggers on two verbs: "study"/..." broke discovery specifically because of the colon after "verbs". Reproduced by taking the full, unmodified, byte-for-byte original description and changing only that one colon to a comma - fixed it outright, confirmed with a real end-to-end install against this actual repo (`Found 1 skill / Skill: tastemaker`, correctly, with no skillPath override needed - it's found at the standard location). Most likely explanation: a colon followed by a space inside an unquoted YAML plain-scalar frontmatter value can read as an attempt to open a nested mapping to a less strict/spec-compliant YAML parser, even though it's syntactically valid per the YAML spec in this position. Whatever the CLI's exact parser does internally, the fix required is the same either way. This is a one-word change: "two verbs:" -> "two verbs,". Every other character of the description - the full trigger phrase list, both verb examples, the AI slop / AI app language - is byte-for-byte identical to before. No content lost, no rewrite, no shortening. Checked for other colons in the description first (found exactly two: the required YAML key separator itself, and this one) so nothing else needed the same fix. Verified: `plugin.json` and `marketplace.json` (from #49) carry their descriptions as proper double-quoted JSON strings, which have no equivalent ambiguity - confirmed unaffected, no changes needed there. All test artifacts (.agents/, .claude/, skills-lock.json, skills/ideagram) generated by repeated local npx skills add runs during investigation were cleaned up before this commit; none are part of the change. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks
codeswithroh
added a commit
that referenced
this pull request
Jul 26, 2026
…elog current (#71) Resolves #53. Added version: 1.0.0 to SKILL.md's frontmatter — a real, considered call: the generative core (palette gen, structure/diversification, gates, verbs) has been exercised across many real builds, not just written and left untested, which is past a 0.x designation honestly. The site changelog (site/changelog.html) was 12 merged PRs behind (#47, #48, #57, #58, #59, #64-67, #69-70 were missing) — backfilled those before generating the root file from it, so the two don't start out already drifted. CHANGELOG.md is a condensed summary pointing to the site as the canonical, PR-linked detailed record, per the issue's second option. Also fixes a real, already-merged bug: the marketing site's actual live domain is tastemaker-ai-skill.netlify.app, not tastemaker-skill.online — the wrong domain had been used in #70's sponsor-pitch.md draft; corrected here before it's used for real outreach.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #50.
The bug
`npx skills add` was silently discovering the wrong skill entirely — it found our vendored `ideagram/` sub-skill and installed that instead of tastemaker, no error. A user following the documented install command today would get the wrong thing.
Root cause, found empirically not guessed
Chased this through several rounds of isolated scratch-repo testing:
Most likely explanation: a colon-space sequence inside an unquoted YAML plain-scalar frontmatter value reads as an attempted nested mapping to whatever parser this CLI uses internally, even though it's valid in this position per the YAML spec.
The fix
One word: `"two verbs:"` → `"two verbs,"`. Everything else in the description — the full trigger-phrase list, both verb examples, all the specific wording — is byte-for-byte identical. No rewrite, no shortening, no content loss.
Also checked `plugin.json`/`marketplace.json` (from #49) — those carry descriptions as proper double-quoted JSON strings, which have no equivalent ambiguity. Confirmed unaffected.
Test plan
🤖 Generated with Claude Code