← ClaudeAtlas

pooled-releaselisted

Cut fewer, batched releases (a 'release train') instead of one per merge — by triggering semantic-release on demand or on a cadence rather than on every push to main. Use when releasing on every merge is too noisy, when you want one larger readable changelog per release, to add a manual 'cut a release' button (workflow_dispatch) or a scheduled/weekly release, to set up prerelease channels (next/beta → promote to stable), or when deciding whether you need a release branch.
stealth-engine/skills · ★ 2 · AI & Automation · score 76
Install: claude install-skill stealth-engine/skills
# Pooled releases (release trains) Release on every merge is great for a fast-moving lib, but sometimes you want **fewer, fatter releases** — one readable changelog per cut, not a version bump per PR. For the manual and scheduled models it does that **without changing how you develop** — it only changes the release **trigger** (the prerelease-channel model in Model 3 does shift where you target work; see there). It builds directly on [`semantic-release-automation`](../semantic-release-automation/SKILL.md) — same plugin pipeline, same Conventional Commits; read that first. ## The key idea: decouple *merge* from *release* Trunk-based development still wants frequent small merges to `main` — that's unchanged, so **dev velocity and PR flow don't change**. The only thing you move is **when a release is published**: | | Trigger | Result | | --- | --- | --- | | **Per-merge (default)** | `on: push: [main]` | a release every qualifying merge — many small ones | | **Pooled (this skill)** | `workflow_dispatch` and/or `schedule` | semantic-release batches **all** commits since the last tag into **one** release | semantic-release already does the batching — it always releases "everything since the last tag." Pooling just means you tag **less often**. A pooled run produces the **same outputs** as a per-merge one (just batched), and those outputs are independent — CHANGELOG, GitHub Release, and npm publish are each opt-in. A pooled **app** usually wants CHANGELOG + GitHub Release but