Skills
The npm package ships ten skills. They are the main way to work with universal-plugin — each owns
one job in the life of a plugin, from scaffolding it through publishing it, and the CLI underneath
it is there for scripting and CI, not the primary interface. In Claude Code they are invoked as
/universal-plugin:<name>; other runtimes match them against your request.
Authoring a plugin
Section titled “Authoring a plugin”Five skills cover the life of a plugin. Each is scoped by the thing it touches, which is what keeps them from competing for the same request.
| Skill | Owns |
|---|---|
init-universal-plugin | what the manifest declares |
doctor-universal-plugin | nothing; it only reads |
version | the released number |
build-plugin | the derived manifests, written |
remove-plugin | the artifacts, deleted |
Exactly one of them writes the canonical plugin.json. That is init-universal-plugin.
Distribution
Section titled “Distribution”| Skill | Use it to |
|---|---|
marketplace | generate the catalogs that let users install from this repository, and write the README install section |
migrate-plugin | move a repository-root plugin into the npm package that ships it |
publish-plugin | list a packaged plugin in the shared marketplace repository |
upgrade-plugin | bump the pinned universal-plugin@<version> a project calls |
adopt-upx | rewrite npx pins in your skills to the upx runner |
upgrade-plugin moves the version your project calls. version moves the version your plugin
publishes. They are different numbers.
Bundled launchers
Section titled “Bundled launchers”init-universal-plugin, doctor-universal-plugin, version, build-plugin, and marketplace each
ship a launcher in their own scripts/ directory. The launcher imports the CLI that shipped beside it, so a scaffold
or a diagnosis needs no network fetch and cannot resolve a different version than the one you
installed.
node scripts/doctor.mjsEvery skill body keeps a pinned npx fallback for the case where the path cannot be resolved. See
Running a CLI your own plugin ships
for the four requirements that make the pattern work.
Why four skills and not one
Section titled “Why four skills and not one”The authoring four started as a single gateway skill with a route table. No one name covered create, adopt, update, inspect, version, and delete, and one description that has to match all six matches each of them weakly.
The rule that replaced it: a new verb earns a route on the skill whose object it shares, and a skill of its own only when its object differs. Competing writers on one object are what fragments a surface, not the number of skills. ADR-0009 records the decision.