ci: automate releases with release-please manifest mode#51
Merged
Conversation
One release-please package per plugin (release-type simple); each package syncs its version into .claude-plugin/marketplace.json via a root-relative extra-files jsonpath filter. PR titles are linted as conventional commits since squash-merge titles are what release-please reads. /version-plugin no longer bumps versions by hand — it registers new plugins and points updates at the conventional-commit flow. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…LAUDE.md Mirror Scout's guardrails: husky commit-msg hook running commitlint (config-conventional) via a tooling-only private package.json. The version-plugin skill is removed — release-please owns version bumps and the new-plugin registration checklist now lives in CLAUDE.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Adapts Scout's release flow to this plugin monorepo — without npm publish: a release here is bump + CHANGELOG + tag + GitHub Release (installation stays git-based).
Release automation
release-please-config.json— manifest mode, one package per plugin (release-type: simple). Each package syncs its version into.claude-plugin/marketplace.jsonviaextra-fileswith a root-relative path (/...) and the JSONPath filter$.plugins[?(@.name=='<plugin>')].version(validated against the samejsonpathlib release-please uses)..release-please-manifest.json— anchors the current versions of the 6 plugins (avoids the no-tags 1.0.0 proposal).bootstrap-shapoints at current main, so changelogs start clean..github/workflows/release-please.yml— opens/updates one release PR per plugin; merging it cuts the<plugin>-v<version>tag + GitHub Release.Conventional-commit guardrails (mirroring Scout)
.github/workflows/lint-pr-title.yml— the repo squash-merges, so the PR title is the commit release-please reads; linted as a conventional commit with per-plugin suggested scopes.commit-msghook + commitlint (@commitlint/config-conventional) via a tooling-only, privatepackage.json— the plugins themselves remain non-npm. Runnpm installonce to activate the hook.Docs
/version-pluginskill removed — release-please owns version bumps; the new-plugin registration checklist moved intoCLAUDE.md.CLAUDE.mddocuments the release flow, the English-only rule for commits/PRs, and the step-by-step for registering a new plugin.Expected side effects
CHANGELOG.mdandversion.txtin the plugin directory (artifacts of thesimplerelease type).feat/fix/!trigger releases — refactors users perceive as features should be titledfeat(...).🤖 Generated with Claude Code