Release process for the skill and plugin track only, with the @openprose/reactor packages released from github.com/openprose/reactor on reactor-v tags and the @openprose/prose-cli train removed with its publish flow. Defines the single remaining track as skill: SKILL.md plus Claude and Codex plugin manifests moving together because marketplace dedup keys on manifest version, with machine compatibility carried separately by runtime_contract. Gives bump-version.sh commands for --track skill, --check, and --list. Lists five release steps: land changes on main then bump, add CHANGELOG and skills/open-prose/changelog.md migration notes, pass the Plugin Manifest workflow, tag skill-vX.Y.Z with no workflow trigger and publish a GitHub Release via extract-changelog.sh, then manually resubmit to marketplaces by tag SHA. Details Claude Code marketplace fields and Codex staging through .codex-plugin, marketplace.json, and assets/plugin. Maintainers cutting a skill or plugin release or verifying track and tag conventions.
OpenProse Release Process
This document covers the SKILL / plugin release. Two other trains exist and are out of scope here:
- The
@openprose/reactor*packages are released from github.com/openprose/reactor on itsreactor-v*tag train; see that repo's RELEASE.md. Releases up toreactor-v0.3.2-cli.0.2.3were cut from this repo and their GitHub Releases stay here. @openprose/prose-clihas been removed from the repo, so there is noprose-clirelease train: its package, npm publish flow ("OpenProse Release" workflow, release preflight, and CLI release checks) are all gone.
The single remaining track here is skill — the open-prose SKILL plus the
Claude + Codex plugin manifests that deliver it (skills/open-prose/SKILL.md,
.claude-plugin/plugin.json, .codex-plugin/plugin.json). These move
together: the Claude Code marketplace deduplicates by manifest version, so a
skill change only reaches plugin users when the manifest version advances.
Machine compatibility is a separate signal — SKILL.md's runtime_contract —
not this X.Y.Z.
./scripts/bump-version.sh --track skill X.Y.Z # bump the skill track's files
./scripts/bump-version.sh --check # the track is internally consistent
./scripts/bump-version.sh --list # print the track's version
Releasing the skill / plugin track
The skill ships from the repository (the skills CLI reads it directly) and
through the plugin marketplace (which reads the manifests). There is no npm
publish for this track, so its release is a version bump + tag + marketplace
resubmission — independent of any CLI release.
-
Land the skill changes on
main, then bump theskilltrack:./scripts/bump-version.sh --track skill X.Y.Z ./scripts/bump-version.sh --checkBump the major of
runtime_contractinSKILL.mdas well only when the skill's machine contract changes incompatibly (it is independent ofX.Y.Z). -
Add a
## [X.Y.Z]section to CHANGELOG.md and the migration notes to skills/open-prose/changelog.md (the deferred upgrade brain consumed byprose upgrade). -
Merge the PR. The
Plugin Manifestworkflow enforces--checkand the manifest structure on every PR. -
Tag and publish a GitHub Release for provenance (this tag triggers no workflow — it is a marker, kept distinct from the CLI's
v*tags):git tag -a "skill-vX.Y.Z" -m "open-prose skill X.Y.Z" git push origin "skill-vX.Y.Z" gh release create "skill-vX.Y.Z" --title "open-prose skill X.Y.Z" \ --notes-file <(./scripts/extract-changelog.sh X.Y.Z) -
Resubmit the plugin to the marketplaces (manual — see below), referencing the
skill-vX.Y.Ztag SHA. Until the manifest version advances in the marketplace, plugin users stay on the previous cached copy.
Marketplace Submission
Marketplace publication remains manual after the GitHub Release exists.
Claude Code marketplace:
- Repo URL:
https://github.com/openprose/prose - Plugin path: leave blank;
.claude-plugin/is auto-detected - Marketplace name:
openprose - Plugin name:
open-prose - Version: the
skill-vX.Y.Ztag SHA
Codex Plugin Directory submission is staged through .codex-plugin/,
.agents/plugins/marketplace.json, and assets/plugin/ once the public
submission flow opens.