release
Skill1k starsChanged 11 days agoMITView on GitHub
Prepare and publish a release of the @boundaries packages by running the "Release process" in .github/CONTRIBUTING.md. Inventories the packages with unreleased changes, proposes their versions, updates changelogs, package versions and Sonar versions on a new chore/release-<version> branch with a PR into release, then promotes release to master, creates the vX.Y.Z GitHub release and closes the release (publication check, milestone, project board, comments on the fixed issues linking the release notes and upgrade notes, branch cleanup), showing a preview and asking for confirmation before every commit, push, PR, tag, release or comment. Use when the maintainer asks to release, publish, cut a release, prepare a release PR or finish a published release.
- Commits and pushes
We split this skill into the rules it gives an agent
16 rules. 0 are common, 2 are distinctive, and 14 are very specific to this project.
0
Common
Most of the 184 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 29
Run git fetch origin; the local release branch equals origin/release.
- Very specific: line 30
Never commit on release. The preparation always goes on a new branch chore/release-<eslint-plugin-version-with-dashes> created from release …
- Very specific: line 35
Check that every package that depends on a changed one is also versioned (pnpm nx graph or pnpm nx show project <name> --json), and that …
- Very specific: line 37
If eslint-plugin has no new version, stop and ask the maintainer how to tag the release.
- Very specific: line 43
Commit, push and open the PR into
release: Commit with the confirmed message, push the branch, and open the PR with the create-pr skill … - Very specific: line 47
Start when the maintainer confirms the PR from phase 1 is merged into release.
- Very specific: line 49
Run git fetch origin and check that origin/release contains the release commit and the versions match the confirmed ones.
- Very specific: line 58
Check that origin/master contains the release commit.
- Very specific: line 59
If the website got a new version, check that the "Update Website Search Index" workflow ran for the merge (gh run list --workflow …
- Very specific: line 62
Create the release targeting master, with the GitHub MCP tools or gh release create.
- Distinctive: line 66
Start right after the release is created, or when the maintainer asks to finish a release that is already published.
- Very specific: line 69
Close the milestone: If a milestone named after the eslint-plugin version (vX.Y.Z) exists and has no open issues or pull requests, close it …
- Very specific: line 77
Follow "Authorization Failure Handling" in .agents/skills/create-pr/SKILL.md.
- Very specific: line 92
Write every text with the writing-style skill.
- Very specific: line 93
Never commit on release or master, and never push to them.
- Distinctive: line 94
Never commit, push, open a PR, tag, create a release, post a comment or delete a branch without showing a preview and obtaining explicit …
“Common” is measured: kept by at least 6 in 10 of the 184 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
Release
When to use this skill
Use this skill when the maintainer asks to prepare or publish a release. The procedure itself is written once, in the "Release process" section of .github/CONTRIBUTING.md; this skill executes it and adds the preconditions, the checks and the confirmations an agent needs. Read that section and .agents/rules/changelog-and-versioning.md before starting, and follow CONTRIBUTING.md for what each release step changes.
What a GitHub release publishes is in step 6 of "Publishing" in .github/CONTRIBUTING.md, and a published version cannot be replaced. Remind the maintainer of both before the release step.
Inputs
Provide (optional):
- eslint-plugin version: the version to release. If omitted, it is proposed during the inventory.
Procedure
The release spans four phases. The first three depend on merges made outside this skill: start at the phase the repository state is in, and stop at the end of each phase until the maintainer says the next merge happened. The fourth closes the release once it is published.
Phase 1: prepare the release PR
- Check the preconditions.
git status --porcelainis empty. If not, stop and ask the maintainer what to do with the changes.- Run
git fetch origin; the localreleasebranch equalsorigin/release. If not, stop and ask before updating it. - Never commit on
release. The preparation always goes on a new branchchore/release-<eslint-plugin-version-with-dashes>created fromrelease(for examplechore/release-7-2-1) and ends in a PR intorelease.
- Take the inventory.
- List every package whose
CHANGELOG.mdhas entries under the Unreleased section or under a version section that is not onorigin/masteryet. - Propose each new version from the entries, following
.agents/rules/changelog-and-versioning.md. A version already set in a package'spackage.jsonby a contributor PR, or named in its Unreleased entries or in an upgrade notes page, is the starting proposal; flag it if it does not fit the entries, or if they name different versions. - Check that every package that depends on a changed one is also versioned (
pnpm nx graphorpnpm nx show project <name> --json), and thatpackage.jsonandsonar-project.propertiesofelementsandeslint-pluginagree on the version. - For the website, apply step 2 of "Publishing": detect whether
packages/website/docs/changed since the latest snapshot listed inpackages/website/versions.json(compare it withpackages/website/versioned_docs/version-<latest>/and read the website changelog's Unreleased section). - If
eslint-pluginhas no new version, stop and ask the maintainer how to tag the release.
- List every package whose
- Show a mandatory preview and get explicit confirmation. Present the proposed version of every package, the branch name, the commit message (
chore(release): Release eslint-plugin vX.Y.Z and elements vA.B.C) and the PR title (chore: Release eslint-plugin vX.Y.Z and elements vA.B.C), both naming the packages actually released, and the planned change to every file, including whether the website gets a new version. Let the maintainer adjust versions. Do not create the branch, edit files, commit, push or open a PR before the confirmation. - Apply the changes. Create the branch and make the changes
CONTRIBUTING.mdlists for the preparation. Runpnpm nx version website <version>only when the website takes a new version. Show the resultinggit status, the realgit diff --stat(excludingversioned_docs/content from the detailed diff) and the versions that changed, then ask for explicit confirmation again before committing and pushing: the preview could not include the output ofpnpm nx version website. - Commit, push and open the PR into
release. Commit with the confirmed message, push the branch, and open the PR with thecreate-prskill (targetrelease, title as confirmed). Stop here and report.
Phase 2: promote release to master
Start when the maintainer confirms the PR from phase 1 is merged into release.
- Run
git fetch originand check thatorigin/releasecontains the release commit and the versions match the confirmed ones. - Build the PR from
releasetomasteras step 4 of "Publishing" defines it. Collect the issues to close from the(#N)tokens and thecloses #Nlines in the commits and merged PRs ingit log origin/master..origin/release. Resolve each number on GitHub: an issue goes in the list, and a pull request is read for the issues it closes. - Show a preview of the title, the full body and the list of issues to close. Ask for explicit confirmation before opening the PR.
- Open the PR, with the GitHub MCP tools or
gh. Stop here and report.
Phase 3: create the GitHub release
Start when the maintainer confirms the PR from phase 2 is merged into master.
- Check that
origin/mastercontains the release commit. - If the website got a new version, check that the "Update Website Search Index" workflow ran for the merge (
gh run list --workflow web-search-index.yml). If it did not, tell the maintainer to trigger it manually, asCONTRIBUTING.mddescribes. - Build the release as
CONTRIBUTING.mddefines it: tagvX.Y.Z(theeslint-pluginversion, onmaster), a human-readable title proposed from the changelog entries, and a description with one section per released package copied from itsCHANGELOG.md,eslint-pluginfirst. - Show a mandatory preview of the tag, title and full description, remind the maintainer what the release publishes (step 6 of "Publishing"), and ask for explicit confirmation. Never create a tag or a release without it.
- Create the release targeting
master, with the GitHub MCP tools orgh release create. Report the URL, and that the publish workflows were triggered. Continue with phase 4.
Phase 4: close the release
Start right after the release is created, or when the maintainer asks to finish a release that is already published.
- Check the publication. Wait for the publish workflows to finish (
gh run list --workflow publish.ymland--workflow publish-to-github.yml) and check withnpm view <package> versionthat every released package is on npm; the registry can take some minutes to show a version after the workflow succeeds. If a workflow failed, report it and stop: fixing a publication is the maintainer's decision. - Close the milestone. If a milestone named after the
eslint-pluginversion (vX.Y.Z) exists and has no open issues or pull requests, close it (gh api -X PATCH repos/<owner>/<repo>/milestones/<number> -f state=closed). If it still has open items, list them and ask the maintainer what to do with them. - Update the project board, if the repository has one (read
gh project list --owner <owner>; it needs theprojecttoken scope,gh auth refresh -s read:project,project). For each issue closed by the phase 2 PR, check its status on the board and move to the final column (for exampleDone) the ones that are not there yet. A board workflow usually moves them when the issue is closed, so often nothing is left to do: say so. - Comment on the issues the release fixes. Take the issues closed by the phase 2 PR and decide for each one whether a comment helps its readers: issues opened by external reporters or fixed by external contributors get one; the maintainer's own tracking and task issues normally do not. Each comment names the released version, links the GitHub release and, when the website has upgrade notes or a migration guide for the fix, links their exact section; it thanks the reporter and the contributors by their GitHub user. Show a mandatory preview of every comment, let the maintainer drop or edit any of them, and post only the confirmed ones (
gh issue comment <number> --body-file <file>). Never post a comment without that confirmation. - Delete the merged branches the release leaves behind: the
chore/release-*branch of phase 1, and any integration branch named in the release issues. List them and ask before deleting;git push origin --delete <branch>only after the confirmation. - Report what was checked, closed, moved, commented and deleted, and what was skipped and why.
Authorization Failure Handling
Follow "Authorization Failure Handling" in .agents/skills/create-pr/SKILL.md. Include in the response what the failed step needed, so the maintainer can do it manually: the commit message, the PR text, or the tag, title and release description.
Output format
Return results with:
- Summary: the phase completed, the version of every released package, and the URLs of the PR or release created. For phase 4, the publication check result, the milestone and board changes, the issues commented and the branches deleted.
- Details: the files changed per package, the branch name, and how the website decision was made.
- Pending manual steps: the merge the maintainer has to make before the next phase, the search index check when the website got a new version, and anything phase 4 left for the maintainer, such as a failed publication.
- On authorization failure: the copyable content from the failure handling section, and a clear statement that authorization is required.
Include assumptions, risks, and follow-ups when relevant.
Notes / Constraints
- Write every text with the
writing-styleskill. - Never commit on
releaseormaster, and never push to them. - Never commit, push, open a PR, tag, create a release, post a comment or delete a branch without showing a preview and obtaining explicit confirmation in the same phase.
Other versions194 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 194
- paperclipai/paperclip★ 110ksame name
- modelcontextprotocol/servers★ 92ksame name
- remotion-dev/remotion★ 70ksame name
- traefik/traefik★ 65ksame name
- usememos/memos★ 64ksame name
- tw93/Pake★ 63ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 40ksame name
- Yeachan-Heo/oh-my-claudecode★ 40ksame name
- tobi/qmd★ 30ksame name
- jlowin/fastmcp★ 28ksame name
184 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.
Used alongsideProjects with it also use create-agent-adapter, changelog-style and 10 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.
MicrosoftSkillcreate-agent-adapter
Technical guide for creating a new Paperclip agent adapter. Use when building a new adapter package, adding support for a new AI coding tool (e.g. a new CLI agent, API-based agent, or custom process), or when modifying the adapter system. Covers the required interfaces, module structure, registration points, and conventions derived from the existing claude-local and codex-local adapters.
Also in 5 projects that use this
GrinvSkillchangelog-style
Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR (adding to the [Unreleased] section) or cutting a release (moving [Unreleased] under a new version heading).
Also in 4 projects that use this
GrinvSkilldocs-consistency-check
Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/*.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.
Also in 4 projects that use this
MicrosoftSkillpr-report
Review a pull request or contribution deeply, explain it tutorial-style for a maintainer, and produce a polished report artifact such as HTML or Markdown. Use when asked to analyze a PR, explain a contributor's design decisions, compare it with similar systems, or prepare a merge recommendation.
Also in 5 projects that use this
Microsoft AzureSkilldocumentation-consistency
Keeps GPT-RAG MCP service and umbrella documentation aligned with shipped behavior. Use for capabilities, configuration keys, deployment steps, endpoints, defaults, operations, or breaking changes.
Also in 6 projects that use this
parcadeiSkillagent-context-isolation
Agent Context Isolation
Also in 3 projects that use this
- +3 more from Grinv
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- boundaries-architectSkill
- create-architectural-decision-recordSkill
- create-issueSkill
- create-prSkill
- documentation-writerSkill
- repo-architectureSkill
- review-prSkill
- unit-testingSkill
- write-planSkill
- writing-styleSkill
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.

