Plugin authoring
Reusable public SKILL.md workflows for AI agents
npx -y skills add selamy-labs/agent-skills --skill plugin-authoringAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when packaging skills, commands, agents, or hooks into a Claude Code plugin and publishing to a marketplace. Get the directory structure, plugin.json and marketplace.json manifests, version bump, and local-test loop right so the plugin installs cleanly and is version-pinnable.
SKILL.md
2.5 KB, as published. Nobody here has run it
Plugin Authoring
A Claude Code plugin bundles skills (and optionally commands, agents, hooks, MCP servers) into one versioned, installable unit distributed through a marketplace. Getting the structure and manifests right is what makes it install cleanly and pin to a known version — the failure modes are all in the layout and the JSON.
Structure
my-plugin/
.claude-plugin/
plugin.json # the plugin manifest
skills/<name>/SKILL.md
commands/<name>.md # optional
agents/<name>.md # optional
hooks/ # optional
The marketplace is a separate repo (or root) with a marketplace.json listing
the plugins it offers.
Manifests
plugin.json — identity + version (the thing consumers pin):
{
"name": "my-plugin",
"version": "0.2.0",
"description": "One line on what it provides",
"author": { "name": "...", "email": "..." }
}
marketplace.json — the catalog entry pointing at the plugin:
{ "name": "my-marketplace",
"plugins": [{ "name": "my-plugin", "source": "./my-plugin" }] }
The loop that prevents broken releases
- Build the structure; keep one capability per skill.
- Validate locally — install the plugin from a local path and confirm the skills/commands actually load before publishing. A manifest that parses but ships a skill that won't load is the classic invisible break.
- Version deliberately — bump
plugin.jsonversionon every change; consumers pin to it, so an unversioned change silently shifts everyone. - Publish by updating the marketplace entry, then have a consumer install the pinned version and verify it resolves.
Discipline
- Version-pin in consumers, never float — reproducibility beats "latest."
- One bundled unit, declared per workload — each workload's config names the plugin + version it gets, so what's installed is auditable.
- Don't ship exec scripts inside skills — keep skills as instructions; put any tooling in the plugin's scripts/commands, audited separately.
Adapted from the MIT-licensed softaworks/agent-toolkit plugin-packaging skill (guidance only; upstream's generator script intentionally omitted).
Gives 0 of the 12 instructions most skill authoring skills give
Counted across 521 of the 523 authors here whose files we hold, read 2026-08-06
- keep skill files under 500 linesin 182 of 521, across 89 files
- use imperative form in instructionsin 101 of 521, across 30 files
- draft assertions while test runs are in progressin 88 of 521, across 22 files
- save test cases to evals jsonin 87 of 521, across 21 files
- create two to three realistic test promptsin 85 of 521, across 20 files
- write skill descriptions to be pushyin 84 of 521, across 19 files
- ask questions about edge cases and input formatsin 81 of 521, across 16 files
- save timing data immediately when runs completein 74 of 521, across 9 files
- include all trigger conditions in the skill descriptionin 73 of 521, across 7 files
- capture intent before writing a skillin 70 of 521, across 4 files
- launch all test runs in a single turnin 68 of 521, across 2 files
- write the description in third personin 56 of 521, across 19 files
Said here and by no other author read
- create a plugin manifest
- create a marketplace catalog entry
- keep one capability per skill
- install the plugin from a local path before publishing
- confirm skills and commands load before publishing
- update the marketplace entry to publish
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.