release-process

Standardizes npm and GitHub releases with semver validation and automation checks.

209|27|Updated Mar 10, 2026
One-click install
npx skills add https://github.com/dotnet/maui-labs --skill release-process-dotnet
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: release-process
Source: https://github.com/dotnet/maui-labs/tree/main/src/Comet/.copilot/skills/release-process
Command: npx skills add https://github.com/dotnet/maui-labs --skill release-process-dotnet

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Prevents broken, inconsistent, or non-published npm releases by enforcing a single definitive release checklist with hard stop rules.

Core Features & Use Cases

  • Semver Guardrails: Ensures only 3-part semver or valid prerelease formats are used, preventing npm version mangling from invalid 4-part versions.
  • NPM Token Verification: Validates that NPM_TOKEN is an Automation token (not a 2FA user token) to avoid CI EOTP failures.
  • Branch/Tag Hygiene: Releases only from main with a clean working tree and avoids tag collisions.
  • Release Publish Certainty: Requires GitHub Releases to be published (not draft) so the publish workflow reliably triggers.
  • Post-Publish Verification & Smoke Tests: Confirms npm registry publication, correct latest dist-tags, and successful real-world installs for both SDK and CLI.
  • Rollback Playbook: Provides nuclear (unpublish), preferred (deprecate + hotfix), and GitHub/tag/revert recovery steps for broken releases.

Quick Start

Use the release-process runbook to prepare a new Squad release by validating semver, confirming NPM_TOKEN is an Automation token, bumping package versions in lockstep, tagging and publishing the GitHub Release (not draft), then verifying npm latest dist-tags and performing install smoke tests.

Frequently Asked Questions about release-process

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

FAQPage Schema
Why does my npm publish fail in CI with an EOTP error?

npm publish fails with EOTP in CI when NPM_TOKEN is a granular access token with 2FA enabled instead of an Automation token. Revoke it and generate a new Automation type token to allow headless CI workflow publishing without interactive prompts.

How do I prevent invalid npm version mangling from 4-part semver formats?

To prevent npm version mangling, enforce strict semver validation that rejects 4-part versions and only accepts standard 3-part semver or valid prerelease formats before initiating a package version bump. This guardrail ensures clean registry metadata.

What's the best way to ensure a GitHub release triggers the publish workflow?

To ensure GitHub Actions publish workflows trigger, always create a published GitHub Release, never a draft. Draft releases do not emit webhook events, leaving the CI pipeline idle and preventing npm registry publication.

How do I verify a successful npm package release after CI completes?

Verify npm release success by checking the package registry publication status, confirming correct latest dist-tags, and executing real-world install smoke tests for both SDK and CLI packages to ensure the version is publicly accessible.

How do I rollback a broken npm package release?

Rollback a broken npm release by unpublishing if within the time window, or preferably deprecating the version and pushing a hotfix. Revert Git tags and GitHub releases to maintain repository state consistency.

Do I need a clean working tree on the main branch to publish a release?

Yes, branch hygiene requires releasing only from the main branch with a clean working tree and no tag collisions. This prevents merging unreviewed code into production and avoids Git reference conflicts during the release execution.