debug
Skill71 starsChanged 8 days agoApache-2.0View on GitHub
Structured platform troubleshooting — classifies the problem layer, collects evidence, forms a root-cause hypothesis, and proposes a fix with validation and rollback steps.
We split this skill into the rules it gives an agent
3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 171 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
When invoked with no arguments, ask before troubleshooting:
- Distinctive: line 23
Use the response as the symptom for all subsequent steps.
- Distinctive: line 32
Follow this exact structure:
“Common” is measured: kept by at least 6 in 10 of the 171 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Interactive Wizard (fires when $ARGUMENTS is empty)
When invoked with no arguments, ask before troubleshooting:
Q1 — What is the symptom?
Describe what's broken — paste the error message, command output, or describe
the observable behaviour (e.g. "pods stuck in Pending", "HelmRelease not reconciling",
"403 on IAM role assumption"):Use the response as the symptom for all subsequent steps. Do not ask for the layer — infer it from the symptom description and show your classification in step 1.
You are a senior platform engineer performing structured troubleshooting.
The user reports: $ARGUMENTS
Follow this exact structure:
1. Classify the Layer
Identify which layer owns this problem:
- Terraform — bootstrap, cloud resource, identity, networking
- Kubernetes — workload, RBAC, policy, scheduling
- OpenShift — SCC, route, operator, quota
- Flux CD — source, artifact, reconciliation, chart rendering, runtime
- Argo CD — sync, diff, project, health
- Linkerd — proxy injection, mTLS, authorization policy, multi-cluster
- GitHub Actions — workflow syntax, permissions, OIDC, runner
- AWS / Azure — IAM, networking, managed service, quota
- Secrets — ESO sync, Sealed Secrets, rotation
2. Evidence to Collect
List the exact commands the user should run to gather diagnostic data before any fix is attempted. Be specific — include namespace flags, resource names from the description, and output filters.
3. Root-Cause Hypothesis
Based on the symptom, state the most likely root cause. Explain why this layer and this cause. If multiple causes are plausible, rank them.
4. Proposed Fix
Provide the exact configuration change, command, or patch. Show before and after where relevant. Do not suggest a fix that requires evidence not yet collected.
5. Validation
Commands to confirm the fix worked.
6. Rollback
How to safely undo the change if validation fails.
Mode: timeline
Reconstruct what happened in a cluster in the last N minutes. Use when you know something broke but don't know when or what triggered it.
Steps:
- Collect events across all namespaces, sorted by time:
kubectl get events -A --sort-by='.lastTimestamp' | tail -50 kubectl get events -A --sort-by='.lastTimestamp' \ --field-selector type=Warning | tail -30 - Check recent pod state changes:
# Pods that restarted or are not Running kubectl get pods -A | grep -v Running | grep -v Completed # Restart counts kubectl get pods -A -o custom-columns=\ 'NS:.metadata.namespace,NAME:.metadata.name,RESTARTS:.status.containerStatuses[0].restartCount' \ | sort -k3 -rn | head -20 - Controller-level changes (what Kubernetes itself did):
kubectl get events -A --sort-by='.lastTimestamp' \ --field-selector reason=ScalingReplicaSet kubectl get events -A --sort-by='.lastTimestamp' \ --field-selector reason=FailedScheduling - Recent deployments and rollouts:
kubectl rollout history deployment -A 2>/dev/null | grep -v "<none>" # Check who deployed and when kubectl get replicasets -A --sort-by='.metadata.creationTimestamp' | tail -10 - Node-level events (pressure, cordoning, OOM):
kubectl describe nodes | grep -A5 "Conditions:\|Events:" kubectl get events -A --field-selector involvedObject.kind=Node \ --sort-by='.lastTimestamp' | tail -20 - Flux / GitOps reconciliation timeline (if applicable):
flux get all -A | grep -v "True" kubectl get events -n flux-system --sort-by='.lastTimestamp' | tail -20 - Produce a timeline — order all findings chronologically:
HH:MM [Node] node-3 reports MemoryPressure HH:MM [Scheduler] pod/payment-api-7d9f unable to schedule (Insufficient memory) HH:MM [ReplicaSet] payment-api scaled down from 5 → 3 replicas HH:MM [HPA] payment-api HPA unable to compute desired replica count HH:MM [Alert] ErrorRateCritical fires on payment-api
→ Next: Once the timeline is established, run /platform-skills:debug with the root-cause symptom for structured fix guidance, or /platform-skills:product postmortem to convert the timeline into a post-mortem.
Common mistakes
- Fixing symptoms without collecting evidence first —
kubectl delete podbefore reading logs loses the crash context permanently. Always gather evidence before acting - Checking only the failing pod's logs — the root cause is often in a dependency (upstream service, database, config source). Follow the call chain
- Ignoring event timestamps — Kubernetes events expire after 1h by default; check them immediately after an incident
- Assuming the first error in logs is the root cause — cascading failures produce many errors; work backwards from the first anomaly in the timeline
- Applying a fix without a rollback plan — every production change needs a known undo path before it is applied, not after
Other versions192 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 192
- Yeachan-Heo/oh-my-claude-sisyphus★ 40ksame name
- Yeachan-Heo/oh-my-claudecode★ 40ksame name
- anthropics/knowledge-work-plugins★ 34ksame name
- qwibitai/nanoclaw★ 31ksame name
- gavrielc/nanoclaw★ 31ksame name
- nanocoai/nanoclaw★ 31ksame name
- openai/symphony★ 27ksame name
- FalkorDB/FalkorDB★ 11ksame name
- NVIDIA/TensorRT-Model-Optimizer★ 5.5ksame name
- NVIDIA/Model-Optimizer★ 5.5ksame name
182 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use add-discord, add-slack and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkilladd-discord
Add Discord bot channel integration via Chat SDK.
Also in 11 projects that use this
MicrosoftSkilladd-slack
Add Slack channel integration via Chat SDK.
Also in 11 projects that use this
- +10 more from microsoft
In this repository59 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/keda.mdcCursor rule
- .cursor/rules/kubernetes.mdcCursor rule
- .cursor/rules/platform-skills.mdcCursor rule
- .cursor/rules/terraform.mdcCursor rule
- code-reviewSkill
- platform-skillsSkill
- ai-governanceSkill
- awesome-docsSkill
- aws-profileSkill
- awsSkill
- azureSkill
- backup-drSkill
- chaosSkill
- checkovSkill
- cluster-upgradeSkill
- commitSkill
- complianceSkill
- composite-actionsSkill
- datadogSkill
- documentSkill
- doraSkill
- dynatraceSkill
- finopsSkill
- fluxcdSkill
- gateway-apiSkill
- github-actionsSkill
- gitopsSkill
- helmchartSkill
- karpenterSkill
- kedaSkill
- kingfisherSkill
- kubernetesSkill
- kubescape-operatorSkill
- kubescapeSkill
- kyvernoSkill
- linkerdSkill
- linuxSkill
- mcpSkill
- observabilitySkill
- opaSkill
- openshiftSkill
- platform-skillsSkill
- preflightSkill
- productSkill
- progressive-deliverySkill
- pr-reviewSkill
- renovateSkill
- runtime-securitySkill
- secretsSkill
- self-improveSkill
- setup-agentsSkill
- supply-chainSkill
- terraformSkill
- token-optimizerSkill
- triageSkill
- trivySkill
- zizmorSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

