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 "A&R this track", "demo verdict", or…
$ npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-ar -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-ar --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-ar .claude/skills/ops-ar && 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-ar" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-ar into .claude/skills/ops-ar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-ar", 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-arType 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-ar -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-ar --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-ar .agents/skills/ops-ar && 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-ar" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-ar into .agents/skills/ops-ar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-ar", 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-ar -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-ar --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-ar .cursor/skills/ops-ar && 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-ar" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-ar into .cursor/skills/ops-ar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-ar", 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-ar--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-ar -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Lifecycle-Innovations-Limited/claude-ops ops-ar --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-ar .gemini/skills/ops-ar && 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-ar" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-ar into .gemini/skills/ops-ar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-ar", 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-arInstalls 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-ar -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-ar .github/skills/ops-ar && 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-ar" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-ar into .github/skills/ops-ar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-ar", 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-ar -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-ar --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-ar .opencode/skills/ops-ar && 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-ar" agent skill from https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-ar into .opencode/skills/ops-ar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ops-ar", 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-arOPS on-demand: This skill should be used when the user asks to "A&R this track", "demo verdict", or…
Ops Ar is an agent skill from Lifecycle-Innovations-Limited/claude-ops. OPS on-demand: This skill should be used when the user asks to "A&R this track", "demo verdict", or…
Its SKILL.md is about 3.3k 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.
4 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:
BashReadWriteGrepGlobAgentTeamCreateSendMessageAskUserQuestionWebSearchFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
jqpythonyt-dlpFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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 Ar loads about 3.3k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 1,526 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, Write, Grep, Glob, Agent, TeamCreate, SendMessage, AskUserQuestion, WebSearchAutomated 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,526 words, ~3,301 tokens.
.claude/skills/ops-ar/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).
A&R the given record(s) like a pop/dance-hit label owner + master producer. The deliverable is always the full A&R card per track:
VERDICT (hit/10 + sign / develop / pass) → WHAT'S WORKING → WHAT'S HOLDING IT BACK → THE PLAN (producer moves) → REFERENCE & POSITIONING → NEXT.
| Setting | Source | Default |
|---|---|---|
| Audio analysis stack home | $AUDIO_AR_HOME env or ar.stack_home in $PREFS_PATH | ~/audio-ai |
| Python venv | $AUDIO_AR_HOME/venv/bin/python | — |
| Music.ai workflow slug | $MUSICAI_WORKFLOW env or Doppler | (required for Music.ai) |
| Cyanite / Music.ai / Soundcharts keys | env / Doppler / ~/.mcp-secrets.env | — |
| A&R taste profile (label lane, reference acts, tempo sweet spot) | ar.profile in $PREFS_PATH | dance-pop / feel-good house |
The skill must read these at runtime — never hardcode user names, mailboxes, label names, or absolute /Users/... paths.
ar.profile exists)Before spawning any ar-producer agent, read the profile once:
PREFS="${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json"
jq '.ar.profile // empty' "$PREFS"If non-empty, inject the whole JSON object verbatim into every ar-producer spawn prompt, with the instruction: "Judge as the A&R for THIS owner/label. Calibrate the verdict per verdict_calibration. Weigh hooks and toplines against songwriting_taste. REFERENCE & POSITIONING must position against catalog_recent, signature_classics, and label_roster_third_party — name the closest catalog comparison, not generic genre acts. Check tempo against tempo_sweet_spot and brand fit against lane. If signing_structure is present, the NEXT section of a sign/develop verdict must state which entity signs the master."
Fields the profile may carry (all optional): owner, label, lane, tempo_sweet_spot, ar_team, signing_structure, reference_acts, catalog_recent, signature_classics, label_roster_third_party, songwriting_taste, verdict_calibration. If the profile is absent, fall back to the generic dance-pop / feel-good house default and say so in the card header.
ar.imprints is non-empty)Imprints are data, not code. Never hardcode an imprint's name, sound, or test — read them:
jq -r '.ar.imprints // {} | keys[]' "$PREFS" # imprint keys
jq '.ar.imprints["<key>"]' "$PREFS" # one imprintFor each imprint whose lane the track falls in, inject that object verbatim into the ar-producer spawn prompt except brand_book_corpus (the full scraped brand-book text — too large for a spawn prompt; consult it only when a card needs exact brand-book language, via jq '.ar.imprints["<key>"].brand_book_corpus.pages | keys' then the specific page). Always inject sound_description — it is the imprint's sonic north star and the tiebreaker on the subjective points.
Add an IMPRINT section to the A&R card between VERDICT and WHAT'S WORKING: score the track against that imprint's own ten_point_test per its scoring_rule (one line per point, pass/fail/N-A, with the failing evidence named), then one routing line — eligible for <imprint display_name>, or route to parent label. An imprint is a strict subset of the label: a failed gate never downgrades the main verdict, it only routes the release. Owner's own tracks always get the scorecard; third-party demos get it only when they are in that imprint's lane.
Each imprint object may carry: display_name, lane, sound_description, ten_point_test, scoring_rule, brand_book_corpus. If ar.imprints is absent or empty, skip the IMPRINT section entirely — do not invent an imprint.
/ops:ops-ar <file|url|latest>Spawn the ar-producer agent (Opus) with the track:
&dl=1; YouTube: yt-dlp -x --audio-format mp3).latest / empty → newest audio file (.mp3, .wav, .m4a, .aiff, .flac, .ogg, .aac) in ~/.claude/jobs/*/tmp/ by mtime — ignore JSON, PNG, and other non-audio artifacts.ToolSearch select:mcp__audio-ar__full_ar_report,mcp__audio-ar__analyze_track,mcp__audio-ar__mood_score,mcp__audio-ar__transcribe_vocals,mcp__audio-ar__separate_stems,mcp__audio-ar__render_visuals,mcp__audio-ar__analyze_stems,mcp__audio-ar__cyanite_analyze,mcp__audio-ar__musicai_analyze,mcp__audio-ar__soundcharts_lookup — subagents don't inherit MCP discovery./ops:ops-ar <file1> <file2> ... (or multiple URLs)A&R multiple local paths or URLs in one invocation:
nproc/uptime first). Same subagent MCP rule as single-track mode (include the full ToolSearch select:mcp__audio-ar__... list). Relay each agent's full A&R card back verbatim./ops:ops-ar inbox [from <sender> ...]Pull every demo/song from the user's Gmail inbox and A&R them all:
gog gmail search 'has:attachment (filename:mp3 OR filename:wav OR filename:m4a OR filename:aiff OR filename:flac OR filename:ogg OR filename:aac)' (add from: filters if senders given). Confirm scope with the user if the set is large (>10 threads).gog gmail thread get <tid> -j → message ids from thread.messages[].id (envelope {downloaded, thread: {messages: [...]}} — NOT top-level messages) → gog gmail raw <mid> -j piped to jq for audio parts (filename + attachmentId) → gog gmail attachment <mid> <aid> --out <dir>/<label>__<file>. Also grep text parts for external links (postal.music, disco.ac, wetransfer, dropbox) — flag link-only demos that need a login as NOT ANALYZED and tell the user to request a file re-send.nproc/uptime first). Same subagent MCP rule as single-track mode (include the full ToolSearch select:mcp__audio-ar__... list). Relay each agent's full A&R card back verbatim.House rule: every A&R email ALWAYS includes (a) a per-track DIRECT LISTEN LINK and (b) the FULL A&R card per track — never just the ranked summary.
gog drive upload <file> → share → direct link). An email-thread link alone is NOT sufficient.gog gmail url <threadId>) — both direct + email link is ideal.$AUDIO_AR_HOME/venv/bin/python pro_apis.py cyanite <file>): returns genreTags, subgenreTags, moodTags, instrumentTags, bpmRangeAdjusted, bpmPrediction{value confidence}, keyPrediction{value confidence}, timeSignature, energyLevel, valence, arousal, voicePresenceProfile, predominantVoiceGender, musicalEraTag, transformerCaption and per-mood scores (mood{happy uplifting energetic dark sad calm epic romantic}). Free/trial plans have a LIFETIME library cap — deleting tracks does NOT free quota. On librarySizeLimitExceededError, route through Music.ai instead.fileUploadRequest now returns { uploadUrl id } (the field was uploadId), then libraryTrackCreate(input: { uploadId: $id }) with $id: ID!. Older pro_apis.py copies that read uploadId, send a String id, or query removed fields fail validation — fix the stack, not the card.query { ping } answers without a valid key. Prove a key with libraryTracks(first: 1) { edges { node { id } } } and check that data.libraryTracks is an object.Signature header (HMAC-SHA512 of the raw body with the webhook secret) before processing any payload; reject mismatches. A tiny Cloudflare Worker is enough.mood.dark is low (< 0.2) and happy/uplifting are high, report the Cyanite reading.pro_apis.py musicai <file>, needs $MUSICAI_WORKFLOW, e.g. a "Metadata Suite" workflow): same Cyanite engine on separate billing + extras — ai_voice (Real vs AI-GENERATED — always flag AI guide vocals: they're placeholders needing a real singer), voice_gender, instruments. Implementation gotchas (already handled in pro_apis.py): requests need a browser User-Agent (Cloudflare 1010 blocks default python-urllib), and the upload-URL request must be a clean GET with no body. Convert .m4a to mp3 before upload.pro_apis.py soundcharts <query>): released-catalogue lookup only — useless for unreleased demos; use it for reference-track benchmarking in the REFERENCE section. Auth is the x-app-id + x-api-key pair, and both must come from the same console app — a key from one app with another app's id fails auth and looks like an expired key. song/{uuid} gives audio.key/audio.mode/audio.tempo, handy for checking that a remix keeps the original's key.bpmRangeAdjusted (the prediction folded into 60–180 BPM, so it can differ from raw bpmPrediction.value, e.g. 200 vs 100) and use bpmPrediction.confidence to judge how sure it is, when available; otherwise confirm by groove.If mcp__audio-ar__* is unavailable, run the stack directly via Bash from $AUDIO_AR_HOME (venv/bin/python analyze.py <file>, clap_score.py, transcribe.py, pro_apis.py). Never fabricate analysis — if nothing ran, say so.
If CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is set, use Agent Teams when dispatching multiple ar-producer agents in batch or inbox-sweep mode. This enables:
Team setup (only when flag is enabled, batch/inbox dispatch phase):
TeamCreate("ar-batch")
Agent(team_name="ar-batch", name="ar-[track-slug]", ...)If the flag is NOT set, use standard parallel subagents (fire-and-forget, waves of ≤2).
© 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-ar of Lifecycle-Innovations-Limited/claude-ops.
Open the folder on GitHubat commit 1aa0928
Ops Ar 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 Ar this skillLifecycle-Innovations-Limited/claude-ops | 542 | — | ~3.3k | 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 "A&R this track", "demo verdict", or…. Ops Ar is an agent skill from Lifecycle-Innovations-Limited/claude-ops.
Ops Ar fits situations like: asks to A&R this track.
Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-ar -a claude-code`. Or copy the skill folder (claude-ops/skills/ops-ar in Lifecycle-Innovations-Limited/claude-ops) into .claude/skills/ops-ar in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Lifecycle-Innovations-Limited/claude-ops --skill ops-ar -a codex`. Or copy the skill folder (claude-ops/skills/ops-ar in Lifecycle-Innovations-Limited/claude-ops) into .agents/skills/ops-ar 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-ar -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-ar, .gemini/skills/ops-ar, .github/skills/ops-ar and .opencode/skills/ops-ar in your project.
Going by SKILL.md and its folder, Ops Ar needs the command-line tools its instructions call (jq, python and yt-dlp). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read, Write, Grep, Glob, Agent, TeamCreate, SendMessage, AskUserQuestion, WebSearch.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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 Ar is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k 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 Ar: 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.