agentsclimarketplace

Release

Skill joshsmithxrm/ppds-skills/.claude/skills/release

PPDS Skills — knowledge layer teaching AI coding agents to drive the Power Platform Developer Suite

Install
npx -y skills add joshsmithxrm/ppds-skills --skill release

Assembled 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 release skill §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 --prerelease install guidance and stale rc mentions in README.md, DESIGN.md, skills/*/SKILL.md, and hand-written skills/*/references/*.md.
  • Leave alone: CHANGELOG.md (immutable history) and CONTRIBUTING.md (intentionally version-agnostic runbook guidance).
  • MCP pin tracks the captured serverInfo.version (which can lag the NuGet package), so bump ppds_mcp_version_tested only if that value changed.

4. Version + CHANGELOG

  • Bump version in .claude-plugin/plugin.json and the marketplace.json plugin entry — the eval enforces they match.
  • Add a CHANGELOG.md entry (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 release skill §8 — what triggers our recapture on a PPDS stable.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.