Manifest
skills-package-manager uses skills.json as the single user-maintained configuration file.
skills.json
skills.json describes which skills a project needs, where they should be installed, and which agent directories should receive symlinks.
Field descriptions:
installDir: The directory where managed skills are written.linkTargets: Target directories where symbolic links should be created.selfSkill: Whether to auto-install the bundledskills-package-manager-cliskill during install. Defaults tofalse.patchedSkills: Optional mapping from skill name to a committed patch file path.skills: A mapping from skill name to specifier.dependencies: A generated lock mapping for dependencies discovered from installed skills'SKILL.mdfrontmatter.
Skills can declare dependencies in top-level frontmatter:
Dependency specifiers use the same syntax as skills.json. If skills.json.dependencies already contains the dependency name, that manifest entry is used as the source and re-pinned after a successful install.
Pinning Model
Remote versions are pinned in skills.json:
addresolves git refs to commits and npm packages to versions before writing the manifest.installdiscovers recursive frontmatter dependencies, writes their resolved pins intodependencies, and prunes stale dependency locks after a successful install.updatewithout arguments moves root skills and dependency locks to the latest resolvable git or npm version; named updates only target rootskills.- No separate lock file is written.
Recommended Practices
- Commit
skills.json. - Ignore generated skill directories such as
.agents/skillsand.claude/skills. - Prefer explicit
github:or git specifiers withpath:for external skills. - Use
local:*for existing user-owned skills that live under${installDir}/${skillName}.