Release
Cut a PPDS Skills package release — get the recapture, decide the version bump, clean up prose, update CHANGELOG, tag + GitHub Release. Use when PPDS ships a new stable CLI/MCP that the skills package must track, or to publish any skills-package version bump.From its SKILL.md
npx -y skills add joshsmithxrm/ppds-skills --skill releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 2 stars2 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.
- runs commandsInstructs the agent to run 8 commands, including `gh workflow run recapture-on-release.yml` and 7 more.
SKILL.md
3.4 KB, 835 tokens by cl100k_base, as published. Nobody here has run it
Release (PPDS Skills package)
No NuGet/npm pipeline — users install from the repo / plugin marketplace, so a
"release" is a reviewed version bump on main plus a tag and GitHub Release. The
recapture is automated; this skill covers the judgment + finalization left to a
human.
When
- A new stable PPDS CLI/MCP shipped (the usual trigger — the engine's
releaseskill §8 dispatches the recapture automatically), or - any change warranting a published version bump.
1. Get the recapture
Preferred — let the automation produce the PR:
gh workflow run recapture-on-release.yml
It installs the released CLI/MCP, regenerates captured-help/ + references, bumps
the frontmatter pins, runs the gate, and opens a PR. Gotchas: the Allow
GitHub Actions to create and approve PRs repo setting must be on, and a
bot-opened PR shows no CI — close/reopen it to fire skill-evals.
Offline alternative: dotnet tool update -g PPDS.Cli && dotnet tool update -g PPDS.Mcp
then python3 tools/recapture.py. See CONTRIBUTING "Regenerating the references".
2. Read the capture diff → decide the version bump
Diff captured-help/ against the previous tag. Per the package's semver
(plugin.json / marketplace.json):
- PATCH — captures byte-identical, or only version strings moved (pure
alignment, e.g.
rc→ stable). - MINOR — new commands / flags / MCP tools (new documented capability), or new skill content.
- MAJOR — a skill renamed or removed.
3. Prose cleanup the gate can't catch
check_skills.py::check_prose_version_drift early-returns on a stable pin, so
hand-check these when moving rc → stable:
- Drop
--prereleaseinstall guidance and stalercmentions inREADME.md,DESIGN.md,skills/*/SKILL.md, and hand-writtenskills/*/references/*.md. - Leave alone:
CHANGELOG.md(immutable history) andCONTRIBUTING.md(intentionally version-agnostic runbook guidance). - MCP pin tracks the captured
serverInfo.version(which can lag the NuGet package), so bumpppds_mcp_version_testedonly if that value changed.
4. Version + CHANGELOG
- Bump
versionin.claude-plugin/plugin.jsonand themarketplace.jsonplugin entry — the eval enforces they match. - Add a
CHANGELOG.mdentry (Keep a Changelog sections) and the[X.Y.Z]release-link footer.
5. Gate + merge
python3 evals/check_skills.py # must pass: validates against the new capture
Open the PR, link/close the tracking issue (e.g. Closes #N), resolve any review
threads (conversation resolution is required to merge). Squash-merge.
6. Tag + GitHub Release
git checkout main && git pull # main now at the squash-merged release
git tag -a vX.Y.Z -m "release: X.Y.Z"
git push origin vX.Y.Z
gh release create vX.Y.Z --title "vX.Y.Z" --notes "<the CHANGELOG X.Y.Z section>"
References
CONTRIBUTING.md— "Regenerating the references" + "Release process"..github/workflows/recapture-on-release.yml— the recapture automation.- Engine
releaseskill §8 — what triggers our recapture on a PPDS stable.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 1 of the 12 instructions most ship operate skills give in 835 tokens
Counted across 1,077 of the 1,713 authors here whose files we hold, read 2026-09-06
- Create GitHub releasehere, and in 44 of 1077, across 43 files
- Run the test suitein 30 of 1077, across 25 files
- Create and push git tagin 27 of 1077, across 26 files
- Push commits and tagsin 27 of 1077
- Create annotated tagin 25 of 1077, across 22 files
- Ensure working tree is cleanin 24 of 1077
- Check for product marketing context firstin 23 of 1077, across 6 files
- Commit version bump changesin 22 of 1077, across 21 files
- Update CHANGELOG.mdin 21 of 1077, across 20 files
- Structure launch marketing across three channel typesin 20 of 1077, across 5 files
- Commit and tag the releasein 20 of 1077, across 18 files
- Update the CHANGELOG for new releasesin 19 of 1077
Said here and by no other author read
- Run the recapture workflow
- Close and reopen the PR to fire evals
- Clean up stale prerelease mentions in prose
- Run the check skills script
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.