Repository navigation
fix(skills): exclude repo-native skills from public installs - #3856
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
miga-heygen
left a comment
There was a problem hiding this comment.
Reviewed head fadfa118322e5cee56b8dcfd93bbd02a1d164068 (one commit over main). Checked out in a detached worktree and reproduced the claims with the real installer rather than reading them.
Strengths
.claude/skills/*/SKILL.md:4-5/.agents/skills/*/SKILL.md:4-5— the six mirror pairs are byte-identical;node scripts/check-skill-mirror.mjsreports 24/24 matching, andbun scripts/lint-skills.tspasses 32 definitions (its schema already allowsmetadataas an optional mapping,lint-skills.ts:99).- README/AGENTS/docs wording now describes
--allas "the 20 published skills", which is exactly what the installer does at this head (below).
Verified
-
Ran
skillsCLI 1.5.25 (add <local path> --list) against this head and againstmain:Source --list--all --listINSTALL_INTERNAL_SKILLS=1 --listmain26 — — this head 20 20 26 The 6-skill difference is exactly captions-overlay, changelog-video, cut-the-curve, motion-doctrine, oversized-cursor, seam-craft, and the 20 remaining equal the
skills/directory one-to-one. -
metadata.internalis a documented field, not an undocumented behaviour: the CLI README's "Optional Fields" section defines it, and theINSTALL_INTERNAL_SKILLSenv var is in its environment-variable table. In the bundled source the filter ismetadata?.internal === truegated byINSTALL_INTERNAL_SKILLSbeing"1"/"true", applied both at local/GitHub discovery and to registry-provided skill lists. -
skills-manifest.jsoncorrectly untouched:gen-skills-manifest.tsfingerprintsskills/only, and running it at this head reports "already in sync — no change (20 skills)". CI'sskills-manifestjob runs the same--check. -
In-repo discovery is unaffected: Claude Code and Codex read
.claude/skills/.agents/skillsdirectly and treatmetadataas an opaque optional block per the Agent Skills spec; nothing in this repo readsmetadata.internal. -
No links in the changed doc lines; Mintlify preview reports Ready. Required checks: all green (regression, Semantic PR title; the build/test matrix correctly skipped for a docs/metadata-only diff).
Nits (non-blocking)
.claude/skills/README.md:50-54/.agents/skills/README.md:52-56— "To explicitly install these skills elsewhere, setINSTALL_INTERNAL_SKILLS=1" is true but not the only path: the CLI also includes internal skills whenever a concrete--skill <name>is passed (no env var needed). Worth one clause so nobody is surprised thatnpx skills add heygen-com/hyperframes --skill seam-craftstill works.- The exclusion is enforced by the CLI, so users on a
skillsCLI version that predatesmetadata.internalwill still see 26. The README's "excluded by default" reads fine; just noting the dependency.
Verdict: APPROVE
Reasoning: Metadata-only change whose every claim reproduces with the real installer (20 vs 26, exact six, opt-in restores 26), mirrors stay byte-identical, the manifest is correctly unchanged, and the docs match the observed behaviour.
— Miga
What
Exclude the six repo-native skills from normal
npx skills add heygen-com/hyperframesdiscovery and installation, including--all. Normal discovery now returns the 20 published skills instead of 26.Why
The six internal skills are intentionally mirrored under
.agents/skillsand.claude/skillsfor agents working in this repository. The installer scans both locations. Although skills 1.5.25 deduplicates names, it still exposes these six repo-only skills alongside the public catalog.How
Add
metadata.internal: trueto all six skills in both mirrors and update the installation documentation. Preserve both repo-local trees.INSTALL_INTERNAL_SKILLS=1remains an explicit opt-in to discover/install the internal skills. Existing user installations are not deleted or migrated.Test plan
--listand--all --list.INSTALL_INTERNAL_SKILLS=1lists all 26 skills.bun scripts/lint-skills.ts: 32 definitions pass.node scripts/check-skill-mirror.mjs: all 24 mirrored files remain byte-identical.This is a metadata/documentation-only change; no runtime TypeScript changes or new unit tests.