Skip to content

feat: release-please + auto-merge + marketplace-dispatch wiring#1

Merged
fnrhombus merged 1 commit into
mainfrom
release-wiring
May 18, 2026
Merged

feat: release-please + auto-merge + marketplace-dispatch wiring#1
fnrhombus merged 1 commit into
mainfrom
release-wiring

Conversation

@fnrhombus

Copy link
Copy Markdown
Collaborator

Summary

Bring the full plugin-release CI chain into the template so new plugins inherit:

  • release-please.yml → opens release PRs on feat: / fix: commits, auto-merges them, creates tags, dispatches update-marketplace.yml on fnrhombus/claude-plugins so the new tag lands in the marketplace within seconds instead of waiting up to ~24h for cron.
  • auto-merge.yml → enables auto-merge on every non-draft PR.
  • release-please-config.jsonrelease-type: simple with .claude-plugin/plugin.json listed as an extra-file (language-agnostic).
  • .release-please-manifest.json → starts at 0.1.0.

Also fixes a latent bug in the template's .claude-plugin/plugin.json: the "hooks": "./hooks/hooks.json" line causes a duplicate-load error in Claude Code (the standard hooks file is auto-loaded). Updates CLAUDE.md to document the now-automated flow and the new AUTOMERGE_PAT secret requirement.

Test plan

  • Merges cleanly; auto-merge.yml self-triggers
  • Next plugin scaffolded with gh repo create --template fnrhombus/claude-code-plugin-template inherits the workflow files
  • After scaffolding + adding AUTOMERGE_PAT, the first feat: commit on main walks the chain end-to-end (release PR → tag → marketplace dispatch fires)

Adds the standard plugin-release CI chain so plugins scaffolded from
this template ship versions automatically on every PR merge:

- `.github/workflows/release-please.yml` — opens release PRs on `feat:`
  / `fix:` commits, auto-merges them via PAT, creates tags, and fires a
  cross-repo dispatch to fnrhombus/claude-plugins' update-marketplace.yml
  so the new tag lands in the marketplace within seconds (vs. daily
  cron).
- `.github/workflows/auto-merge.yml` — enables auto-merge on every
  non-draft PR.
- `release-please-config.json` — `release-type: simple` with
  `.claude-plugin/plugin.json` listed as an extra-file so its `version`
  field tracks the release tag. Language-agnostic; plugins with a
  `package.json` (or other manifests) can add them as additional
  extra-files entries.
- `.release-please-manifest.json` — starts at 0.1.0.

Also:

- Drops `"hooks": "./hooks/hooks.json"` from the template plugin.json.
  Claude Code auto-loads hooks/hooks.json; listing it manually triggers
  a duplicate-load error.
- Updates CLAUDE.md: replaces the manual "bump version + tag + dispatch"
  publishing steps with a description of the now-automated flow, adds an
  AUTOMERGE_PAT secret to the first-time-setup checklist, and explains
  why a PAT is needed (workflow chaining + cross-repo dispatch).
@fnrhombus
fnrhombus merged commit 130a36d into main May 18, 2026
1 check failed
@fnrhombus
fnrhombus deleted the release-wiring branch May 18, 2026 05:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant