Agent skill

Must Gather Analyzer

by openshift-eng in openshift-eng/ai-helpers

Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components.

Apache-2.0Auto-check passed

Install Must Gather Analyzer

skills CLI
$ npx skills add openshift-eng/ai-helpers --skill must-gather-analyzer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openshift-eng/ai-helpers must-gather-analyzer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openshift-eng/ai-helpers.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/must-gather/skills/must-gather-analyzer .claude/skills/must-gather-analyzer && rm -rf skills-src

Use ~/.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/

Facts

Skill name
must-gather-analyzer
GitHub stars
120
Token cost
~2.3k tokens
SKILL.md length
732 words
Files
12 (incl. scripts)
Skills in repo
118
Repo updated
First seen
Licence
Apache-2.0

At a glance

Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components.

  • Works in 3 steps: Get Must-Gather Path → Choose Analysis Type → Interpret and Report
  • The user asks about cluster health
  • SKILL.md covers Overview, Must-Gather Directory Structure, Instructions and Output Format, plus 4 more sections
  • Runs Python scripts from its folder

What it does

Must Gather Analyzer is an agent skill from openshift-eng/ai-helpers. Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components. Use this skill when the user asks about cluster health, operator status, pod issues, node conditions, or wants diagnostic insights from must-gather data. Triggers: "analyze must-gather", "check cluster health", "operator status", "pod issues", "node status", "failing pods", "degraded operators", "cluster problems", "crashlooping", "network issues", "etcd health", "analyze clusteroperators", "analyze…

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including scripts (for example `scripts/analyze_clusteroperators.py`, `scripts/analyze_clusterversion.py` and `scripts/analyze_etcd.py`).

The repository describes itself as: Developer productivity tools for Claude Code & other AI assistants. The licence is Apache-2.0.

When your agent uses it

  • The user asks about cluster health
  • Operator status
  • Node conditions
  • Wants diagnostic insights from must-gather data

Example prompts

  • “analyze must-gather”
  • “check cluster health”
  • “operator status”
  • “/must-gather-analyzer”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Get Must-Gather Path
  2. Choose Analysis Type
  3. Interpret and Report

What it can do on your machine

Read from SKILL.md and the folder at commit a627176. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 11 files in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Must Gather Analyzer loads about 2.3k tokens when it runs. Until then it costs about 140 tokens; SKILL.md has 732 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~140
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

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.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated 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); the scripts in this folder are not scanned.

SKILL.md

The full file from openshift-eng/ai-helpers at commit a627176, republished under its Apache-2.0 licence (© openshift-eng). 732 words, ~2,305 tokens.

Download SKILL.mdSave it as .claude/skills/must-gather-analyzer/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
must-gather-analyzer
description
Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components. Use this skill when the user asks about cluster health, operator status, pod issues, node conditions, or wants diagnostic insights from must-gather data. Triggers: "analyze must-gather", "check cluster health", "operator status", "pod issues", "node status", "failing pods", "degraded operators", "cluster problems", "crashlooping", "network issues", "etcd health", "analyze clusteroperators", "analyze pods", "analyze nodes"

Must-Gather Analyzer Skill

Comprehensive analysis of OpenShift must-gather diagnostic data with helper scripts that parse YAML and display output in oc-like format.

Overview

This skill provides analysis for:

  • ClusterVersion: Current version, update status, and capabilities
  • Cluster Operators: Status, degradation, and availability
  • Pods: Health, restarts, crashes, and failures across namespaces
  • Nodes: Conditions, capacity, and readiness
  • Network: OVN/SDN diagnostics and connectivity
  • Events: Warning and error events across namespaces
  • etcd: Cluster health, member status, and quorum
  • Storage: PersistentVolumes and PersistentVolumeClaims status

Must-Gather Directory Structure

Important: Must-gather data is contained in a subdirectory with a long hash name:

must-gather/
└── registry-ci-openshift-org-origin-...-sha256-<hash>/
    ├── cluster-scoped-resources/
    │   ├── config.openshift.io/clusteroperators/
    │   └── core/nodes/
    ├── namespaces/
    │   └── <namespace>/
    │       └── pods/
    │           └── <pod-name>/
    │               └── <pod-name>.yaml
    └── network_logs/

The analysis scripts expect the path to the subdirectory (the one with the hash), not the root must-gather folder.

Instructions

1. Get Must-Gather Path

Ask the user for the must-gather directory path if not already provided.

  • If they provide the root directory, look for the subdirectory with the hash name
  • The correct path contains cluster-scoped-resources/ and namespaces/ directories
2. Choose Analysis Type

Based on user's request, run the appropriate helper script:

ClusterVersion Analysis
bash
./scripts/analyze_clusterversion.py <must-gather-path>

Shows cluster version information similar to oc get clusterversion:

  • Current version and update status
  • Progressing state
  • Available updates
  • Version conditions
  • Enabled capabilities
  • Update history
Cluster Operators Analysis
bash
./scripts/analyze_clusteroperators.py <must-gather-path>

Shows cluster operator status similar to oc get clusteroperators:

  • Available, Progressing, Degraded conditions
  • Version information
  • Time since condition change
  • Detailed messages for operators with issues
Pods Analysis
bash
# All namespaces
./scripts/analyze_pods.py <must-gather-path>

# Specific namespace
./scripts/analyze_pods.py <must-gather-path> --namespace <namespace>

# Show only problematic pods
./scripts/analyze_pods.py <must-gather-path> --problems-only

Shows pod status similar to oc get pods -A:

  • Ready/Total containers
  • Status (Running, Pending, CrashLoopBackOff, etc.)
  • Restart counts
  • Age
  • Categorized issues (crashlooping, pending, failed)
Nodes Analysis
bash
./scripts/analyze_nodes.py <must-gather-path>

# Show only nodes with issues
./scripts/analyze_nodes.py <must-gather-path> --problems-only

Shows node status similar to oc get nodes:

  • Ready status
  • Roles (master, worker)
  • Age
  • Kubernetes version
  • Node conditions (DiskPressure, MemoryPressure, etc.)
  • Capacity and allocatable resources
Network Analysis
bash
./scripts/analyze_network.py <must-gather-path>

Shows network health:

  • Network type (OVN-Kubernetes, OpenShift SDN)
  • Network operator status
  • OVN pod health
  • PodNetworkConnectivityCheck results
  • Network-related issues
Events Analysis
bash
# Recent events (last 100)
./scripts/analyze_events.py <must-gather-path>

# Warning events only
./scripts/analyze_events.py <must-gather-path> --type Warning

# Events in specific namespace
./scripts/analyze_events.py <must-gather-path> --namespace openshift-etcd

# Show last 50 events
./scripts/analyze_events.py <must-gather-path> --count 50

Shows cluster events:

  • Event type (Warning, Normal)
  • Last seen timestamp
  • Reason and message
  • Affected object
  • Event count
etcd Analysis
bash
./scripts/analyze_etcd.py <must-gather-path>

Shows etcd cluster health:

  • Member health status
  • Member list with IDs and URLs
  • Endpoint status (leader, version, DB size)
  • Quorum status
  • Cluster summary
Storage Analysis
bash
# All PVs and PVCs
./scripts/analyze_pvs.py <must-gather-path>

# PVCs in specific namespace
./scripts/analyze_pvs.py <must-gather-path> --namespace openshift-monitoring

Shows storage resources:

  • PersistentVolumes (capacity, status, claims)
  • PersistentVolumeClaims (binding, capacity)
  • Storage classes
  • Pending/unbound volumes
Monitoring Analysis
bash
# All alerts.
./scripts/analyze_prometheus.py <must-gather-path>

# Alerts in specific namespace
./scripts/analyze_prometheus.py <must-gather-path> --namespace openshift-monitoring

Shows monitoring information:

  • Alerts (state, namespace, name, active since, labels)
  • Total of pending/firing alerts
3. Interpret and Report

After running the scripts:

  1. Review the summary statistics
  2. Focus on items flagged with issues
  3. Provide actionable insights and next steps
  4. Suggest log analysis for specific components if needed
  5. Cross-reference issues (e.g., degraded operator → failing pods → node issues)

Output Format

All scripts provide:

  • Summary Section: High-level statistics with emoji indicators
  • Table View: oc-like formatted output
  • Issues Section: Detailed breakdown of problems

Example summary format:

================================================================================
SUMMARY: 25/28 operators healthy
  ⚠️  3 operators with issues
  🔄 1 progressing
  ❌ 2 degraded
================================================================================
Show full SKILL.md (292 more words)Show less

Helper Scripts Reference

scripts/analyze_clusterversion.py

Parses: cluster-scoped-resources/config.openshift.io/clusterversions/version.yaml Output: ClusterVersion table with detailed version info, conditions, and capabilities

scripts/analyze_clusteroperators.py

Parses: cluster-scoped-resources/config.openshift.io/clusteroperators/ Output: ClusterOperator status table with conditions

scripts/analyze_pods.py

Parses: namespaces/*/pods/*/*.yaml (individual pod directories) Output: Pod status table with issues categorized

scripts/analyze_nodes.py

Parses: cluster-scoped-resources/core/nodes/ Output: Node status table with conditions and capacity

scripts/analyze_network.py

Parses: network_logs/, network operator, OVN resources Output: Network health summary and diagnostics

scripts/analyze_events.py

Parses: namespaces/*/core/events.yaml Output: Event table sorted by last occurrence

scripts/analyze_etcd.py

Parses: etcd_info/ (endpoint_health.json, member_list.json, endpoint_status.json) Output: etcd cluster health and member status

scripts/analyze_pvs.py

Parses: cluster-scoped-resources/core/persistentvolumes/, namespaces/*/core/persistentvolumeclaims.yaml Output: PV and PVC status tables

scripts/analyze_ovn_dbs.py

Parses OVN Northbound and Southbound database dumps and supports targeted OVSDB queries.

scripts/analyze_windows_logs.py

Parses Windows node component logs for kube-proxy, hybrid-overlay, kubelet, containerd, WICD, and CSI proxy.

Tips for Analysis

  1. Start with Cluster Operators: They often reveal system-wide issues
  2. Check Timing: Look at "SINCE" columns to understand when issues started
  3. Follow Dependencies: Degraded operator → check its namespace pods → check hosting nodes
  4. Look for Patterns: Multiple pods failing on same node suggests node issue
  5. Cross-reference: Use multiple scripts together for complete picture

Common Scenarios

"Why is my cluster degraded?"
  1. Run analyze_clusteroperators.py - identify degraded operators
  2. Run analyze_pods.py --namespace <operator-namespace> - check operator pods
  3. Run analyze_nodes.py - verify node health
"Pods keep crashing"
  1. Run analyze_pods.py --problems-only - find crashlooping pods
  2. Check which nodes they're on
  3. Run analyze_nodes.py - verify node conditions
  4. Suggest checking pod logs in must-gather data
"Network connectivity issues"
  1. Run analyze_network.py - check network health
  2. Run analyze_pods.py --namespace openshift-ovn-kubernetes
  3. Check PodNetworkConnectivityCheck results

Next Steps After Analysis

Based on findings, suggest:

  • Examining specific pod logs in namespaces/<ns>/pods/<pod>/<container>/logs/
  • Reviewing events in namespaces/<ns>/core/events.yaml
  • Checking audit logs in audit_logs/
  • Analyzing metrics data if available
  • Looking at host service logs in host_service_logs/

© openshift-eng, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (scripts) in plugins/must-gather/skills/must-gather-analyzer of openshift-eng/ai-helpers.

  • SKILL.md
  • scripts/analyze_clusteroperators.py
  • scripts/analyze_clusterversion.py
  • scripts/analyze_etcd.py
  • scripts/analyze_events.py
  • scripts/analyze_network.py
  • scripts/analyze_nodes.py
  • scripts/analyze_ovn_dbs.py
  • scripts/analyze_pods.py
  • scripts/analyze_prometheus.py
  • scripts/analyze_pvs.py
  • scripts/analyze_windows_logs.py

Open the folder on GitHubat commit a627176

Compare with similar skills

Must Gather Analyzer 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.

Must Gather Analyzer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Must Gather Analyzer this skillopenshift-eng/ai-helpers120—~2.3kAutomated safety check: PassApache-2.0
Openshiftsickn33/agentic-awesome-skills47k1 repos~2.4kAutomated safety check: PassMIT
Vector Clusterruvnet/ruflo74k—~540Automated safety check: NotesMIT
Roslyn Analyzersgithub/awesome-copilot40k—~9kAutomated safety check: PassMIT
Network Bgp Diagnosticsaffaan-m/ECC276k1 repos~1.4kAutomated safety check: PassMIT
Agent Code Analyzerruvnet/ruflo74k2 repos~1.5kAutomated safety check: PassMIT

Similar skills

  • Openshift

    sickn33/agentic-awesome-skills

    Manage Red Hat OpenShift clusters and deployments. An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 1 repo~2.4k tokens
    DevOps & CloudAuto-check passed
  • Vector Cluster

    ruvnet/ruflo

    Cluster code by graph community detection via npx ruvector@0.2.25 hooks graph-cluster (spectral / Louvain)

    74k GitHub stars~540 tokensUpdated today
    Auto-check: notes
  • Roslyn Analyzers

    github/awesome-copilot

    Official

    Build, review, debug, package, and test Roslyn diagnostic analyzers, code fix providers, and incremental source generators.

    40k GitHub stars~9k tokensUpdated yesterday
    Auto-check passed
  • Diagnostics-only BGP troubleshooting patterns for neighbor state, route exchange, prefix policy, AS path inspection, and safe evidence collection.

    276k GitHub starsUsed in 1 repo~1.4k tokens
    SecurityAuto-check passed
  • Agent skill for code-analyzer - invoke with $agent-code-analyzer

    74k GitHub starsUsed in 2 repos~1.5k tokens
    DevelopmentAuto-check passed
  • Agent skill for pagerank-analyzer - invoke with $agent-pagerank-analyzer

    74k GitHub starsUsed in 2 repos~2.9k tokens
    Auto-check passed

More from openshift-eng/ai-helpers

All 118 skills in this repo
  • Investigate CI Reliability

    openshift-eng/ai-helpers

    Find and independently validate actionable reliability defects across OpenShift release jobs and presubmits, then export portable issue handoffs.

    120 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Address Review PR

    openshift-eng/ai-helpers

    Fetch and address all PR review comments — categorize by priority, make code changes, post replies, and push.

    120 GitHub stars~2.9k tokensUpdated 3 days ago
    Auto-check passed
  • Categorize Activity Types

    openshift-eng/ai-helpers

    Categorize Jira issues into Red Hat Sankey Activity Type categories using MCP Jira tools.

    120 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed
  • Has Review Work

    openshift-eng/ai-helpers

    Decide whether a GitHub PR has unanswered authorized review comments or new required CI failures worth a follow-up agent.

    120 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Payload Autodl JSON

    openshift-eng/ai-helpers

    Schema for the autodl JSON data file produced by payload-analysis for database ingestion — you must use this skill whenever generating the autodl JSON file

    120 GitHub stars~2.6k tokensUpdated 3 days ago
    Auto-check passed
  • Payload Results YAML

    openshift-eng/ai-helpers

    State management for agentic payload triage actions — you must use this skill whenever reading or writing the payload results YAML file

    120 GitHub stars~3.7k tokensUpdated 3 days ago
    Auto-check passed

Questions about Must Gather Analyzer

What does Must Gather Analyzer do?

Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components. Must Gather Analyzer is an agent skill from openshift-eng/ai-helpers. Analyze OpenShift must-gather diagnostic data including cluster operators, pods, nodes, and network components.

When should I use Must Gather Analyzer?

Must Gather Analyzer fits situations like: the user asks about cluster health; operator status; Node conditions; wants diagnostic insights from must-gather data.

How do I install Must Gather Analyzer in Claude Code?

Run `npx skills add openshift-eng/ai-helpers --skill must-gather-analyzer -a claude-code`. Or copy the skill folder (plugins/must-gather/skills/must-gather-analyzer in openshift-eng/ai-helpers) into .claude/skills/must-gather-analyzer in your project. Claude Code loads it when a task matches its description.

How do I install Must Gather Analyzer in Codex?

Run `npx skills add openshift-eng/ai-helpers --skill must-gather-analyzer -a codex`. Or copy the skill folder (plugins/must-gather/skills/must-gather-analyzer in openshift-eng/ai-helpers) into .agents/skills/must-gather-analyzer in your project. Codex loads it when a task matches its description.

Can I use Must Gather Analyzer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openshift-eng/ai-helpers --skill must-gather-analyzer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/must-gather-analyzer, .gemini/skills/must-gather-analyzer, .github/skills/must-gather-analyzer and .opencode/skills/must-gather-analyzer in your project.

What does Must Gather Analyzer need to run?

Going by SKILL.md and its folder, Must Gather Analyzer needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Must Gather Analyzer access the network?

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.

Is Must Gather Analyzer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Must Gather Analyzer use?

Must Gather Analyzer is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Must Gather Analyzer use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Must Gather Analyzer?

Skills that share tags, products or a category with Must Gather Analyzer: Openshift (sickn33/agentic-awesome-skills, 47k stars), Vector Cluster (ruvnet/ruflo, 74k stars), Roslyn Analyzers (github/awesome-copilot, 40k stars) and Network Bgp Diagnostics (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Must Gather Analyzer?

openshift-eng (a GitHub organization) maintains it in openshift-eng/ai-helpers, which has 120 GitHub stars. The repository holds 118 skills in this directory. The repository was last updated on October 6, 2026.

Source: openshift-eng/ai-helpers on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.