Use when debugging connection timeouts, TLS handshake failures, data not arriving, connection drops, performance issues, or proxy/VPN interference - systematic Network.framework diagnostics with production crisis defense
View on GitHubSelect agents to install to:
npx add-skill https://github.com/CharlesWiltgen/Axiom/blob/main/.claude-plugin/plugins/axiom/skills/axiom-networking-diag/SKILL.md -a claude-code --skill axiom-networking-diagInstallation paths:
.claude/skills/axiom-networking-diag/# Network.framework Diagnostics ## Overview **Core principle** 85% of networking problems stem from misunderstanding connection states, not handling network transitions, or improper error handling—not Network.framework defects. Network.framework is battle-tested in every iOS app (powers URLSession internally), handles trillions of requests daily, and provides smart connection establishment with Happy Eyeballs, proxy evaluation, and WiFi Assist. If your connection is failing, timing out, or behaving unexpectedly, the issue is almost always in how you're using the framework, not the framework itself. This skill provides systematic diagnostics to identify root causes in minutes, not hours. ## Red Flags — Suspect Networking Issue If you see ANY of these, suspect a networking misconfiguration, not framework breakage: - Connection times out after 60 seconds with no clear error - TLS handshake fails with "certificate invalid" on some networks - Data sent but never arrives at receiver - Connection drops when switching WiFi to cellular - Works perfectly on WiFi but fails 100% of time on cellular - Works in simulator but fails on real device - Connection succeeds on your network but fails for users - ❌ **FORBIDDEN** "Network.framework is broken, we should rewrite with sockets" - Network.framework powers URLSession, used in every iOS app - Handles edge cases you'll spend months discovering with sockets - Apple engineers have 10+ years of production debugging baked into framework - Switching to sockets will expose you to 100+ edge cases **Critical distinction** Simulator uses macOS networking stack (not iOS), hides cellular-specific issues (IPv6-only networks), and doesn't simulate network transitions. **MANDATORY: Test on real device with real network conditions.** ## Mandatory First Steps **ALWAYS run these commands FIRST** (before changing code): ```swift // 1. Enable Network.framework logging // Add to Xcode scheme: Product → Scheme → Edit Scheme → Argum