mcpbeat

Refresh Arm SDK Release

azure/refresh-arm-sdk-release

**WORKFLOW SKILL** — Prepares Azure.ResourceManager SDK refresh pull requests in azure-sdk-for-net. WHEN: \"prepare sdk refresh\", \"refresh Azure.ResourceManager package\", \"update ARM SDK from autorest tag\", \"refresh changelog dependencies\". INVOKES: git and GitHub pull request tools for branch, commit, push, and PR creation. FOR SINGLE OPERATIONS: Use git or GitHub tools directly.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
6033
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Azure/azure-sdk-for-net --skill refresh-arm-sdk-release

The instruction itself

14 sections, as written by the author

Refresh ARM SDK Release Skill

When to Use This Skill

Activate only when the user wants an Azure.ResourceManager package refresh PR driven by API-version/tag resolution and dependency/changelog refresh updates.

Scope Boundaries

  • Use this skill only for refresh-style updates (for example regenerated surface alignment, changelog maintenance, dependency version refresh, and refresh PR creation).
  • Do not use this skill for broad or feature-driven package releases, release planning across multiple packages, or non-refresh release orchestration.

Prerequisites

  • Repository: azure-sdk-for-net
  • Target package path is known, for example sdk/dns/Azure.ResourceManager.Dns
  • Access to remote origin and GitHub PR creation
  • Current date available in yyyy-mm-dd format

Workflow

Step 1: Create Branch

  • Fetch latest origin/main.
  • Create a new branch from origin/main.
  • Use a branch name that identifies package and date.

Step 2: Eligibility Check — Skip Conditions

Before doing any further work on a package, check the CHANGELOG.md and skip the package (do not refresh it) if either of the following is true:

  • Already released: The latest changelog entry does NOT contain (Unreleased) — it already has a release date (e.g., ## 1.2.0 (2026-04-17)). This means a release was already prepared and no new (Unreleased) entry exists to stamp.
  • Dependencies already up to date: Any changelog entry (across all released versions, not just the latest) already contains upgrade lines for both the current Azure.Core and Azure.ResourceManager versions (resolved from eng/centralpackagemanagement/Directory.Packages.props). If these exact versions were already shipped in any prior release, adding them again provides no value, so skip.

When skipping a package, log it clearly as SKIPPED with the reason, and move on to the next package in the batch.

Step 3: Determine API Version Source in Order

  • Check metadata.json in the package root.
  • If present, use apiVersions value.
  • If metadata.json is missing, check src/autorest.md for an uncommented tag.
  • If tag is missing there, use the require value in src/autorest.md to open the referenced readme.md and read tag under Basic Information.

Step 4: Decide SDK Versioning Mode

  • If API version source indicates preview, use beta flow.
  • Otherwise use stable flow.

Step 5: Update CHANGELOG.md

  • Confirm the newest heading exists and has the latest package version.
  • During release finalization, replace Unreleased with current date using yyyy-mm-dd.
  • For stable flow only, determine the new stable version using this logic:
  • Find the latest released version in the CHANGELOG — the first entry that does NOT have (Unreleased).
  • If the latest released version is stable (e.g., 1.1.1): increment its patch to get the new version (e.g., 1.1.2).
  • If the latest released version is beta (e.g., 1.1.0-beta.7): strip the pre-release suffix to get the new version (e.g., 1.1.0). This handles promotion when the most recent work was done as beta.
  • If no released version exists at all (every entry is Unreleased or the changelog is empty): use 1.0.0.
  • Update the unreleased entry's heading to reflect the new stable version.
  • Remove empty sections under the latest entry when present:
  • Features Added
  • Breaking Changes
  • Bugs Fixed
  • Under Other Changes, add:
  • Upgraded dependent Azure.Core to 1.X.X.
  • Upgraded dependent Azure.ResourceManager to 1.X.X.
  • Always resolve these exact versions from eng/centralpackagemanagement/Directory.Packages.props at the time of refresh — do not hardcode or cache version numbers, as they may change between batches.

Step 6: Update Project Version for Stable Flow Only

  • If stable flow, set Version in src/Azure.ResourceManager.XXX.csproj to the new stable version matching the changelog entry.
  • If beta flow, keep beta versioning and do not apply a version bump.

Step 6b: Update README for First Stable Release

  • This applies only when there is no prior stable release in the CHANGELOG (only beta entries exist).
  • Add the line This is the first stable release of this library. immediately after the version heading (before any sections).
  • Open README.md in the package root and find the dotnet add package installation command.
  • If it contains --prerelease, remove that flag so the command installs the stable package.
  • Example: dotnet add package Azure.ResourceManager.XXX --prereleasedotnet add package Azure.ResourceManager.XXX

Step 7: Commit, Push, and Create PR

  • Commit with a refresh-focused message.
  • Push branch to origin.
  • Create PR with title format:
  • Prepare release for Azure.ResourceManager.XXX Version 1.x.x
  • Include summary of API source decision, refresh changes, and versioning mode.

Copyable Checklist

Refresh PR progress:

  • [ ] Branch created from origin/main
  • [ ] Eligibility checked — packages with no Unreleased entry or already-current deps skipped
  • [ ] API version source resolved using required precedence
  • [ ] Beta or stable mode decided
  • [ ] Changelog latest entry updated
  • [ ] Unreleased replaced with current date yyyy-mm-dd
  • [ ] Dependency upgrade lines added using central package versions
  • [ ] Csproj version updated if stable flow
  • [ ] README --prerelease flag removed if first stable release (version 1.0.0)
  • [ ] Commit and push completed
  • [ ] PR created with required title format

How to use it

Copy the folder

Take azure/refresh-arm-sdk-release from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.