prepare-release
Skill927 starsChanged 2 days agoApache-2.0View on GitHub
Bump Ketcher package versions and open a bump-X.Y PR (new candidate, candidate update, promote to public, or public patch)
- Commits and pushes
We split this skill into the rules it gives an agent
7 rules. 0 are common, 1 is distinctive, and 6 are very specific to this project.
0
Common
Most of the 46 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 42
Create the working branch as bump-X.Y off the mode's source branch.
- Distinctive: line 70
If it's not there, stop — the Indigo team needs to publish it first.
- Very specific: line 85
Read the current version from packages/ketcher-standalone/package.json (X.Y.0-rc.N).
- Very specific: line 88
Ask the user whether indigo-ketcher should also move to a newer published version for this candidate (optional — only needed if the fixes …
- Very specific: line 104
Read the current version (X.Y.0-rc.N).
- Very specific: line 126
Read the current version — it'll already be public, X.Y.Z with no -rc suffix.
- Very specific: line 131
Ask the user whether indigo-ketcher needs bumping to a newer published patch for this fix, same as in update-candidate.
“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 Ketcher release (version bump)
Parse the mode and version (X.Y) from the arguments the user gave. If
either is missing or ambiguous, ask the user rather than guessing — the
four modes touch different branches and end in a push + PR, which are hard
to fully undo.
This is one half of Ketcher's release process (the other half, tagging and
creating the GitHub release once this PR merges, is the create-release
skill). Four of Ketcher's release moments turn out to be the same
operation — edit four package.json versions, optionally the
indigo-ketcher pin, npm install, commit, push a bump-* branch, open a
PR — with a different source/target branch and version-string rule each
time:
| Mode | Source branch | Target (PR base) | When |
new-candidate | master | master | starting a new release candidate cycle |
update-candidate | release/X.Y | release/X.Y | new candidate after fixes land |
promote-public | release/X.Y | release/X.Y | promoting the final candidate to public |
patch-public | release/X.Y | release/X.Y | hotfix on an already-public release |
Note: the mode names use "candidate" — the actual version strings and git
tags still use the real semver/npm convention X.Y.0-rc.N (e.g.
3.19.0-rc.1). Don't rewrite those to "candidate" — rc there is a
literal part of the published version string, not just a label.
Shared setup
git status # must be clean before switching branches — stash/ask if not
git fetch --all --quietCreate the working branch as bump-X.Y off the mode's source branch. If
bump-X.Y already exists (locally or on origin), it's likely a leftover
from a prior bump on this same release that already merged — confirm with
the user before deleting and recreating it; if it has unmerged, unexpected
content, stop and ask.
Mode: new-candidate — start a new release candidate cycle
git checkout -b bump-X.Y origin/masterSet all four packages' version to X.Y.0-rc.1:
packages/ketcher-core/package.json, packages/ketcher-react/package.json,
packages/ketcher-macromolecules/package.json,
packages/ketcher-standalone/package.json.
indigo-ketcher also needs a new minor version's first candidate — a
step up from whatever indigo version master currently pins, not a copy of
Ketcher's own version number (indigo and Ketcher have independent version
lines). Read the current dependencies.indigo-ketcher value in
ketcher-standalone/package.json, bump its minor by 1, target
{new-minor}.0-rc.1, and confirm it's actually published:
npm view indigo-ketcher versions --json | grep '"{new-minor}.0-rc.1"'If it's not there, stop — the Indigo team needs to publish it first; don't substitute a different version.
npm install, sanity-check git diff package-lock.json touches only the
packages you changed. Stage the changed files, show the user
git diff --cached --stat, and ask before committing as Update Ketcher to
release candidate X.Y.0-rc.1. Then go to Wrap-up.
Mode: update-candidate — bump an existing release candidate
git checkout release/X.Y # must already exist — if not, this is new-candidate instead
git checkout -b bump-X.YRead the current version from packages/ketcher-standalone/package.json
(X.Y.0-rc.N); bump to X.Y.0-rc.{N+1} in all four packages.
Ask the user whether indigo-ketcher should also move to a newer published
version for this candidate (optional — only needed if the fixes being
picked up depend on an indigo change). If yes, confirm the target version
is published the same way as in new-candidate.
npm install, sanity-check the lockfile diff. Stage the changed files, show
the user git diff --cached --stat, and ask before committing as Update
Ketcher to release candidate X.Y.0-rc.{N+1}. Then go to Wrap-up.
Mode: promote-public — promote a release candidate to public
git checkout release/X.Y
git checkout -b bump-X.YRead the current version (X.Y.0-rc.N); strip the -rc.N suffix to
X.Y.0 in all four packages. In ketcher-standalone/package.json, also
strip the -rc.N suffix from dependencies.indigo-ketcher — verify the
resulting public version exists on npm (npm view indigo-ketcher versions
--json) before writing it in; if it hasn't been published yet, stop and
say so rather than guessing.
npm install, sanity-check the lockfile diff — past bumps of this shape
land around 15-20 changed lines touching only version/resolved/
integrity for the bumped packages (git log --all --grep "Update Ketcher
to public version" finds a real precedent commit if you want a concrete
anchor). Stage the changed files, show the user git diff --cached --stat,
and ask before committing as Update Ketcher to public version X.Y.0. Then
go to Wrap-up.
Mode: patch-public — bump a public release for a hotfix
git checkout release/X.Y
git checkout -b bump-X.YRead the current version — it'll already be public, X.Y.Z with no -rc
suffix. Bump the patch number directly: X.Y.Z → X.Y.{Z+1} in all four
packages. This mode does not go through a candidate cycle — the fix
lands straight on the release branch with its own patch version.
Ask the user whether indigo-ketcher needs bumping to a newer published
patch for this fix, same as in update-candidate.
npm install, sanity-check the lockfile diff. Stage the changed files, show
the user git diff --cached --stat, and ask before committing as Update
Ketcher to public version X.Y.{Z+1}. Then go to Wrap-up.
Wrap-up (all modes)
Stage exactly the changed package.json files plus package-lock.json —
not a blanket git add -A.
Pause here and show the user git show --stat HEAD before pushing.
Pushing and opening a PR are the externally-visible, hard-to-fully-undo
steps in this flow — get explicit confirmation even if the user asked for
the whole release hands-off.
git push -u origin bump-X.YFind the PR template (find . -iname pull_request_template.md) and open a
PR with gh pr create:
title: matches the commit messagehead:bump-X.Ybase: the mode's target branch from the table abovebody: the repo's PR template filled in — a short description of the bump in Summary, andMemory bank: not needed.
Report the PR URL. Tell the user which create-release mode to run once
this PR is merged (draft-candidate after new-candidate/update-candidate,
publish-public after promote-public/patch-public) — that's a
separate, later step, not something to chain automatically here.
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
- CLIUtils/CLI11★ 4.5ksame name
- tmoroney/auto-subs★ 4.3ksame 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.
Used alongsideProjects with it also use sync-docs, review-change and 3 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.
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
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
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 3 projects that use this
Hugging FaceSkillimplement
Make tests pass. Invoke after /write-tests produces failing tests.
Also in 3 projects that use this
In this repository24 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- add-localstorage-settingSkill
- codebase-designSkill
- code-reviewSkill
- commitSkill
- create-releaseSkill
- create-verification-skillSkill
- diagnosing-bugsSkill
- generate-autotestsSkill
- ketcher-flowSkill
- ketcher-prSkill
- maintain-verification-skillSkill
- openspec-apply-changeSkill
- openspec-archive-changeSkill
- openspec-exploreSkill
- openspec-proposeSkill
- openspec-sync-specsSkill
- openspec-update-changeSkill
- review-prSkill
- split-componentSkill
- tddSkill
- verify-ketcherSkill
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.

