create-release
Skill916 starsChanged 8 days agoMITView on GitHub
Use when creating a new ASO release, including pre-checks, release notes generation, draft GitHub release creation, documentation updates, and ROADMAP changes.
17 other projects use a version of this.
Adopted by
Most recently taken up by
- richkuo/rk-skillstheir own version, first seen Nov 8, 2026
- microsoft/BC-Benchtheir own version, first seen Nov 6, 2026
- epam/ketchertheir own version, first seen Nov 1, 2026
- irpsv/ai-brotheir own version, first seen Nov 1, 2026
- getstackit/stackittheir own version, first seen Oct 30, 2026
- jniltinho/macos-kvm-guitheir own version, first seen Oct 25, 2026
Used with
Projects with it also use create-issue, create-pr and 1 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.
sahinSkillcreate-issue
Also in 4 projects that use this
SentrySkillcreate-pr
Create pull requests following Sentry conventions. Use when opening PRs, writing PR descriptions, or preparing changes for review. Follows Sentry's code review guidelines.
Also in 5 projects that use this
DockerSkillreview-pr
Review one or more incoming Docker documentation pull requests as a maintainer. Independently validate technical claims, assess editorial fit and information architecture, choose a verdict, and draft exact inline or PR-wide feedback behind a confirmation gate. Use for requests such as "review PR 123", "is this PR correct?", "does this information belong here?", "validate this PR", or "help review backlog PRs". Do not use to maintain or fix a PR you own; use maintain-pr for that.
Also in 4 projects that use this
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- Saptha-me/Bindu★ 10ksame name
- GetBindu/Bindu★ 10ksame name
- IndrajeetPatil/ggstatsplot★ 2.2ksame name
- mlightcad/cad-viewer★ 1.2ksame name
- epam/ketcher★ 932same name
- fpindej/netrock★ 234same name
- microsoft/BC-Bench★ 61same name
- glowingkitty/OpenMates★ 53same name
- richkuo/rk-skills★ 50same name
- getstackit/stackit★ 32same name
7 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 repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- create-new-resourceSkill
- create-release-notesSkill
- diagnosing-vcr-failuresSkill
- migrate-group-versioningSkill
- migrate-json-golden-testsSkill
- testing-aso-recordingsSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. 0 are common, 14 are distinctive, and 11 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
14
Distinctive
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
If the latest tag is v2.19.0, the new version is v2.20.0 (increment the minor version).
- Distinctive: line 20
All three pre-checks MUST pass before proceeding.
- Distinctive: line 24
Check the pre-release upgrade tests workflow:
- Distinctive: line 33
Check the scan controller image workflow:
- Distinctive: line 42
Check the experimental release:
- Distinctive: line 49
If any pre-check fails, report which check failed, why, and provide the relevant URL.
- Very specific: line 66
Use the scripts/v2/create-release.sh script to create a draft release:
- Distinctive: line 75
Create a local branch and make the following changes:
- Very specific: line 79
Update supportedResourcesReport.currentRelease to the new version in both:
- Distinctive: line 85
Run the code generators to update the resource documentation (moves resources from "Next Release" to "Released"):
- Distinctive: line 103
Check if the milestone referenced by the new future version in the ROADMAP exists:
- Distinctive: line 108
If the milestone does not exist, create it following the pattern of existing milestones:
- Very specific: line 115
If this release includes breaking changes, create or update docs/hugo/content/guide/breaking-changes/breaking-changes-<VERSION>.md (for …
- Distinctive: line 117
Follow the pattern of the existing v2.21.0 breaking changes page and other recent pages in that directory:
- Very specific: line 121
Add a ## Breaking changes section describing each change's user-visible impact and the migration steps, configuration changes, or …
- Very specific: line 122
If upcoming changes also need to be announced, add a separate ## Future breaking changes section, following the existing documentation …
- Distinctive: line 123
Keep the page consistent with the release notes.
- Very specific: line 124
Update docs/hugo/content/guide/breaking-changes/_index.md if it still lists a change taking effect in this release as upcoming.
- Very specific: line 126
If there are no breaking changes in this release, skip creating a version-specific breaking changes page.
- Distinctive: line 132
Follow the Conventional Commits guidance in AGENTS.md and CONTRIBUTING.md for both the documentation commit message and PR title.
- Very specific: line 134
Create a branch named <user>/X.XX-docs (e.g.
- Very specific: line 135
Commit all changes with message docs: update docs for <major>.<minor> (e.g.
- Distinctive: line 164
After publishing, verify the release GitHub Action completes successfully
- Very specific: line 165
After publishing, compare the released CRDs with the prior release to check for additional breaking changes and update the documentation if …
- Distinctive: line 167
Create a blog post
“Common” is measured: kept by at least 6 in 10 of the 16 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
Create ASO Release
This skill automates the end-to-end process of creating a new Azure Service Operator release. It runs pre-checks, generates release notes, creates a draft GitHub release, updates documentation, and opens a docs PR.
Determine the version
Determine the new version number by examining the latest release tag:
git describe --tags $(git rev-list --tags='v2*' --max-count=1) --match 'v2*'If the latest tag is v2.19.0, the new version is v2.20.0 (increment the minor version).
Step 1: Pre-checks
All three pre-checks MUST pass before proceeding. If any check fails, STOP and report the failure. Do not continue with release creation.
1a. Pre-release upgrade tests
Check the pre-release upgrade tests workflow:
gh run list --workflow=pre-release-tests.yaml --limit=1 -R Azure/azure-service-operator --json status,conclusion,createdAt,url- Must be:
conclusion: success - Must be within: the last 7 days
1b. Controller CVE scan
Check the scan controller image workflow:
gh run list --workflow=scan-controller-image.yaml --limit=1 -R Azure/azure-service-operator --json status,conclusion,createdAt,url- Must be:
conclusion: success - Must be within: the last 7 days
1c. Experimental release
Check the experimental release:
gh release view experimental -R Azure/azure-service-operator --json tagName,createdAt,isDraft,isPrerelease,assets- Must be: published (not draft), all expected assets uploaded (9 assets: 5 asoctl binaries, CRD yaml, operator yaml, multitenant-cluster yaml, multitenant-tenant yaml)
- Must be recent (within a few days of HEAD)
If any pre-check fails, report which check failed, why, and provide the relevant URL. Do not proceed.
Step 2: Generate release notes
Invoke the create-release-notes skill (defined in .agents/skills/create-release-notes/SKILL.md) to generate polished release notes. This involves:
- Running
scripts/v2/generate-raw-changelog.shto get the raw changelog - Running
scripts/v2/generate-raw-changelog.sh --api-onlyto identify API group changes - Formatting the changelog into sections: Breaking changes (if any), Upcoming breaking changes (if any), New resources, Features, Bug fixes, Documentation
Save the release notes to a temp file:
/tmp/aso-<VERSION>-release-notes.mdStep 3: Create draft GitHub release
Use the scripts/v2/create-release.sh script to create a draft release:
scripts/v2/create-release.sh <VERSION> /tmp/aso-<VERSION>-release-notes.mdThis creates a draft release on GitHub targeting the main branch. The release must be reviewed and published manually by a human.
Step 4: Update documentation and ROADMAP
Create a local branch and make the following changes:
4a. Update currentRelease in config files
Update supportedResourcesReport.currentRelease to the new version in both:
v2/azure-arm.yamlhack/crossplane/azure-crossplane.yaml
4b. Regenerate documentation
Run the code generators to update the resource documentation (moves resources from "Next Release" to "Released"):
./hack/tools/task controller:generate-types
./hack/tools/task crossplane:generate-types
./hack/tools/task doc:crd-apiNote: controller:generate-types takes ~5-7 minutes. doc:crd-api also runs controller:generate-types internally and takes ~10 minutes total. Set generous timeouts (900000ms+).
4c. Update ROADMAP.md
In ROADMAP.md:
- Add the new version to the "Official Releases" table with today's date
- Remove the new version from the "Release Cadence & Planning" table
- Add a new future version to the end of the planning table (2 months after the last entry)
4d. Create the next milestone
Check if the milestone referenced by the new future version in the ROADMAP exists:
gh api repos/Azure/azure-service-operator/milestones --jq '.[] | "\(.number) \(.title)"'If the milestone does not exist, create it following the pattern of existing milestones:
gh api repos/Azure/azure-service-operator/milestones -f title="v2.XX.0" -f description="" -f due_on="YYYY-MM-DDT00:00:00Z" -f state="open"4e. Document breaking changes
If this release includes breaking changes, create or update docs/hugo/content/guide/breaking-changes/breaking-changes-<VERSION>.md (for example, breaking-changes-v2.22.0.md). Use the release notes' Breaking changes section, the changelog, and relevant release-planning issues to identify the changes.
Follow the pattern of the existing v2.21.0 breaking changes page and other recent pages in that directory:
- Set YAML frontmatter
titleto"<VERSION> Breaking Changes"andlinkTitleto"<VERSION>". - Set
weightto 5 lower than the most recent preceding breaking changes page (for example,-85after v2.21.0's-80). Preserve the explanatory comment used by existing pages. - Add a
## Breaking changessection describing each change's user-visible impact and the migration steps, configuration changes, or workarounds needed before upgrading. Include relevant PR or issue references. - If upcoming changes also need to be announced, add a separate
## Future breaking changessection, following the existing documentation convention. Clearly distinguish future plans or proposals from changes taking effect in this release. - Keep the page consistent with the release notes. Do not overwrite an earlier release's page to document the new release.
- Update
docs/hugo/content/guide/breaking-changes/_index.mdif it still lists a change taking effect in this release as upcoming.
If there are no breaking changes in this release, skip creating a version-specific breaking changes page. Do not create an empty ## Breaking changes section.
Include any breaking changes documentation updates in the documentation PR below. Run ./dev.sh -c 'task doc:frontmatter-check' when adding or updating these pages.
4f. Commit and open PR
Follow the Conventional Commits guidance in AGENTS.md and CONTRIBUTING.md for both the documentation commit message and PR title.
- Create a branch named
<user>/X.XX-docs(e.g.matthchr/2.20-docs) - Commit all changes with message
docs: update docs for <major>.<minor>(e.g.docs: update docs for 2.20) - Push the branch
- Open a PR against
maininAzure/azure-service-operatorwith:- Title:
docs: update docs for <major>.<minor> - Body:
- [x] this PR contains documentation - [ ] this PR contains tests - [ ] this PR contains YAML Samples
- Title:
Final Report
At the end of the run, produce a summary report including:
- Pre-check results:
- Pre-release upgrade tests: PASS/FAIL, date, [link to run]
- Controller CVE scan: PASS/FAIL, date, [link to run]
- Experimental release: PASS/FAIL, date, [link to release]
- Release:
- Draft release URL (if created)
- Documentation PR:
- PR URL (if created)
- Breaking changes documentation path (if created or updated), or confirmation that this release has no breaking changes
- Remaining manual steps:
- Review and publish the draft release on GitHub
- After publishing, verify the release GitHub Action completes successfully
- After publishing, compare the released CRDs with the prior release to check for additional breaking changes and update the documentation if needed (see
docs/hugo/content/contributing/create-a-new-release.md) - Perform smoke testing (see same doc)
- Create a blog post
- Post a message in the Slack channel
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.

