Add a skill (to this repo)
Adding a skill is four coupled edits. Skip any and installs drift: a skill with no version bump
never reaches managed /plugin users; one missing from the README/CHANGELOG is invisible.
1. Write the SKILL.md — and make it agnostic
- Path:
plugins/<plugin>/skills/<kebab-name>/SKILL.md. Follow thewriting-skillsskill for craft (frontmattername+description; keep the body concise, ≤500 lines). - Genericize — this is the point of a public marketplace. These ship into strangers' repos.
Strip anything from the source project: app/repo/product names, sibling-skill names that don't
exist here, absolute paths, and stack specifics (
Vitest,Prisma,TZ=UTC,.next/types). Replace with the general shape ("the repo's type-checker", "any multi-environment test matrix"). - Cross-references to sibling skills in this repo are fine — verify the name actually exists.
model: haiku/sonnetonly if the skill is mechanical AND terminal; judgment-heavy skills inherit.
2. Pick the plugin
content = blog/technical writing · dev = code, git, QA, session wrap-up · general =
session-wide, codebase-agnostic helpers. Unsure between two? Ask the user — don't guess.
3. Bump that plugin's version
Edit plugins/<plugin>/.claude-plugin/plugin.json: SemVer, new skill → minor (0.1.0→0.2.0),
fix/wording → patch. Only the plugin you touched bumps. marketplace.json carries no versions —
but update its plugin description if the plugin's scope widened.
4. CHANGELOG + README
CHANGELOG.md: add an### Addedbullet under a<plugin> <new-version>heading.README.md: add a row to that plugin's skills table —[`name`](path/SKILL.md) | one-liner. Keep the table alphabetical.
Before done
- Grep the new SKILL.md for leaked source-project names/paths — expect none.
- Confirm: file written, plugin bumped, CHANGELOG entry, README row. Don't commit or push unless asked.