Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Read-only Kubernetes incident triage using kubectl. Accepts natural language or structured input. Produces root-cause hypotheses, evidence, and next-step commands.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 833% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 295% | 0% |
| case-19 | ✓→✗ | ▼ Worse | -23% | 0% |
| case-07 | ✓→✗ | ▼ Worse | 105% | 0% |
| case-16 | ✓→✗ | ▼ Worse | 109% | 0% |
Performs read-only triage of Kubernetes workloads and namespaces using kubectl.
Supports:
This skill NEVER mutates cluster state.
This skill uses cli_execute with kubectl commands exclusively. NEVER use http_request or web_search to interact with Kubernetes. All cluster operations MUST go through kubectl via the cli_execute tool.
Diagnose unhealthy Kubernetes workloads, pods, or namespaces.
Output format: Use markdown tables for pod/workload status summaries. Wrap kubectl output and log excerpts in text code blocks. Use bash for recommended next-step commands.
Input is a plain string.
Examples:
triage payments-prodtriage deployment payments-api in payments-prodwhy are pods pending in checkout-prod?investigate crashloop in payments-prodtriage pod api-7c9f6d7f86-abcde in payments-prodcheck rollout of deployment payments-api in prodBehavior:
$DEFAULT_NAMESPACE if set.Input JSON schema:
{ "namespace": "payments-prod", "workload_kind": "deployment", "workload_name": "payments-api", "pod_name": null, "label_selector": null, "include_logs": true, "logs_tail_lines": 200, "include_previous_logs": true, "events_limit": 50, "include_node_diagnostics": true, "include_metrics": false, "output_format": "markdown" }
Rules:
namespace is required.pod_name provided → pod-level triage.Verify cluster access:
kubectl version --client kubectl cluster-info
If RBAC denies access:
Namespace scope:
kubectl get pods -n <ns> -o wide kubectl get deploy,sts,ds,job,cronjob -n <ns>
Workload scope:
kubectl get <kind> <name> -n <ns> kubectl rollout status <kind>/<name> -n <ns> --timeout=10s
Select pods in states:
Limit deep triage to $TRIAGE_MAX_PODS (default 5).
kubectl get events -n <ns> --sort-by=.lastTimestamp | tail -n <events_limit>
Look for:
For each selected pod:
kubectl describe pod <pod> -n <ns>
Capture:
If workload-level triage:
kubectl describe <kind> <name> -n <ns>
kubectl get nodes -o wide kubectl describe node <node>
Check for:
kubectl logs <pod> -n <ns> --all-containers --tail=<N>
If restart loops and include_previous_logs=true:
kubectl logs <pod> -n <ns> --previous --all-containers --tail=<N>
Rules:
If enabled:
kubectl top pods -n <ns> kubectl top node
Gracefully skip if metrics-server is unavailable.
Classify detected issues into:
For each issue provide:
Concise bullet summary.
For each:
Copy-paste kubectl commands.
This skill MUST:
This skill is designed to be invoked by:
It must:
Other measured skills in the registry, with their headline benchmark lift.