Skip to main content
skill Claude Code CX Codex Cursor

connectivity-triage — Claude Code skill: what it does, how to install

Diagnoses active macOS network failures without modifying system settings. Helps isolate API timeouts, MCP disconnects, and DNS lookup issues.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add wshobson/agents
/plugin install incident-response@claude-code-workflows
Open on GitHub

What connectivity-triage does

The skill pinpoints macOS connection failures using built-in command-line tools. It makes zero configuration changes. First, it tests resolver behavior with scutil --dns and dig. Then it checks network hops with traceroute and monitors process sockets via nettop. Response stages are timed with curl.

This is strictly a diagnostic workflow. It separates hard observations from inferences, assigning faults to local LAN, DNS, transit paths, or remote apps. It never alters your VPN or firewall rules.

Install this when API timeouts or disconnected MCP tools disrupt your Mac workflow. Skip it on Linux or Windows.

What it helps with

  • isolate fault domains for failing API and MCP requests
  • separate DNS resolver failures from network path degradation
  • measure HTTP and TLS connection timings using curl
  • inspect live socket activity for a target process with nettop

Example prompts for the agent

  • Run connectivity-triage for failing API requests
  • Debug why my MCP server keeps timing out
  • Investigate packet loss and latency during calls

How to install connectivity-triage

1Plugin marketplace

/plugin marketplace add wshobson/agents
/plugin install incident-response@claude-code-workflows

This installs the whole incident-response plugin with all its skills

2Skills CLI (Vercel)

npx skills add wshobson/agents --skill connectivity-triage -a claude-code

3Manually: put the files in place

~/.claude/skills/connectivity-triage/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/connectivity-triage/

From the same set213

The whole set →
typescript-advanced-types Seth Hobson Guides an agent through advanced TypeScript types, from generics to conditional and mapped types. Use it for typed libraries, API clients, or strict configuration objects. Claude Code CX Codex Cursor 92,169installs tailwind-design-system Seth Hobson Helps build design systems with Tailwind CSS v4, from theme tokens to component variants. Use it when a project needs shared UI patterns. Claude Code CX Codex Cursor 70,180installs brand-landingpage Travis D. Elliott This skill interviews you about the product and its visual direction, then builds a landing page through Stitch. Use it when there’s no established design yet. Claude Code CX Codex Cursor 39,476installs python-testing-patterns Seth Hobson This skill guides Python testing with pytest, fixtures and mocks. Use it when building a test suite or tracking down failing checks. Claude Code CX Codex Cursor 36,943installs python-performance-optimization Seth Hobson This skill profiles Python code to locate CPU and memory bottlenecks. Use it when an application responds slowly or consumes too many resources. Claude Code CX Codex Cursor 35,675installs nextjs-app-router-patterns Seth Hobson This skill covers Next.js App Router patterns for rendering, routing, and data fetching. Use it when starting an App Router project or moving from Pages Router. Claude Code CX Codex Cursor 32,529installs api-design-principles Seth Hobson Use this skill to plan or review REST and GraphQL APIs. It helps when writing a specification or setting API conventions for a team. Claude Code CX Codex Cursor 30,348installs code-review-excellence Seth Hobson This skill guides pull request reviews, catches logic and security issues, and helps teams give specific feedback. Use it for review standards or developer mentoring. Claude Code CX Codex Cursor 30,193installs

Similar

merge Alireza Rezvani A Claude skill that merges the top-ranked agent's branch into base, archives the rest as tags, and cleans up worktrees. Useful once an AgentHub session is done. Claude Code 1,409installs senior-data-engineer Alireza Rezvani A skill for designing data pipelines, ETL/ELT systems and warehouses. Useful when you need to pick batch or streaming and lay out a data model. Claude Code 1,109installs senior-devops Alireza Rezvani This skill creates CI/CD pipelines, Terraform modules, and Kubernetes deployment manifests. Use it when you need repeatable infrastructure and deployment workflows. Claude Code 1,018installs a11y-audit Alireza Rezvani Scans web projects for WCAG 2.2 Level A and AA issues, suggests fixes, then checks the result again. Use it before a release or when adding accessibility checks to CI/CD. Claude Code 970installs senior-ml-engineer Alireza Rezvani Production ML engineering guidelines for model deployment, MLOps pipelines, and LLM integrations. Helps roll out canary releases, monitor drift, and configure RAG setups. Claude Code 915installs tech-stack-evaluator Alireza Rezvani Evaluates frameworks, libraries, and cloud providers with weighted scoring. Calculates five-year TCO and assesses migration risks before project kickoff. Claude Code 904installs wizard Matt Pocock This skill creates an interactive bash wizard for manual setup steps, CI secrets, third-party dashboards, and one-off migrations. Claude Code 553,369installs hyperframes-cli heygen-com Controls HyperFrames video workflows from the CLI: audits layouts and contrast, edits timeline clips, captures snapshots, and renders locally or in cloud runtimes. Claude Code CX Codex Cursor +1 1,200,000installs

Questions about connectivity-triage

How to install connectivity-triage in Claude Code?

Run npx skills add wshobson/agents --skill connectivity-triage -a claude-code or use /plugin marketplace add wshobson/agents inside Claude Code.

What does connectivity-triage do?

It gathers non-destructive evidence with macOS system tools to pinpoint whether a failure stems from local LAN, DNS, transit routing, or the remote endpoint.

Does connectivity-triage alter network settings?

No. It runs read-only diagnostic checks with tools such as ping, scutil, and curl without touching network configurations or VPN state.

Source text

SKILL.md · MIT
---
name: connectivity-triage
description: Use this skill when debugging active macOS connectivity failures, when an API or MCP service times out or disconnects, when DNS resolution is failing or inconsistent, or when video calls or other interactive traffic show packet loss or latency. Isolate local-LAN, DNS, upstream-path, and remote-service/application fault domains with built-in, non-destructive tools.
---

# Connectivity Triage

Localize an active connectivity failure without changing network configuration. Collect the smallest useful evidence set, distinguish observations from inference, and stop when the fault domain is clear enough for the next safe action.

## When to Use This Skill

Use this workflow when a macOS endpoint has an active symptom such as:

- an API, website, or MCP service timing out or disconnecting;
- DNS lookup failures or inconsistent name resolution;
- packet loss, latency, or unstable interactive traffic;
- an application that appears offline while other traffic works;
- uncertainty about whether the problem is local, upstream, or at the service.

This is a diagnostic workflow, not a remediation workflow. Do not change interface state, DNS settings, VPN/firewall configuration, or remote service state while establishing the fault domain.

## Fast Decision Flow

Work from the symptom toward the narrowest discriminating check:

```text
symptom
  -> local link / LAN evidence
  -> DNS configuration and resolution
  -> destination reachability
  -> path quality
  -> application / service timing
  -> fault-domain assessment
```

Stop early when the evidence is already sufficient. Do not run every probe mechanically.

### 1. Define the symptom

Record the affected application or process, destination hostname or URL, when the failure started, whether it is continuous or intermittent, and whether unrelated destinations still work.

If the symptom is application-specific, preserve the exact hostname or URL the application uses. Testing an unrelated public site can establish general connectivity but cannot prove the affected service is healthy.

### 2. Check local-link / LAN evidence

When available, run a bounded `networkQuality` sample for a broad responsiveness and throughput signal. If `networkQuality` is unavailable, continue; it is optional.

If a known local gateway or same-LAN target is available, compare a short bounded `ping` sample to that local target with a short sample to the remote destination. Do not invent a gateway address. If no local target is known, leave the LAN segment unproven and continue.

Useful pattern:

```bash
ping -c 5 <known-local-target>
ping -c 5 <destination>
```

### 3. Separate DNS configuration from DNS behavior

Inspect the system resolver state, especially when VPNs, split DNS, or scoped resolvers may be involved:

```bash
scutil --dns
```

Then test the destination name directly with a bounded DNS query:

```bash
dig +time=2 +tries=1 <hostname>
```

Treat these as different evidence. `scutil --dns` shows resolver configuration; `dig` shows query behavior. A successful lookup does not prove the returned endpoint is reachable.

### 4. Test reachability and path quality

Use a short `ping` sample when ICMP is a useful signal:

```bash
ping -c 5 <destination>
```

If the hostname resolves, test the returned address separately only when doing so helps distinguish DNS behavior from path failure. If resolution currently fails, use an address only when it was previously observed from trustworthy incident evidence; otherwise leave address-level reachability unknown.

Use a bounded numeric traceroute when path visibility would reduce uncertainty:

```bash
traceroute -n -q 1 -m 20 <destination>
```

A silent or changing hop is an observation, not proof that the hop is broken. Routers may filter or rate-limit traceroute traffic while forwarding application traffic normally.

### 5. Inspect the affected application's live network activity

When the problem is process-specific, use a bounded `nettop` capture rather than watching indefinitely:

```bash
nettop -n -L 3 -p <process-name-or-pid>
```

Use it to confirm whether the process is opening connections, which endpoints it is using, and whether traffic is flowing. Lack of visible activity may mean the application never attempted the connection; it does not by itself identify why.

### 6. Time the application path

For HTTP(S), use curl phase timing against the actual affected endpoint when a safe read-only request is available. Confirm the incident-supplied endpoint is a complete `http://` or `https://` URL, preserve its original scheme, and pass the URL as one quoted argument rather than interpolating arbitrary incident text into the shell command:

```bash
curl -sS -o /dev/null \
  -w 'dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' \
  --connect-timeout 5 --max-time 15 '<affected-http-or-https-url>'
```

Interpret the phases comparatively. High time-to-first-byte can include server processing, so it is not proof of network latency.

## Evidence Rules

Label conclusions as one of:

- **Observed** — directly supported by command output or user-provided evidence.
- **Inferred** — the most likely explanation after correlating observations.
- **Unknown** — not established by the current evidence.

Never treat one probe as proof of root cause. In particular:

- failed `ping` can reflect ICMP filtering rather than an outage;
- successful `ping` does not prove an application is healthy;
- non-responsive traceroute hops do not prove packet loss at those routers;
- successful DNS resolution does not prove reachability;
- high HTTP first-byte time can be dominated by remote application processing.

When observations conflict, prefer `inconclusive` over a confident guess.

## Fault-Domain Assessment

Return exactly one primary category:

- `local-link/LAN` — evidence degrades before or at the local network boundary;
- `DNS` — resolver configuration or lookup behavior explains the failure better than path evidence;
- `upstream-path` — local evidence is healthy and correlated path evidence degrades beyond the LAN;
- `remote-service/application` — transport/path evidence is healthy enough while the affected service or process behavior remains abnormal;
- `inconclusive` — current evidence cannot separate the remaining fault domains.

Use qualitative confidence: `low`, `medium`, or `high`. Confidence reflects evidence quality and correlation, not severity.

## Incident Result Format

### Symptom
Restate the active failure and affected destination/application.

### Observations
List only relevant measurements, including important unavailable or blocked evidence. Mark observations, inferences, and unknowns clearly.

### Fault-domain assessment
Report the category, confidence, and a short evidence-linked explanation.

### Next safest check
Give one diagnostic action that most reduces uncertainty. Do not jump to configuration changes unless the user separately asks for remediation.

## Safety and Boundaries

During diagnosis, do not:

- alter interface state or restart network services;
- edit resolver configuration or flush DNS caches;
- modify firewall or VPN settings;
- install packages or require Homebrew;
- send state-changing requests to remote services;
- run indefinite or high-volume probes when a bounded sample will answer the question.

Partial probes, blocked ICMP, VPNs, captive portals, scoped DNS, proxies, endpoint controls, and transient failures are evidence limitations rather than diagnoses.

## Detailed Interpretation

Read `references/details.md` for command-by-command interpretation, ambiguity handling, intermittent-failure guidance, and worked examples.

## Related Skills

- `incident-runbook-templates` - Turn recurring connectivity incidents into repeatable response procedures
- `on-call-handoff-patterns` - Preserve active connectivity evidence across responder handoffs
- `postmortem-writing` - Document confirmed causes and corrective actions after the incident

© Seth Hobson · MIT · wshobson/agents

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor