Release
PPDS Skills — knowledge layer teaching AI coding agents to drive the Power Platform Developer Suite
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.
One thing 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.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
3.4 KB, 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.