Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/cozystack/ccp/recovernpx skills add cozystack/ccp --skill recovergit clone --depth 1 https://github.com/cozystack/ccpWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00075 | $0.03983 |
| Opus 5 | $0.00037 | $0.01992 |
| Sonnet 5 | $0.00015 | $0.00797 |
| Haiku 4.5 | $0.00007 | $0.00398 |
Grade A, and why
recover scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 367 lines — stays where its author put it; the contents beside it link to each section on GitHub.
linstor:recover
Specialized skill for diagnosing and recovering DRBD/LINSTOR storage issues in Kubernetes clusters.
When to use
linstor r l --faultyshows broken resources- DRBD resources in StandAlone, Connecting, Inconsistent, Outdated, or Unknown state
- Stuck DELETING resources that won't complete
- TCP port collisions between DRBD devices
- Stuck toggle-disk operations
- Nodes with
drbd.linbit.com/lost-quorumtaints drbdadm adjustfailing with bitmap or connection errors
Core Principles
- Match the operator's natural language. Detect from prior conversation messages. Use that language in every prompt, AskUserQuestion option, summary, and gate. Never ask "what language?" separately. Code identifiers,
linstor/drbdadmcommands, file paths, and GitHub-public text stay in their canonical form (usually English). 0a. One valid path → just do it. When the diagnostic graph picks one resource to fix and one operation that's not destructive (re-attach, re-promote, refresh), the skill runs it without "ok to do this?" friction. The dangerous-operations gate at principle 8 still applies —linstor node lost, deleting the last replica,drbdadm downon InUse/Primary,--discard-my-datawith one diskful copy,drbdadm create-md --force— those always ask. Safe single-path operations don't. 0b. Front-load the interview. Read the full diagnostic graph first (linstor r l --faulty,linstor n l,drbdadm statuson each affected node,linstor error-reports list), then present a single recovery plan with the ordered operations, classifications (safe / dangerous), and the dangerous-operation approvals batched into one approval screen. Operator either approves the lot or names what to skip. Phases of the recovery run uninterrupted against the collected approvals. 0c. Layer-pure operator output. The skill never says "returning control to wizard" or makes any orchestration commentary in the operator-facing summary. linstor:recover is a standalone skill that nobody auto-dispatches today, but even if it ever gets called from a chain, whoever invoked it figures out what's next on their own. - Work one resource at a time. On mass incidents, resist the urge to fix everything at once. Serial, monotonic recovery is safer.
- Always verify on the node itself. LINSTOR's view can be stale or wrong.
drbdadm statuson the satellite is the source of truth. - Preserve UpToDate replicas. Never touch the source-of-truth replica first. Fix broken copies by working outward from the healthy one.
- ALWAYS verify at least one UpToDate diskful replica exists before ANY destructive action. Run
linstor r l -r <resource>and confirm there is at least one replica with State=UpToDate and a real storage pool (not DfltDisklessStorPool). If there are zero UpToDate diskful replicas — STOP and ask the user before proceeding. This is the single most important safety check. - If SyncTarget is progressing, stop. A resource that entered sync is already recovering. Don't interfere.
- Every action should simplify the graph. Remove peers from conflict, reduce topology complexity. If an action creates new noise, don't do it.
- Check error-reports for the real cause. What looks like StandAlone may actually be an
adjustfailure underneath. - ASK the user before dangerous operations. Always ask for explicit confirmation before:
linstor node lost, deleting the last replica,drbdadm downon InUse/Primary resource,--discard-my-datawhen only one diskful copy remains,drbdadm create-md --force(wipes DRBD metadata and triggers a full resync).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 367 lines · 75 tokens per session scan A fd793b167c53
recover is a skill published in the GitHub repository cozystack/ccp (4 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 75 tokens to every session and 3,983 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
agent-host-chat-contributions
Build and review cross-cutting agent-host chat behavior through lifecycle contributions. Use when adding turn lifecycle side effects, prompt or context injection, restored-history transformation, protocol-action observation, or when reviewing changes that add code to AgentSideEffects or AgentService.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.