OPS on-demand: This skill should be used when the user asks to "release the plugin", "publish ops…

MITAuto-check: notesDevelopment

Install Ops Release

skills CLI
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-release -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-release --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude-ops/skills/ops-release .claude/skills/ops-release && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ops-release
GitHub stars
542
Token cost
~2.1k tokens
SKILL.md length
887 words
Files
1
Skills in repo
67
Repo updated
First seen
Licence
MIT

At a glance

OPS on-demand: This skill should be used when the user asks to "release the plugin", "publish ops…

  • Works in 3 steps: Dry-run and show the plan → Confirm → Apply
  • Asks to release the plugin
  • SKILL.md covers ⚠️ Run it from the REPO…, How to run it, Flags and What it touches, plus 3 more sections
  • Calls git and gh

What it does

Ops Release is an agent skill from Lifecycle-Innovations-Limited/claude-ops. OPS on-demand: This skill should be used when the user asks to "release the plugin", "publish ops…

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development. It works with Git. The repository describes itself as: Business operating system for Claude Code — 57 skills, 21 agents, smart daemon. Unified inbox (WhatsApp/Email/Slack/Telegram), autonomous PR merge, full-AWS monitoring, revenue… The licence is MIT.

When your agent uses it

  • Asks to release the plugin

Example prompts

  • “release the plugin”
  • “/ops-release”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, AskUserQuestion

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Dry-run and show the plan
  2. Confirm
  3. Apply

What it can do on your machine

Read from SKILL.md and the folder at commit 1aa0928. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ops Release loads about 2.1k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 887 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~28
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Lifecycle-Innovations-Limited/claude-ops at commit 1aa0928, republished under its MIT licence (© Lifecycle-Innovations-Limited). 887 words, ~2,099 tokens.

Download SKILL.mdSave it as .claude/skills/ops-release/SKILL.md (or your agent's skills folder).
name
ops-release
description
OPS on-demand: This skill should be used when the user asks to "release the plugin", "publish ops…
allowed-tools
Bash, Read, AskUserQuestion
argument-hint
[--type patch|minor|major] [--version X.Y.Z] [--notes "changelog body"] [--no-ai] [--no-docs] [--no-wiki] [--dry-run] [--no-merge] [--no-tag]
disable-model-invocation
true

OPS ► RELEASE — one-command plugin publish

Load ops-rules before acting. Public repo (no personal data). Outbound: one draft → one approval → one send. If AskUserQuestion / Workflow are missing, follow Rule 10 in ops-rules (Hermes: numbered options / two-turn Telegram card; delegate_task).

Cuts a new published version of the claude-ops plugin: bumps the version in the three manifests, writes the CHANGELOG, opens a release PR, waits for CI, merges it to main, and pushes the vX.Y.Z tag. After it runs, /ops:ops-update pulls the new version down to the box.

ops-release ships it · /ops:ops-update pulls it. Order: merge your fix PR → /ops:ops-release → /ops:ops-update.

⚠️ Run it from the REPO CHECKOUT, not the cache

bin/ops-release resolves its targets relative to its own location: PLUGIN_DIR = <bin>/.., REPO_ROOT = <bin>/../.., and it needs REPO_ROOT/.claude-plugin/marketplace.json. The plugin cache (~/.claude/plugins/cache/ops-marketplace/ops/<ver>/bin/ops-release) has no marketplace.json above it, so running the cache copy fails with not found: …/.claude-plugin/marketplace.json. Always run the copy inside a git checkout of the repo (the dir that has both .claude-plugin/marketplace.json and claude-ops/bin/ops-release).

Resolve it first:

bash
RELEASE=""
for d in ~/Developer/repos/claude-ops ~/Projects/claude-ops-workspace/claude-ops ~/Projects/claude-ops/claude-ops "$HOME"/Projects/*/claude-ops; do
  if [ -f "$d/.claude-plugin/marketplace.json" ] && [ -x "$d/claude-ops/bin/ops-release" ]; then
    RELEASE="$d/claude-ops/bin/ops-release"; REPO="$d"; break
  fi
done
[ -n "$RELEASE" ] || { echo "no claude-ops checkout with marketplace.json found — clone the repo first"; exit 1; }
echo "using: $RELEASE  (repo: $REPO)"

Make sure the checkout's main is up to date and includes the fix you want to publish before releasing (git -C "$REPO" fetch origin && git -C "$REPO" checkout main && git -C "$REPO" pull --ff-only). The release branches from origin/main, so anything not yet on origin/main will NOT be in the release.

How to run it

Steps 3–5 are outward-facing + hard to reverse (open PR → CI-gated squash-merge to main → push a public vX.Y.Z tag), so always dry-run first, show the plan, confirm, then apply (Rule 5).

1. Dry-run and show the plan
bash
"$RELEASE" --type patch --notes "<one-line changelog body>" --dry-run

Present the output: current → target version, which 3 manifests get bumped, the CHANGELOG block, and that it will branch release/vX.Y.Z → PR → wait for CI → merge → tag. Pick the bump type from the change: bug/patch fix → --type patch; new backward-compatible feature → --type minor; breaking change → --type major (or pin exactly with --version X.Y.Z).

2. Confirm

Use AskUserQuestion before applying:

Publish claude-ops <CUR> → <NEW>?  (bumps 3 manifests + CHANGELOG, opens PR, waits for CI, merges to main, tags v<NEW>)
  [Publish release]
  [Dry-run only]
  [Cancel]
3. Apply
bash
"$RELEASE" --type patch --notes "<one-line changelog body>"

Stream the step-by-step output. On success it prints the PR URL, the merge, and the tag. Surface the final line verbatim and then tell the user to pull it down:

Released v<NEW>. Run /ops:ops-update to pull it onto this box.

Flags

FlagEffect
--type patch|minor|majorSemver bump from the current version (default patch).
--version X.Y.ZSet an exact target version instead of bumping.
--notes "…"Markdown body prepended to the CHANGELOG under the new version. Quote it. Overrides the AI changelog.
--no-aiSkip AI changelog synthesis; fall back to commit subjects under ### Changed.
--no-docsSkip the ops-sync-docs count/badge reconciliation step.
--no-wikiSkip syncing the GitHub wiki (counts/version + Release-Notes entry).
--dry-runReport only; change nothing (still previews the AI changelog). Always run this first.
--no-mergeOpen the release PR but do not merge it (leave for manual review).
--no-tagSkip pushing the vX.Y.Z tag.
Show full SKILL.md (429 more words)Show less

What it touches

  1. claude-ops/.claude-plugin/plugin.json — .version
  2. .claude-plugin/marketplace.json (repo root) — .plugins[name==ops].version
  3. claude-ops/package.json — .version (if present)
  4. claude-ops/CHANGELOG.md — prepends a ## [X.Y.Z] - <date> block. By default the body is AI-synthesized from the commit range in Keep a Changelog style (### Added/Changed/Fixed/Removed); --notes overrides it, --no-ai falls back to commit subjects.
  5. Docs counts — runs bin/ops-sync-docs, which reconciles every skill/agent count, shields.io badge, and version badge across plugin.json, marketplace.json, the READMEs, and docs/*-reference.md to the real tree. Deterministic and idempotent; never touches historical "up from X/Y" prose. Skip with --no-docs. (Run bin/ops-sync-docs standalone any time you add or remove a skill/agent.)
  6. GitHub wiki — after merge+tag, clones the wiki, syncs its counts/version, and prepends a Release-Notes.md entry for the new version. Skip with --no-wiki.

It works inside an isolated worktree ($REPO_ROOT/.worktrees/release/vX.Y.Z, branched from origin/main), so a dirty main checkout never leaks unrelated WIP into the release commit. The worktree is removed on exit.

The run outlives an agent's foreground timeout — check before re-running

A full release takes longer than a Hermes/agent foreground terminal call allows (~7 min hard kill regardless of the requested timeout). When the call dies, the script has usually already branched, pushed, opened the PR, waited for CI and merged — you just never saw the output. Verified 2026-09-05: the timeout fired, and a blind retry opened a duplicate release PR (#923) alongside the script's own already-merged #922.

Before doing anything after a timeout, read the live state:

bash
gh pr list --state merged --limit 5 --json number,title,headRefName
git fetch --tags origin && git ls-remote --tags origin "v$NEW"
git show origin/main:claude-ops/.claude-plugin/plugin.json | head -3

Then finish only what is genuinely missing:

  • PR merged, version on origin/main, tag absent → the script died between merge and tag. Tag the merge commit yourself: git tag -a vX.Y.Z <merge-sha> -m "vX.Y.Z" && git push origin vX.Y.Z.
  • PR still open → let it finish, do not open a second one.
  • Nothing pushed → re-run the release.

If you did open a duplicate, close it referencing the real one and delete the remote branch it shares — both PRs point at the same release/vX.Y.Z head, so deleting that branch after the real merge is what cleans up.

Better: run the apply step with background=true, notify=true instead of a foreground call, and let the completion notification carry the output.

Mobile / SSH (Rule 7)

The bin auto-detects a non-TTY and drops colour; its output is already line-per-fact, so relay it as-is — no tables, no banners.

Notes

  • PRs target main (claude-ops convention). The helper waits for the five product CI checks plus any other reported checks to finish, then squash-merges without bypassing them.
  • Publish ≠ deploy to the box. The running session won't see the new version until /ops:ops-update (pull) + /reload-plugins (load).
  • Sibling: /ops:ops-update (pull a published version locally + prune/rewrite).

© Lifecycle-Innovations-Limited, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in claude-ops/skills/ops-release of Lifecycle-Innovations-Limited/claude-ops.

Open the folder on GitHubat commit 1aa0928

Compare with similar skills

Ops Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ops Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ops Release this skillLifecycle-Innovations-Limited/claude-ops542—~2.1kAutomated safety check: NotesMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
Code Design Rationale Investigatorcursor/plugins10k9 repos~2.6kAutomated safety check: PassNone
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Finishing A Development Branchfarm-fe/farm5.6k34 repos~1.8kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Official

    Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.

    10k GitHub starsUsed in 9 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • A skill your agent uses when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for…

    5.6k GitHub starsUsed in 34 repos~1.8k tokens
    DevelopmentAuto-check passed
  • Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.

    56k GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check passed

More from Lifecycle-Innovations-Limited/claude-ops

All 67 skills in this repo
  • Ops Dash

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "ops dashboard", "pixel HQ", or…

    542 GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Ops Gtm

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "go to market", "GTM plan", or…

    542 GitHub stars~3.7k tokensUpdated today
    Auto-check: notes
  • Ops Marketing

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "klaviyo", "ads spend", or…

    542 GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Ops Socials

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "tweet", "post to linkedin", or…

    542 GitHub stars~3.6k tokensUpdated today
    Auto-check: notes
  • Ops Yolo

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "yolo mode", "run the business today"…

    542 GitHub stars~4k tokensUpdated today
    Auto-check: notes
  • Ops Monitor

    Lifecycle-Innovations-Limited/claude-ops

    OPS on-demand: This skill should be used when the user asks to "datadog", "APM alerts", or…

    542 GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check: notes

Works with

Categories

Questions about Ops Release

What does Ops Release do?

OPS on-demand: This skill should be used when the user asks to "release the plugin", "publish ops…. Ops Release is an agent skill from Lifecycle-Innovations-Limited/claude-ops.

When should I use Ops Release?

Ops Release fits situations like: asks to release the plugin.

How do I install Ops Release in Claude Code?

Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-release -a claude-code`. Or copy the skill folder (claude-ops/skills/ops-release in Lifecycle-Innovations-Limited/claude-ops) into .claude/skills/ops-release in your project. Claude Code loads it when a task matches its description.

How do I install Ops Release in Codex?

Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-release -a codex`. Or copy the skill folder (claude-ops/skills/ops-release in Lifecycle-Innovations-Limited/claude-ops) into .agents/skills/ops-release in your project. Codex loads it when a task matches its description.

Can I use Ops Release in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ops-release, .gemini/skills/ops-release, .github/skills/ops-release and .opencode/skills/ops-release in your project.

What does Ops Release need to run?

Going by SKILL.md and its folder, Ops Release needs the command-line tools its instructions call (git and gh). Its frontmatter pre-approves these tools: Bash, Read, AskUserQuestion.

Does Ops Release access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Ops Release safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Ops Release use?

Ops Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ops Release use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ops Release?

Skills that share tags, products or a category with Ops Release: Finishing a Development Branch (obra/superpowers, 297k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Code Design Rationale Investigator (cursor/plugins, 10k stars) and Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ops Release?

Lifecycle-Innovations-Limited (a GitHub organization) maintains it in Lifecycle-Innovations-Limited/claude-ops, which has 542 GitHub stars. The repository holds 67 skills in this directory. The repository was last updated on October 9, 2026.

Source: Lifecycle-Innovations-Limited/claude-ops on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.