Files
openprose__prose/RELEASE.md
Jose Montes de Oca 93e91325d7 feat: ship OpenProse as first-class Claude + Codex plugin (#46)
OpenProse already installed as a Claude Code plugin via
`npx skills add openprose/prose`, but the packaging surface was
uneven: missing manifest fields, no native Codex envelope, no
plugin-track release process, and a couple of doc/audience
inconsistencies. This commit closes those gaps without changing
skill behavior.

OpenProse now ships from the repo root as a dual-host plugin
envelope — `.claude-plugin/` for Claude Code, `.codex-plugin/`
plus `.agents/plugins/` for Codex — with `skills/open-prose/`
as the shared core and `prose ...` as the only user-facing
command surface.

Codex envelope:
- .codex-plugin/plugin.json with first-class catalog metadata
  (displayName, developer, descriptions, category, capabilities,
  defaultPrompt, privacy/terms URLs).
- .agents/plugins/marketplace.json local-source catalog, installable
  by anyone who clones this repo.

Claude Code manifest hygiene:
- Added license, homepage, and skills: ./skills so the plugin is
  self-describing.
- Added marketplace.json metadata.description, clearing the sole
  `claude plugin validate` warning.
- Deleted the stale .claude-plugin/README.md.

Skill metadata:
- Added license: MIT to skills/open-prose/SKILL.md frontmatter
  (no top-level version — Claude Code strips unrecognized top-level
  frontmatter keys; see anthropics/claude-code#13005).
- Fixed an inconsistent parse-table cell pair in
  skills/open-prose/deps.md.

Audience boundaries:
- AGENTS.md is now contributor-only per agents.md.
- Recommended consumer [agents] Codex config moved to README.md
  alongside the Quickstart.

Release process:
- scripts/bump-version.sh + .version-bump.json bump both manifests
  atomically, with a --check mode for CI. The Claude Code
  marketplace deduplicates by version, so a forgotten bump silently
  strands users on cached copies; this gate prevents that.
- scripts/extract-changelog.sh pulls a single `## [X.Y.Z]` block
  out of CHANGELOG.md.
- RELEASE.md documents the manual flow.
- .github/workflows/release.yml verifies declared versions match
  on `v*` tag push and publishes a GitHub Release.

CI:
- New plugin-manifest.yml: every-PR gate validating both plugin.json
  files, asserting declared skills paths resolve, and running
  bump-version.sh --check.
- cli-skills-smoke.yml: added `npx skills list openprose/prose`
  discoverability check alongside the existing install smoke.
- openprose-smoke/run.ts: removed a dead commands/prose-*.md regex.
2026-04-30 20:31:48 -07:00

2.3 KiB

OpenProse Plugin Release Process

The plugin track (the open-prose plugin shipped at prose/.claude-plugin/ and prose/.codex-plugin/) is versioned and released independently from the CLI track (cli/RELEASE.md).

Release steps

  1. Decide on the next version following SemVer. Patch for fixes, minor for additive changes, major for incompatible skill behavior.
  2. Update CHANGELOG.md:
    • Move all bullets from ## [Unreleased] into a new ## [X.Y.Z] - YYYY-MM-DD section.
    • Leave the empty ## [Unreleased] heading in place for future entries.
  3. Bump declared version files:
    ./scripts/bump-version.sh X.Y.Z
    ./scripts/bump-version.sh --check       # confirms all declared files now agree
    
  4. Commit: chore: release vX.Y.Z. The commit should contain only the CHANGELOG move and the bumped manifests.
  5. Tag and push:
    git tag vX.Y.Z
    git push origin main vX.Y.Z
    
  6. GitHub Release is created automatically by .github/workflows/release.yml on v* tag push, with notes pulled from the matching ## [X.Y.Z] block in CHANGELOG.md.

Critical: marketplace deduplication

The Claude Code marketplace deduplicates by plugin.json:version. Pushing a fix without bumping version leaves users stuck on cached old copies (see thedotmack/claude-mem#1219). Every release MUST increment version. The CI gate ./scripts/bump-version.sh --check exists precisely to catch a forgotten bump on one of the two manifests.

Submission

  • Claude Code marketplace: submit the repo URL at https://platform.claude.com/plugins/submit. Anthropic's team pins the SHA in claude-plugins-official/marketplace.json. Do this only after the first proper vX.Y.Z release tag is cut.
  • Codex plugin directory: self-serve submission is "coming soon" per https://developers.openai.com/codex/plugins/build (April 2026). The .codex-plugin/plugin.json and .agents/plugins/marketplace.json manifests sit ready for the moment the window opens.

What this process does NOT cover

  • The CLI track. See cli/RELEASE.md and .github/workflows/cli-publish.yml for the @openprose/prose-cli npm release flow.
  • Marketplace publishing automation. Submission is a manual step against Anthropic's intake form.