Knowledge Ops
affaan-m/ECC
Knowledge base management, ingestion, sync, and retrieval across multiple storage layers (local files, MCP memory, vector stores, Git repos).
OPS on-demand: This skill should be used when the user asks to "update ops plugin", "upgrade…
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-update --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-update .claude/skills/ops-update && rm -rf skills-srcUse ~/.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/
Install the "ops-update" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-update into .claude/skills/ops-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-update", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-updateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-update --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .agents/skills && cp -r skills-src/claude-ops/skills/ops-update .agents/skills/ops-update && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ops-update" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-update into .agents/skills/ops-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-update", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-update --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/claude-ops/skills/ops-update .cursor/skills/ops-update && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ops-update" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-update into .cursor/skills/ops-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-update", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Lifecycle-Innovations-Limited/claude-ops.git --path claude-ops/skills/ops-update--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-update --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/claude-ops/skills/ops-update .gemini/skills/ops-update && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ops-update" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-update into .gemini/skills/ops-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-update", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-updateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .github/skills && cp -r skills-src/claude-ops/skills/ops-update .github/skills/ops-update && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ops-update" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-update into .github/skills/ops-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-update", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-update --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/claude-ops/skills/ops-update .opencode/skills/ops-update && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ops-update" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-update into .opencode/skills/ops-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-update", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ops-updateOPS on-demand: This skill should be used when the user asks to "update ops plugin", "upgrade…
Ops Update is an agent skill from Lifecycle-Innovations-Limited/claude-ops. OPS on-demand: This skill should be used when the user asks to "update ops plugin", "upgrade…
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
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.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1aa0928. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitclaudebashFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ops Update loads about 2.6k tokens when it runs. Until then it costs about 26 tokens; SKILL.md has 1,142 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, AskUserQuestionAutomated 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.
The full file from Lifecycle-Innovations-Limited/claude-ops at commit 1aa0928, republished under its MIT licence (© Lifecycle-Innovations-Limited). 1,142 words, ~2,565 tokens.
.claude/skills/ops-update/SKILL.md (or your agent's skills folder).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.
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:
"${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 throttleThen 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.
The daily cron is the only thing that ever ran the check, so a box without the
daemon (Linux, or launchd never set up) heard about a new version exactly never.
bin/ops-pretool-skill-update closes that: a PreToolUse hook on ^Skill$
re-uses the same throttled check whenever an ops skill is invoked, so the first
skill call of the day says what the daily cron would have said.
Behaviour is set by auto_update in preferences.json (or $OPS_AUTO_UPDATE):
| Mode | What happens on a stale install |
|---|---|
off | nothing |
notify (default) | the session is told it is behind, and to run /ops:ops-update |
auto | also runs bin/ops-update in the background, then asks for a reload |
auto is the one exception to the split above, and it stays opt-in for the
reason stated there: the running session keeps the old version until it reloads,
so the upgrade lands detached, behind a lock, and never prunes the tree the
session is rooted in. Turning it on is the user's decision, not yours — never
switch a box to auto on your own initiative.
Flags: --json (verdict on stdout), --no-fetch (compare against the catalogue
already on disk, no network), --force (ignore the once-a-day throttle),
--quiet (write state, print nothing — how the daemon runs it). Override the
cadence with $OPS_UPDATE_CHECK_INTERVAL in seconds.
The workhorse is ${CLAUDE_PLUGIN_ROOT}/bin/ops-update. It runs a 9-step loop:
claude plugin marketplace update ops-marketplace (git-pulls the clone).marketplace.json (or --to X.Y.Z).claude plugin update ops@ops-marketplace, with a force-reinstall fallback (rm cache + claude plugin install) for the Claude Code bug where update reports "already latest" while the cache stays stale (anthropics/claude-code#61954).scripts/cache-patches/ against the new cache (empty when all fixes are upstream — the desired state).cache/ops-marketplace/ops/<ver>/ except the new one.cache/.../ops/<oldver>/ paths in live configs/scripts/systemd units only (never logs, memory, or transcripts — those use ${CLAUDE_PLUGIN_ROOT} at runtime so they self-resolve).ops-post-update-migrate (idempotent, per-version). It also maintains a stable cache/.../ops/current/ directory (rsynced from the new version and repointed in installed_plugins.json) so Claude Code GC'ing the old versioned dir mid-session never causes "Plugin directory does not exist" hook errors.~/Projects, fast-forwards its main to origin/main so a dev clone never silently drifts behind the published release. Acts only on a clean main (never clobbers uncommitted WIP, a feature branch, or unpushed commits); a no-op when no checkout exists. Skip with --no-localsync./reload-plugins is needed to load it.bin/ops-update step 9 runs scripts/install-companions.sh
against plugin-dependencies.json. Every companion with required: true is
co-installed when missing and updated on every ops-update:/ops:desktop + captcha cascade/ops:flow project mode, /ops:projects, /ops:go/ops:flow ad-hoc (/spec /review /qa /ship)/ops:ops-feature-dev
Skip only with --no-companions or OPS_SKIP_COMPANIONS=1.# manual companion pass
bash "${CLAUDE_PLUGIN_ROOT}/scripts/install-companions.sh"
bash "${CLAUDE_PLUGIN_ROOT}/scripts/install-companions.sh --status"
# skip from ops-update:
${CLAUDE_PLUGIN_ROOT}/bin/ops-update --no-companionsSteps 5–6 are destructive (prune + rewrite), so always dry-run first, show the plan, confirm, then apply (Rule 5).
${CLAUDE_PLUGIN_ROOT}/bin/ops-update --dry-runPresent the output: current → target version, which cache versions would be
pruned, which files would be rewritten. If the dry-run shows
already on <ver> and nothing to prune/rewrite, tell the user the box is
already current and stop (offer --force only if they suspect a stale cache).
"already on <ver>" is a lie when the marketplace clone is stuck. Step 1
prints ✓ marketplace catalogue refreshed even when the underlying git pull
silently did nothing, so step 2 resolves a stale target and the whole run
no-ops. ~/.claude/plugins/marketplaces/ops-marketplace is a real checkout of
this repo; a dirty worktree (a local edit, stray .bak files) blocks the
fast-forward. Verified 2026-09-05: it sat 28 commits behind on v3.10.3 while
v3.10.5 was published, and the update reported the box current.
Whenever the target version does not match what you just released, check the
clone before reaching for --force:
cd ~/.claude/plugins/marketplaces/ops-marketplace
git fetch -q origin
git status -sb # ahead/behind AND porcelain lines
grep -o '"version": *"[^"]*"' .claude-plugin/marketplace.json | head -1Repair: diff each modified file against origin/main first — a local edit that
is byte-identical to upstream is safe to drop, anything else is real work that
must be salvaged before you touch it. Then clean the tree,
git merge --ff-only origin/main, and re-run the dry-run. The target version
should now be the published one.
Use AskUserQuestion before applying:
Upgrade local claude-ops <CUR> → <NEW>? (prunes N old cache versions, rewrites M files)
[Apply upgrade]
[Force re-materialise cache] ← only if same-version stale-cache is suspected
[Cancel]${CLAUDE_PLUGIN_ROOT}/bin/ops-update # or: --forceStream the step-by-step output. On success, surface the final line verbatim:
Restart Claude Code (or run
/reload-plugins) to load v<NEW>.
The running session will NOT see the new version until reload — this is a Claude Code constraint, not a failure.
| Flag | Effect |
|---|---|
--dry-run | Report only; change nothing. Always run this first. |
--force | Force-reinstall even when the CLI claims "already latest" (bug #61954). |
--to X.Y.Z | Target a specific version instead of the catalogue's newest. |
--no-prune | Keep old cache versions. |
--no-patches | Skip the cache-patch reapply step. |
--no-rewrite | Skip the stale-version-path rewrite step. |
--no-localsync | Skip fast-forwarding a linked local source checkout's main. |
--no-companions | Skip required companion co-install/update (desktop-act, gsd, gstack, superpowers, feature-dev). |
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.
<ver>" → nothing to prune/rewrite/migrate).$HOME/.claude/plugins
state; it writes no personal data.${CLAUDE_PLUGIN_ROOT}/bin/ops-release
(bumps plugin.json + marketplace.json + CHANGELOG, opens the release PR,
tags). ops-release ships it; ops-update pulls it down locally.© 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
Just SKILL.md in claude-ops/skills/ops-update of Lifecycle-Innovations-Limited/claude-ops.
Open the folder on GitHubat commit 1aa0928
Ops Update 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ops Update this skillLifecycle-Innovations-Limited/claude-ops | 542 | — | ~2.6k | Automated safety check: Notes | MIT | |
| Knowledge Opsaffaan-m/ECC | 276k | 2 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Research Opsaffaan-m/ECC | 276k | 2 repos | ~902 | Automated safety check: Pass | MIT | |
| Terminal Opsaffaan-m/ECC | 276k | 2 repos | ~750 | Automated safety check: Pass | MIT | |
| Messages Opsaffaan-m/ECC | 276k | 1 repos | ~724 | Automated safety check: Pass | MIT | |
| Email Opsaffaan-m/ECC | 276k | 1 repos | ~1.1k | Automated safety check: Pass | MIT |
affaan-m/ECC
Knowledge base management, ingestion, sync, and retrieval across multiple storage layers (local files, MCP memory, vector stores, Git repos).
affaan-m/ECC
Evidence-first current-state research workflow for ECC. An agent skill from affaan-m/ECC.
affaan-m/ECC
Evidence-first repo execution workflow for ECC. An agent skill from affaan-m/ECC.
affaan-m/ECC
Evidence-first live messaging workflow for ECC. An agent skill from affaan-m/ECC.
affaan-m/ECC
Evidence-first mailbox triage, drafting, send verification, and sent-mail-safe follow-up workflow for ECC.
affaan-m/ECC
GitHub repository operations, automation, and management. An agent skill from affaan-m/ECC.
Lifecycle-Innovations-Limited/claude-ops
OPS on-demand: This skill should be used when the user asks to "ops dashboard", "pixel HQ", or…
Lifecycle-Innovations-Limited/claude-ops
OPS on-demand: This skill should be used when the user asks to "go to market", "GTM plan", or…
Lifecycle-Innovations-Limited/claude-ops
OPS on-demand: This skill should be used when the user asks to "klaviyo", "ads spend", or…
Lifecycle-Innovations-Limited/claude-ops
OPS on-demand: This skill should be used when the user asks to "tweet", "post to linkedin", or…
Lifecycle-Innovations-Limited/claude-ops
OPS on-demand: This skill should be used when the user asks to "yolo mode", "run the business today"…
Lifecycle-Innovations-Limited/claude-ops
OPS on-demand: This skill should be used when the user asks to "datadog", "APM alerts", or…
OPS on-demand: This skill should be used when the user asks to "update ops plugin", "upgrade…. Ops Update is an agent skill from Lifecycle-Innovations-Limited/claude-ops.
Ops Update fits situations like: asks to update ops plugin.
Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -a claude-code`. Or copy the skill folder (claude-ops/skills/ops-update in Lifecycle-Innovations-Limited/claude-ops) into .claude/skills/ops-update in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-update -a codex`. Or copy the skill folder (claude-ops/skills/ops-update in Lifecycle-Innovations-Limited/claude-ops) into .agents/skills/ops-update in your project. Codex loads it when a task matches its description.
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-update -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-update, .gemini/skills/ops-update, .github/skills/ops-update and .opencode/skills/ops-update in your project.
Going by SKILL.md and its folder, Ops Update needs the command-line tools its instructions call (git, claude and bash). Its frontmatter pre-approves these tools: Bash, Read, AskUserQuestion.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
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.
Ops Update is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ops Update: Knowledge Ops (affaan-m/ECC, 276k stars), Research Ops (affaan-m/ECC, 276k stars), Terminal Ops (affaan-m/ECC, 276k stars) and Messages Ops (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.