prepare-release
Skill887 starsChanged 29 days agoMITView on GitHub
Prepare one or more crates for a stable or beta (preview) release
47 other projects use a version of this.
Adopted by
Most recently taken up by
- leancodepl/patroltheir own version, first seen Nov 9, 2026
- CherryHQ/cherry-studiotheir own version, first seen Nov 8, 2026
- Krzysztof318/MailFathomtheir own version, first seen Nov 7, 2026
- epam/ketchertheir own version, first seen Nov 1, 2026
- netbox-community/netboxtheir own version, first seen Nov 1, 2026
- microsoft/vscode-languageserver-nodetheir own version, first seen Nov 1, 2026
Used with
Projects with it also use publish-release, sync-docs and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Model Context ProtocolSkillpublish-release
Publish a GitHub release for the C# MCP SDK after a prepare-release PR has been merged. Refreshes release notes to include any PRs merged since preparation, warns about version or breaking change impacts from late-arriving PRs, and creates a draft GitHub release. Use when asked to publish a release, finalize a release, create release notes, or complete a release after the prepare-release PR has been merged.
Also in 3 projects that use this
Eipi-TongSkillsync-docs
Update SPEC.md and docs/DECISIONS.md to reflect recent code changes. Use after completing a feature, or when the user says "sync docs", "update the spec", or "log this decision".
Also in 4 projects that use this
thlaureSkillreview-change
Use this skill when the user asks for a code review, a correctness pass, a check before PR, or asks whether a Signalist change follows project conventions.
Also in 3 projects that use this
DockerSkillfix-issue
Fix a single GitHub issue end-to-end: triage, research, write the fix, review, and create a PR. Use when asked to fix an issue: "fix issue 1234", "resolve #500", "create a PR for issue 200".
Also in 4 projects that use this
kiminmonacoSkillimplement-feature
Guide for implementing features in ClaudeBar following architecture-first design, TDD, rich domain models, and Swift 6.2 patterns. Use this skill when: (1) Adding new functionality to the app (2) Creating domain models that follow user's mental model (3) Building SwiftUI views that consume domain models directly (4) User asks "how do I implement X" or "add feature Y" (5) Implementing any feature that spans Domain, Infrastructure, and App layers
Also in 3 projects that use this
SentrySkillwrite-docs
Create or update documentation pages for the Abacus docs site. Use when adding new documentation, updating existing pages, or ensuring docs stay in sync with code changes. Ensures pages follow Starlight patterns and build correctly.
Also in 3 projects that use this
Other versions47 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 47
- CherryHQ/cherry-studio★ 53ksame name
- redis/go-redis★ 22ksame name
- netbox-community/netbox★ 22ksame name
- joke2k/faker★ 19ksame name
- pybind/pybind11★ 18ksame name
- telepresenceio/telepresence★ 7.3ksame name
- modelcontextprotocol/csharp-sdk★ 4.6ksame name
- tmoroney/auto-subs★ 4.5ksame name
- CLIUtils/CLI11★ 4.5ksame name
- ethereum/consensus-specs★ 4ksame name
37 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository22 other files it gives its agents.
- AGENTS.mdAGENTS.md
- eng/tools/generate_api/AGENTS.mdAGENTS.md
- samples/AGENTS.mdAGENTS.md
- sdk/core/AGENTS.mdAGENTS.md
- sdk/cosmos/AGENTS.mdAGENTS.md
- sdk/cosmos/azure_data_cosmos_emulator/AGENTS.mdAGENTS.md
- sdk/cosmos/docs/AGENTS.mdAGENTS.md
- agentic-workflowsSkill
- analyze-codeSkill
- check-spellingSkill
- create-crateSkill
- create-hotfixSkill
- create-perf-testSkill
- create-recorded-testSkill
- document-cratesSkill
- export-apiSkill
- lint-markdownSkill
- review-doc-commentsSkill
- update-emitterSkill
- update-rustSkill
- cosmos-design-structSkill
- cosmos-pre-commit-validationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 7 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 46 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use the bundled PowerShell helper for deterministic discovery and edits, then orchestrate the existing build, pack, and release scripts.
- Distinctive: line 18
Stable releases must never depend on preview releases: When preparing a stable release, assess dependencies for substantive changes since …
- Very specific: line 30
Use the current agent session's artifact directory for -SessionDirectory.
- Distinctive: line 31
Keep that directory consistent across repeated calls, including one-crate calls.
- Very specific: line 45
Read the resulting decision file.
- Very specific: line 80
Keep changed crates' existing path + version dependency wiring.
- Distinctive: line 95
Ask before expanding the release set to required unreleased dependencies outside the requested scope.
- Distinctive: line 100
Do not fix it by increasing the version.
- Very specific: line 120
If any selected crate is in sdk/core or sdk/identity, build the entire workspace, even when that selected crate is unchanged:
- Very specific: line 143
Use normal verified packing, without -NoVerify or -Release.
- Distinctive: line 148
Stop on build/pack failure, report its cause, and resolve it before preparation.
- Very specific: line 152
Only after builds and packing succeed, prepare each candidate in ReleaseOrder (dependencies first), invoking the common script once per …
- Very specific: line 160
Use -ServiceDirectory, not -ServiceName.
- Distinctive: line 167
If the execution environment cannot expose interactive input, let the user run/confirm this invocation rather than hanging or guessing.
“Common” is measured: kept by at least 6 in 10 of the 46 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Prepare a release
Use the bundled PowerShell helper for deterministic discovery and edits, then orchestrate the existing build, pack, and release scripts. Run from the repository root. Do not publish, create tags, commit, push, or switch branches.
Manifest package versions already represent the next release. Versions are bumped after every release. Never automatically increase a version, strip a beta suffix, or calculate a new release version. Only lower dependency requirements for substantively unchanged crates to their last applicable released versions; leave their own package versions unchanged.
Stable releases must never depend on preview releases. When preparing a stable release, assess dependencies for substantive changes since their last stable release, not their latest preview. A dependency unchanged since a preview may still contain changes that have never shipped in a stable release.
Analyze
- Collect one or more service directories (such as
coreandidentity), or explicit package names across services. Ask whether this is a stable or beta release if unspecified. Use the supplied release date, otherwise today's local date inyyyy-MM-ddformat. Normalize service paths such assdk/coreto their directory names before passing them to the helper. Use the current agent session's artifact directory for
-SessionDirectory. Keep that directory consistent across repeated calls, including one-crate calls. Run the helper through PowerShell:pwsh -File ./eng/scripts/Prepare-Release.Helpers.ps1 -FromSkill ` -ServiceDirectory core,identity -ReleaseType Stable ` -SessionDirectory <session-artifact-directory>Alternatively, pass
-PackageName azure_core,azure_identityinstead of-ServiceDirectory. Pass-ReleaseDate yyyy-MM-ddif supplied. Optionally use-PlanPath <session-artifact-directory>/release-core.jsonto keep multiple analyses. The helper is deliberately non-executable, has no shebang, and refuses to run without-FromSkill: this is an accidental-execution guard.- Read the resulting decision file. The helper enumerates
sdk/<service>/*/Cargo.tomlor finds package names undersdk/*/*/Cargo.toml, excludespublish = false, and checks package names against directory names. Cargo metadata is isolated behindGet-ReleaseInventoryso manifest discovery can replace it later.
The helper fetches tags directly from
https://github.com/Azure/azure-sdk-for-rust.git once per successful session and
repository combination, regardless of remote names. Repeated calls reuse a
session marker; failures do not mark the fetch complete. Never force-overwrite
conflicting tags or fall back to stale tags after a failed fetch.
Stable analysis uses the latest stable tag; beta analysis uses the latest stable
or prerelease tag. Versions are ordered semantically across all major versions.
An unlabeled 0.x tag is a stable SemVer baseline even though Azure release
policy treats 0.x as preview. No applicable tag means a first release.
Decide and apply
Compare each baseline to HEAD. Ignore only the crate's own version and empty/re-dated changelog scaffolding. Substantive changelog entries, dependency changes (including inherited workspace dependencies), and other directory changes count. The helper supplies changed paths and dependency relationships; read focused diffs when their significance is ambiguous:
git diff '<baseline-tag>..HEAD' -- sdk/<service>/<crate>Resolve decision-affecting local edits before applying a HEAD-based analysis; never discard user changes. Preserve unrelated edits.
- Set
Releasetofalsefor substantively unchanged crates. Their dependents should use the released baseline, not the next local version. First releases cannot be skipped this way. - Keep changed crates' existing
path + versiondependency wiring. Do not upgrade unrelated registry consumers. Preserve features, default-feature opt-outs, optional flags, and workspace inheritance. - Retain dev-only local wiring. When the same package is also a normal/build dependency in a manifest, keep all entries on the same source.
- Review local dependency relationships before excluding a crate. An otherwise
unchanged crate may need to ship a changed dependency. Record a concise
DecisionReasonfor overrides. For core, followsdk/core/AGENTS.mdsemver and changelog propagation rules without automatically increasing versions. - For a stable release, analyze required dependency crates with
-ReleaseType Stabletoo. Use their last stable versions only when substantively unchanged since those stable tags; otherwise they need a stable release as well. Check all shipped normal/build dependencies, including registry and target-specific entries, for preview requirements. Dev-only dependencies do not affect the published dependency graph. - Ask before expanding the release set to required unreleased dependencies outside the requested scope. Re-analyze the expanded selection only after agreement. Do not let packing silently choose additional release candidates.
- A manifest version inconsistent with the release channel, already released, or not newer than existing releases is a blocker for the user to resolve. Do not fix it by increasing the version.
The agent makes these judgments; do not build a release-decision engine or
scripted dialogue. Update only Release and DecisionReason in the session
decision file, then apply:
pwsh -File ./eng/scripts/Prepare-Release.Helpers.ps1 -FromSkill `
-Operation Apply -PlanPath <session-artifact-directory>/prepare-release.jsonThe helper rejects stale analysis, validates dependency scope, and uses the
existing Rust TOML editor to make formatting-preserving edits. It reports
ReleaseOrder, WorkspaceBuild, ChangedManifests, and BuildPackages. If
dependency decisions need revision, repeat analysis rather than bypassing a
blocker. Refresh Cargo.lock if needed using targeted Cargo resolution; do not
perform a blanket dependency upgrade.
Build and pack
If any selected crate is in sdk/core or sdk/identity, build the entire
workspace, even when that selected crate is unchanged:
cargo build --workspace --all-features --keep-going
cargo build --workspace --all-features --examples --tests --keep-goingOtherwise use BuildPackages to build release candidates and dependent crates
whose effective dependency declarations changed, including inherited changes:
./eng/scripts/Build-Crates.ps1 -ManifestDir @('sdk/<service>/<crate>', 'sdk/<service>/<dependent>')
cargo build --package <crate> --package <dependent> --all-features --examples --tests --keep-goingCompile examples and test targets for the same build scope, but do not run SDK tests. Then pack all release candidates together:
./eng/scripts/Pack-Crates.ps1 -PackageName @('<crate>', '<dependency>')Use normal verified packing, without -NoVerify or -Release. This validates
co-released unpublished dependencies using cargo package; -Release instead
uses cargo publish --dry-run against registry availability. Confirm the
expanded packed set contains no unapproved unpublished dependencies. An empty
release set skips packing and preparation, but dependency edits must still build.
Stop on build/pack failure, report its cause, and resolve it before preparation.
Prepare and confirm
Only after builds and packing succeed, prepare each candidate in ReleaseOrder
(dependencies first), invoking the common script once per crate:
./eng/common/scripts/Prepare-Release.ps1 -ServiceDirectory <service> `
-PackageName <crate> -ReleaseDate yyyy-MM-ddUse -ServiceDirectory, not -ServiceName. Always pass the date explicitly so
the common script does not choose a scheduled shipping date.
Accept the existing manifest version at the version prompt. Answer predictable prompts only when the evidence settles them. Ask the user before replacing an already-dated changelog entry or answering uncertain prompts, and relay their answer. Never feed an endless stream of defaults or implement a prompt adapter. If the execution environment cannot expose interactive input, let the user run/confirm this invocation rather than hanging or guessing. Track completed crates in the conversation to avoid repeating preparation.
The common script sanitizes changelogs but can merely warn on invalid content. Explicitly check prepared versions, dates, and changelogs:
pwsh -File ./eng/scripts/Prepare-Release.Helpers.ps1 -FromSkill `
-Operation Validate -PlanPath <session-artifact-directory>/prepare-release.jsonInspect the final diff to confirm dependency edits survived, no package version increased, and no unrelated files changed. If preparation altered manifest or dependency inputs, repeat the affected build and pack checks; otherwise reuse successful results. Report candidates, skipped crates and baselines, dependency changes, release date, and unresolved blockers. Preparation does not publish.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

