versioning-policy

Enforces semver versioning rules for npm workspace packages to prevent prerelease leaks.

1|Updated Jul 7, 2026
One-click install
npx skills add https://github.com/seiggy/maf-copilot-studio-demo --skill versioning-policy-seiggy
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: versioning-policy
Source: https://github.com/seiggy/maf-copilot-studio-demo/tree/main/.squad/templates/skills/versioning-policy
Command: npx skills add https://github.com/seiggy/maf-copilot-studio-demo --skill versioning-policy-seiggy

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Prerelease versions like 0.9.1-build.4 committed to dev or main silently break npm workspace dependency resolution, causing builds to run against stale registry packages instead of local code — the root cause of the PR #640 incident. ## Core Features & Use Cases - Strict Semver Enforcement: Mandates MAJOR.MINOR.PATCH format with no prerelease suffixes on dev or main branches. - Version Sync Rules: Requires @bradygaster/squad-sdk, @bradygaster/squad-cli, and the root package.json to share identical versions at all times. - Ownership & CI Gates: Assigns all version bumps to the Surgeon release manager and defines the prerelease-version-guard CI gate that blocks PRs containing prerelease versions. - Use Case: When reviewing a PR that changes package.json versions, apply this policy to reject any -build.N prerelease strings and verify SDK/CLI version alignment before merge. ## Quick Start Review this pull request's package.json changes against the versioning policy and flag any prerelease versions or SDK/CLI version mismatches.

Frequently Asked Questions about versioning-policy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does npm workspace resolution fail with prerelease versions?

Per the semver specification, a range like `>=0.9.0` does not match prerelease versions such as `0.9.1-build.4`. npm then silently installs a stale published version from the registry instead of linking the local workspace package, so builds run against old code.

How do I keep SDK and CLI package versions in sync in a monorepo?

Update the root package.json and both package versions in lockstep so all three files share an identical version. The bump-build.mjs script automates this by updating all three files together during local builds.

Can prerelease versions ever be committed to main or dev branches?

No. Prerelease versions like `-build.N` are local-only artifacts created for development testing and must never be committed or pushed. A CI gate called prerelease-version-guard blocks any PR containing them.

Who is allowed to bump package versions in a release workflow?

Only the designated release manager (Surgeon) may modify version fields in package.json files. Other agents may only revert an accidentally committed prerelease version back to the clean release version as a safety escape hatch.

What should I do if I find a prerelease version in a PR diff?

Treat it as a bug and reject the PR. The prerelease-version-guard CI gate will also block the merge until the version is cleaned, and the skip-version-check label should only bypass it with release manager approval.