skills-package-manager
Use this skill for repositories that already use skills-package-manager, or when a user needs help understanding and editing its manifest and CLI workflow.
Core Model
skills.jsonis the source of truth. It declares which skills a repo wants, the pinned git commits or npm versions to use, where to materialize skills, where to link them, and whether to include the bundled helper skill.- Installed directories such as
.agents/skillsand linked directories such as.claude/skillsare outputs. They are produced fromskills.json; they are not canonical config.
What selfSkill Means
selfSkill: trueadds the bundledskills-package-manager-cliskill during install.- The bundled skill is injected at runtime. It should not be added manually under
skillsunless there is a very specific reason.
Command Guide
npx skills-package-manager init- Creates
skills.json. npx skills-package-manager init --yeswrites the default manifest immediately.
- Creates
npx skills-package-manager add <specifier> [--skill <name>...]- Adds a skill to
skills.json. - Resolves remote git/npm inputs into pinned specifiers in the manifest.
- GitHub shorthand, GitHub URL, and GitHub tree URL inputs are written back as
github:owner/repo#<commit>&path:<path>. - Compatible with common
npx skills addflags:-s/--skillcan repeat,-l/--listlists without installing,--allselects all skills and all known project agents,-a/--agentcan repeat, and--copyis accepted as a no-op compatibility flag. - Installs it into
installDirand links it into eachlinkTarget.
- Adds a skill to
npx skills-package-manager install- Resolves and installs everything declared in
skills.json. - Does not write a separate lock file.
- Resolves and installs everything declared in
npx skills-package-manager update [skill...]- Updates git skills to the latest
maincommit and npm skills to the registrylatestversion. - Writes updated pins back to
skills.jsononly after install succeeds. - Skips
link:,local:, andfile:skills.
- Updates git skills to the latest
How To Triage User Questions
If the user wants to change which skills a repo uses: Edit
skills.json, then runnpx skills-package-manager install.If the user wants newer remote skills: Run
npx skills-package-manager updateor update the pinned specifier inskills.json.If the user says a skill is missing in their agent: Check
installDir,linkTargets, generated skill directories, and symlinks.If the user is confused about
selfSkill: Explain that it enables the bundledskills-package-manager-clihelper skill, not an arbitrary repo-local skill.
Specifier Reminders
github:owner/repo#commit&path:/skills/namepoints to a pinned GitHub skill.link:./path/to/skill-dirpoints to a local skill directory and is symlinked intoinstallDir.local:*keeps an existing user-owned skill at${installDir}/${skillName}in place.local:./path/to/existing-skill-dirkeeps an existing user-owned skill directory in place.file:./pkg.tgz&path:/skills/namepoints to a packaged tarball plus skill path.npm:@scope/pkg@1.0.0&path:/skills/nameresolves a package from the configured registry.
Validation Checklist
- Keep
manifest,installDir,linkTargets,skills, andspecifierterminology exact. - Treat
skills.jsonas the only user-maintained config file. - If you change this bundled skill inside the
skills-package-managerrepo, revalidate the skill folder.