# Ops Update

OPS on-demand: This skill should be used when the user asks to \"update ops plugin\"...

- Repository: https://github.com/Lifecycle-Innovations-Limited/claude-ops (547 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -g -a claude-code -y`
Codex: `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -g -a codex -y`
Cursor: `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -g -a cursor -y`
Gemini CLI: `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add Lifecycle-Innovations-Limited/claude-ops`

## Description

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

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# OPS ► UPDATE, one-command local plugin upgrade

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`).

Upgrades the local **claude-ops** plugin to the newest version published in the
`ops-marketplace` catalogue, then leaves the box clean: no stale cache dirs, no
dangling version-pinned paths.

## Automatic daily check (detect only, never auto-installs)

`bin/ops-update-check` runs daily from the ops daemon (`update-check` service)
and answers one question: is a newer version published? It writes the verdict to
`~/.claude/state/ops-update/update-available.json` and exits **3** when an
update exists, **0** when current.

**It never installs anything.** Detection and application are deliberately split:
a background job that swapped the plugin out mid-session would break a working
install at the worst possible moment. Applying is always `ops-update`, run on
the user's word.

When you see that an update is available, because the state file says so, or
because the user asks, surface it once and offer to apply it:

```bash
"${CLAUDE_PLUGIN_ROOT}/bin/ops-update-check" --json    # current verdict, throttled to daily
"${CLAUDE_PLUGIN_ROOT}/bin/ops-update-check" --force   # recheck now, ignoring the throttle
```

Then a single `AskUserQuestion`: `[Update now]` `[Show what changed]` `[Not now]`.
Only on `Update now` do you run `bin/ops-update`. Never chain the two, and never
apply an update the user has not just agreed to in that exchange.

## Checking on every skill call

The rest: https://github.com/Lifecycle-Innovations-Limited/claude-ops/blob/HEAD/claude-ops/skills/ops-update/SKILL.md
