ops-shiplisted
Install: claude install-skill Lifecycle-Innovations-Limited/claude-ops
# OPS ► SHIP — merge-all-PRs → release → update, in one command
The whole release chain in a single shot:
1. **Sweep** — admin squash-merge **every open, non-draft PR** targeting the base
branch (default `main`), **overriding required checks/reviews** (`gh pr merge
--admin`). A failed merge aborts before the release — no partial ship.
2. **Release** — delegates to `bin/ops-release`: bump `plugin.json` +
`marketplace.json` registry + `package.json` + `CHANGELOG`, open the release PR,
admin-merge to `main`, tag `vX.Y.Z`.
3. **Update** — runs the installed `ops-update` to pull the new version onto this
box (skip with `--no-update`).
> `ops-ship` = sweep + `/ops:ops-release` + `/ops:ops-update` in one. For just the
> publish step use `/ops:ops-release`; for just the pull step use `/ops:ops-update`.
## ⚠️ It admin-merges EVERY open non-draft PR — review the sweep first
By design the sweep is aggressive: it admin-merges **all** open non-draft PRs on the
base branch, bypassing required checks (red CI, missing reviews) — exactly what you
want for a trusted solo/own-org repo, dangerous if an unrelated or half-baked PR is
open. So **always dry-run first and show which PRs it will merge** before applying
(Rule 5 — bulk merge + outward-facing release + tag is high-impact and hard to
reverse). It only skips drafts.
## ⚠️ Run it from the REPO CHECKOUT, not the cache
Like `ops-release`, `ops-ship` resolves its targets relative to its own path and
needs `REPO_ROOT/.clau