@@ -48,7 +48,7 @@ The actual must-gather directory is the subdirectory with the hash name, not the
4848
4949Analysis scripts must be available at:
5050```
51- .claude-plugin /skills/must-gather-analyzer/scripts/
51+ plugins/must-gather /skills/must-gather-analyzer/scripts/
5252├── analyze_clusterversion.py
5353├── analyze_clusteroperators.py
5454├── analyze_nodes.py
@@ -70,7 +70,7 @@ Analysis scripts must be available at:
7070** CRITICAL: Script-Only Analysis**
7171
7272- ** NEVER** attempt to analyze must-gather data directly using bash commands, grep, or manual file reading
73- - ** ONLY** use the provided Python scripts in ` .claude-plugin /skills/must-gather-analyzer/scripts/`
73+ - ** ONLY** use the provided Python scripts in ` plugins/must-gather /skills/must-gather-analyzer/scripts/`
7474- If scripts are missing or not found:
7575 1 . Stop immediately
7676 2 . Inform the user that the analysis scripts are not available
@@ -81,12 +81,12 @@ Analysis scripts must be available at:
8181
8282Before running any analysis, first verify:
8383``` bash
84- ls .claude-plugin /skills/must-gather-analyzer/scripts/analyze_clusteroperators.py
84+ ls plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_clusteroperators.py
8585```
8686
8787If this fails, STOP and report to the user:
8888```
89- The must-gather analysis scripts are not available at .claude-plugin /skills/must-gather-analyzer/scripts/. Please ensure the must-gather-analyzer skill is properly installed before running analysis.
89+ The must-gather analysis scripts are not available at plugins/must-gather /skills/must-gather-analyzer/scripts/. Please ensure the must-gather-analyzer skill is properly installed before running analysis.
9090```
9191
9292## Implementation
@@ -108,15 +108,15 @@ These provide the overall cluster state and identify system-wide issues.
108108
1091091 . ** Cluster Version**
110110 ``` bash
111- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_clusterversion.py < must-gather-path>
111+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_clusterversion.py < must-gather-path>
112112 ```
113113 - Identifies cluster version and update status
114114 - Shows if cluster is progressing through an update
115115 - Reveals capability configuration
116116
1171172 . ** Cluster Operators**
118118 ``` bash
119- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_clusteroperators.py < must-gather-path>
119+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_clusteroperators.py < must-gather-path>
120120 ```
121121 - Identifies degraded, unavailable, or progressing operators
122122 - ** Critical** : Operator issues often cascade to other components
@@ -127,23 +127,23 @@ These analyze the underlying infrastructure supporting workloads.
127127
1281283 . ** Nodes**
129129 ``` bash
130- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_nodes.py < must-gather-path>
130+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_nodes.py < must-gather-path>
131131 ```
132132 - Shows node conditions (Ready, DiskPressure, MemoryPressure)
133133 - Identifies nodes with issues
134134 - ** Critical** : Node problems affect all pods on that node
135135
1361364 . ** Network**
137137 ``` bash
138- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_network.py < must-gather-path>
138+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_network.py < must-gather-path>
139139 ```
140140 - Shows network type (OVN-Kubernetes, OpenShift SDN)
141141 - Checks network operator health
142142 - Validates pod network connectivity
143143
1441445 . ** OVN Databases** (OVN-Kubernetes clusters only)
145145 ``` bash
146- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_ovn_dbs.py < must-gather-path>
146+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_ovn_dbs.py < must-gather-path>
147147 ```
148148 - Analyzes OVN Northbound/Southbound databases from network_logs
149149 - Shows logical switches, switch ports, ACLs, and routers per node
@@ -153,8 +153,8 @@ These analyze the underlying infrastructure supporting workloads.
153153
1541546 . ** Ingress and Routes**
155155 ``` bash
156- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_ingress.py < must-gather-path> --ingresscontrollers
157- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_ingress.py < must-gather-path> --routes --problems-only
156+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_ingress.py < must-gather-path> --ingresscontrollers
157+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_ingress.py < must-gather-path> --routes --problems-only
158158 ```
159159 - Checks IngressController availability
160160 - Identifies routes not admitted
@@ -165,23 +165,23 @@ These analyze application workloads and their dependencies.
165165
1661667 . ** Pods**
167167 ``` bash
168- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pods.py < must-gather-path> --problems-only
168+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pods.py < must-gather-path> --problems-only
169169 ```
170170 - Shows crashlooping, pending, or failed pods
171171 - ** Cross-reference** : Match pod issues with node and operator problems
172172 - Note which namespaces have the most issues
173173
1741748 . ** Storage**
175175 ``` bash
176- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pvs.py < must-gather-path>
176+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pvs.py < must-gather-path>
177177 ```
178178 - Shows PersistentVolume and PersistentVolumeClaim status
179179 - Identifies pending or unbound volumes
180180 - ** Important** : Storage issues can cause pod failures
181181
1821829 . ** MachineConfigPools**
183183 ``` bash
184- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_machineconfigpools.py < must-gather-path>
184+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_machineconfigpools.py < must-gather-path>
185185 ```
186186 - Shows node configuration rollout status
187187 - Identifies stuck node updates
@@ -192,15 +192,15 @@ These provide insights into cluster stability and specific events.
192192
19319310 . ** etcd Cluster**
194194 ``` bash
195- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_etcd.py < must-gather-path>
195+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_etcd.py < must-gather-path>
196196 ```
197197 - Checks etcd member health and quorum
198198 - ** Critical** : etcd issues can cause API server instability
199199 - Shows leader status and database size
200200
20120111. ** Events**
202202 ` ` ` bash
203- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_events.py < must-gather-path> --type Warning --count 100
203+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_events.py < must-gather-path> --type Warning --count 100
204204 ` ` `
205205 - Shows warning events across the cluster
206206 - Helps identify recent problems and their timeline
@@ -211,7 +211,7 @@ These provide detailed error patterns from various log sources.
211211
21221212. ** Service Logs** (Master Node Services)
213213 ` ` ` bash
214- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_servicelogs.py < must-gather-path> --errors-only
214+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_servicelogs.py < must-gather-path> --errors-only
215215 ` ` `
216216 - Analyzes kubelet and crio logs from systemd
217217 - ** Note** : Only collected from master nodes in must-gather
@@ -220,18 +220,18 @@ These provide detailed error patterns from various log sources.
22022013. ** Pod Logs** (Container Application Logs)
221221 ` ` ` bash
222222 # Start with problem namespaces identified in Phase 3
223- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pod_logs.py < must-gather-path> --errors-only --top 5
223+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pod_logs.py < must-gather-path> --errors-only --top 5
224224
225225 # Or analyze specific namespace
226- # python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pod_logs.py <must-gather-path> --namespace <namespace> --top 10
226+ # python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pod_logs.py <must-gather-path> --namespace <namespace> --top 10
227227 ` ` `
228228 - Analyzes application container logs
229229 - Shows error patterns from failing components
230230 - ** Cross-reference** : Match with pod failures from Phase 3
231231
23223214. ** Node Logs** (Kubelet Logs)
233233 ` ` ` bash
234- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_node_logs.py < must-gather-path> --log-type kubelet --errors-only --top 5
234+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_node_logs.py < must-gather-path> --log-type kubelet --errors-only --top 5
235235 ` ` `
236236 - Analyzes kubelet logs from all nodes
237237 - ** Note** : Kubelet logs are gzipped and extracted on-the-fly
@@ -504,16 +504,16 @@ When a specific namespace has issues:
504504NAMESPACE=" openshift-etcd"
505505
506506# 1. Check pods in namespace
507- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pods.py < mg-path> --namespace $NAMESPACE
507+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pods.py < mg-path> --namespace $NAMESPACE
508508
509509# 2. Check events in namespace
510- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_events.py < mg-path> --namespace $NAMESPACE
510+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_events.py < mg-path> --namespace $NAMESPACE
511511
512512# 3. Analyze pod logs in namespace
513- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pod_logs.py < mg-path> --namespace $NAMESPACE --show-warnings
513+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pod_logs.py < mg-path> --namespace $NAMESPACE --show-warnings
514514
515515# 4. Check PVCs in namespace
516- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pvs.py < mg-path> --namespace $NAMESPACE
516+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pvs.py < mg-path> --namespace $NAMESPACE
517517` ` `
518518
519519# ## Node-Focused Investigation
@@ -524,16 +524,16 @@ When a specific node has issues:
524524NODE=" ip-10-0-45-79"
525525
526526# 1. Check node status
527- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_nodes.py < mg-path> # Look for the node
527+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_nodes.py < mg-path> # Look for the node
528528
529529# 2. Check pods on that node
530- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pods.py <mg-path> # Note which pods are on that node
530+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pods.py <mg-path> # Note which pods are on that node
531531
532532# 3. Check node logs
533- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_node_logs.py <mg-path> --node $NODE --show-warnings
533+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_node_logs.py <mg-path> --node $NODE --show-warnings
534534
535535# 4. Check kubelet errors specifically
536- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_node_logs.py <mg-path> --node $NODE --log-type kubelet --top 15
536+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_node_logs.py <mg-path> --node $NODE --log-type kubelet --top 15
537537` ` `
538538
539539# ## Update/Upgrade Investigation
@@ -542,16 +542,16 @@ When investigating update issues:
542542
543543` ` ` bash
544544# 1. Check update status
545- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_clusterversion.py < mg-path>
545+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_clusterversion.py < mg-path>
546546
547547# 2. Check MachineConfigPools (nodes updating?)
548- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_machineconfigpools.py < mg-path>
548+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_machineconfigpools.py < mg-path>
549549
550550# 3. Check if operators progressing
551- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_clusteroperators.py < mg-path>
551+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_clusteroperators.py < mg-path>
552552
553553# 4. Check for update-related events
554- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_events.py < mg-path> --type Warning
554+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_events.py < mg-path> --type Warning
555555` ` `
556556
557557# ## OVN Network Investigation (OVN-Kubernetes clusters)
@@ -560,24 +560,24 @@ When investigating OVN networking issues:
560560
561561` ` ` bash
562562# 1. Check network operator status
563- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_network.py < mg-path>
563+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_network.py < mg-path>
564564
565565# 2. Analyze OVN databases (all nodes)
566- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_ovn_dbs.py < mg-path>
566+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_ovn_dbs.py < mg-path>
567567
568568# 3. Analyze specific node's OVN database
569- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_ovn_dbs.py < mg-path> --node < node-name>
569+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_ovn_dbs.py < mg-path> --node < node-name>
570570
571571# 4. Run custom OVSDB query
572572# Example: Find all ACLs with priority > 1000
573- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_ovn_dbs.py < mg-path> \
573+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_ovn_dbs.py < mg-path> \
574574 --query ' ["OVN_Northbound", {"op":"select", "table":"ACL", "where":[["priority", ">", 1000]], "columns":["priority","match","action"]}]'
575575
576576# 5. Check OVN pods
577- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pods.py < mg-path> --namespace openshift-ovn-kubernetes
577+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pods.py < mg-path> --namespace openshift-ovn-kubernetes
578578
579579# 6. Check OVN logs
580- python3 .claude-plugin /skills/must-gather-analyzer/scripts/analyze_pod_logs.py < mg-path> --namespace openshift-ovn-kubernetes --show-warnings
580+ python3 plugins/must-gather /skills/must-gather-analyzer/scripts/analyze_pod_logs.py < mg-path> --namespace openshift-ovn-kubernetes --show-warnings
581581` ` `
582582
583583** Note** : OVN database analysis requires:
0 commit comments