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 skills add controlplane-com/ai-plugin --skill workload-troubleshootinggit clone --depth 1 https://github.com/controlplane-com/ai-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/controlplane-com/ai-plugin/workload-troubleshooting)<a href="https://agentmods.dev/skills/controlplane-com/ai-plugin/workload-troubleshooting"><img src="https://agentmods.dev/badge/skills/controlplane-com/ai-plugin/workload-troubleshooting/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/controlplane-com/ai-plugin/workload-troubleshooting"><img src="https://agentmods.dev/badge/skills/controlplane-com/ai-plugin/workload-troubleshooting.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What 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.1 | $0.00049 | $0.02077 |
| Opus 5.5 | $0.00020 | $0.00831 |
| Sonnet 5.5 | $0.00010 | $0.00415 |
| Haiku 4.5 | $0.00005 | $0.00208 |
Grade A, and why
workload-troubleshooting 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 17d 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 — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Workload Troubleshooting
Maps a symptom to its platform-specific cause and a fix the schema accepts. Diagnosis is read-only. Most failures trace to a Control Plane rule a generic engineer would not guess; the most common is OOMKilled.
Gather state
mcp__cpln__diagnose_workload first: one call reads the deployments, events, and error log lines, matches them against this catalog, and returns the likely cause with its evidence. When it is not conclusive:
list_deployments, withlocationfor one location in full detail.get_workload_eventsfor image pulls, crashes, scheduling, probe failures, andOOMKilled.get_workload_logs; the_accesslogcontainer holds HTTP status codes and latency.list_metrics, thenquery_metrics, for memory, CPU, and latency pressure.query_traces, thenget_trace, for a slow request; needs tracing on the GVC (metrics-observabilityskill).- In-container inspection goes through the CLI (
cplnskill).
Failure catalog
Out of memory (OOMKilled)
memory is a hard cap per container, sidecars included: app, runtime, GC, and buffers together. Usual culprits: Java without -Xmx, Node without --max-old-space-size, Python loading large datasets. Capacity AI can downsize a spiky workload too far; set minMemory as a floor.
Fix: measure with query_metrics, then raise memory, and raise cpu with it: memory in MiB stays within 8 times CPU in millicores, so the default 50m caps memory at 400Mi.
Image pull failures (ImagePullBackOff, ErrImagePull)
Check the reference form, the architecture (linux/amd64 on managed locations; BYOK allows more), and the pull secret: a private external registry needs a secret of type docker, ecr, or gcp in the GVC's pullSecretLinks, created with create_secret and values: "user", attached with update_gvc. Org //image/ images need none. Detail: image skill.
Secret access failures
Empty env vars or secret errors in events mean the identity, reveal policy, or reference is missing or wrong. grant_workload_secret_access fixes the identity and policy in one call; reference formats per type: setup-secret skill.
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.
- 17d ago Changed · -117 lines 42291d1e96b2
- 1mo ago First seen · 230 lines · 49 tokens per session scan A d1d6210234e3
workload-troubleshooting is a skill published in the GitHub repository controlplane-com/ai-plugin (11 stars, last pushed 3d ago), licensed MIT. It adds 49 tokens to every session and 2,077 once invoked, about $0.0002 per session on Opus 5.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
gke-workload-troubleshooting
Diagnoses GKE workload failures (CrashLoopBackOff, OOMKilled, ImagePullBackOff, Pending, etc.) via logs and events. Use when pods fail to start or crash repeatedly. Don't use for GKE cluster infrastructure provisioning, node pool creation, or non-Kubernetes Google Cloud services.
gke-workload-scaling-troubleshooting
Diagnoses GKE HorizontalPodAutoscaler (HPA) failures — metrics showing as , FailedGetResourceMetric / FailedGetScale / FailedComputeMetricsReplicas events, missing Pod resource requests, custom/external metrics-pipeline breakage (FailedGetExternalMetric / FailedGetCustomMetric, unavailable metrics adapter…
gke-ai-troubleshooting-tpu-mxla-hang
Diagnose GKE Cloud TPU multi-slice training hangs (Megascale HANGDETECTED logs and hang monitored events) using the ML Diagnostics Megascale XLA (MXLA) Hang Analyzer (gcloud alpha mldiagnostics monitored-events) and 1-minute Cloud Monitoring multi-slice latency metrics (kubernetes.io/container/multislice/).…
gke-node-notready
Diagnoses GKE nodes reporting NotReady or Unknown status by inspecting node conditions, events, kubelet/containerd logs, and node metrics, then proposing safe remediations. Use when nodes show NotReady, when the kubelet stops posting node status, or when workloads are evicted or stuck Pending due to node health. Don't…
gke-ai-troubleshooting-node-unresponsive-timeout
Diagnose and mitigate GKE TPU or GPU nodes stuck in NotReady / NodeStatusUnknown ("Kubelet stopped posting node status") due to host kernel panics, hardware lockups, or disabled node auto-repair. Use when nodes stop heartbeating beyond the node auto-repair threshold and pods remain stuck in Terminating. Don't use for…
gke-ai-troubleshooting-tpu-performance-degradation
Diagnose GKE Cloud TPU training throughput drops and step-time regressions (15%+ TPU duty-cycle drop) using ML Diagnostics Workload Monitoring (gcloud alpha mldiagnostics monitored-events / hypercomputecluster.googleapis.com/v1alpha) and 1-minute Cloud Monitoring system metrics (kubernetes.io/node/accelerator/).…