PluginBench
Skill
Review
Audit score 70

axiom-networking

charleswiltgen/axiom

Implement and debug URLSession, Network.framework, and socket connections in Apple apps.

What is axiom-networking?

Comprehensive networking skill for iOS/macOS development covering URLSession with structured concurrency, Network.framework (NetworkConnection and NWConnection), connection diagnostics, and migration patterns. Use this for any HTTP requests, WebSockets, TCP/UDP connections, or network debugging in Apple apps.

  • URLSession with structured concurrency and async/await patterns
  • Network.framework API reference for NetworkConnection (iOS 26+) and NWConnection (iOS 12-18)
  • Systematic diagnosis of connection failures (DNS, TLS, timeouts, cellular edge cases)
  • TLV framing, Coder protocol, and low-level socket patterns
  • Migration guidance from BSD sockets and deprecated APIs to modern frameworks
  • Anti-pattern detection and pressure-scenario handling for custom networking implementations

How to install axiom-networking

npx skills add https://github.com/charleswiltgen/axiom --skill axiom-networking
Claude Code
Cursor
Windsurf
Cline

How to use axiom-networking

  1. 1.Identify your networking task: HTTP requests, TCP/UDP sockets, debugging, or migration
  2. 2.Consult the decision tree: URLSession patterns → networking-discipline.md, API reference → network-framework-ref.md, debugging → networking-diag.md, legacy code → networking-legacy.md or networking-migration.md
  3. 3.Read the relevant reference document for your iOS version and use case
  4. 4.Apply the patterns, anti-patterns, and examples to your implementation
  5. 5.Run the networking-auditor agent to scan for deprecated APIs and anti-patterns before shipping

Use cases

Good for
  • Implementing HTTP/REST API calls with proper error handling and cancellation
  • Debugging connection timeouts, TLS certificate failures, and data arrival issues
  • Migrating from custom networking layers or deprecated APIs to URLSession/Network.framework
  • Building TCP/UDP connections with TLS encryption and certificate pinning
  • Resolving App Store rejections for ATS violations or deprecated API usage
Who it's for
  • iOS/macOS app developers implementing network features
  • Backend engineers debugging production networking issues
  • Teams migrating from custom networking implementations to standard APIs
  • Developers preparing apps for App Store review with networking components

axiom-networking FAQ

Should I use URLSession or Network.framework?

URLSession for HTTP/HTTPS requests with automatic handling of proxies and cellular. Network.framework (NetworkConnection/NWConnection) for custom TCP/UDP protocols, low-level control, or when you need TLV framing and streaming. See network-framework-ref.md for decision tree.

What's the difference between NetworkConnection and NWConnection?

NetworkConnection is the iOS 26+ modern API with cleaner async/await support. NWConnection is the iOS 12-18 predecessor with completion handlers. Use NetworkConnection for new code; see networking-migration.md for upgrading existing NWConnection code.

How do I debug a connection timeout?

Connection timeouts have 8 possible causes: DNS resolution, TLS handshake, proxy interference, firewall blocking, IPv6-only cellular, VPN, ATS policy, or message framing. See networking-diag.md for the systematic diagnosis decision tree.

What are the red-flag anti-patterns I should avoid?

SCNetworkReachability, blocking sockets, hardcoded IPs, custom retry logic, ignoring cancellation tokens, missing TLS validation, and not handling cellular/proxy edge cases. See networking-discipline.md for details and correct patterns.

My app was rejected for HTTP connections. What do I do?

This is an App Transport Security (ATS) violation. See networking-diag.md for ATS compliance rules and exceptions. Most apps must use HTTPS; HTTP is only allowed for localhost or with explicit NSExceptionDomains in Info.plist.

Full instructions (SKILL.md)

Source of truth, from charleswiltgen/axiom.


name: axiom-networking description: Use when implementing or debugging ANY network connection, API call, or socket in an Apple app. Covers URLSession, Network.framework, NetworkConnection, connection diagnostics. license: MIT

Networking

You MUST use this skill for ANY networking work including HTTP requests, WebSockets, TCP connections, or network debugging.

<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit -->

Not on Claude Code? Where this router says "Launch some-auditor agent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.

Available here: skills/networking-auditor.md.

Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.

<!-- AXIOM_AUDITOR_INLINE_END -->

Quick Reference

Symptom / TaskReference
URLSession with structured concurrencySee skills/networking-discipline.md
Network.framework anti-patternsSee skills/networking-discipline.md
Deprecated API migrationSee skills/networking-discipline.md
gRPC Swift — typed RPC, streaming, .proto codegen (WWDC 2026)See skills/networking-discipline.md
Pressure scenarios (reachability, sockets)See skills/networking-discipline.md
NetworkConnection (iOS 26+) API referenceSee skills/network-framework-ref.md
NWConnection (iOS 12-18) API referenceSee skills/network-framework-ref.md
TLV framing, Coder protocolSee skills/network-framework-ref.md
NetworkListener, NetworkBrowser, Wi-Fi AwareSee skills/network-framework-ref.md
Connection timeouts, TLS failuresSee skills/networking-diag.md
Data not arriving, connection dropsSee skills/networking-diag.md
ATS / HTTP / App Store rejectionSee skills/networking-diag.md
Production crisis diagnosisSee skills/networking-diag.md
NWConnection patterns (iOS 12-18)See skills/networking-legacy.md
UDP batch, NWListener, NWBrowserSee skills/networking-legacy.md
BSD sockets → NWConnection migrationSee skills/networking-migration.md
Push/calls on networks without internet (Local Push Connectivity, NEAppPushProvider)Use axiom-integration (skills/local-push-connectivity.md)
NWConnection → NetworkConnection migrationSee skills/networking-migration.md
URLSession StreamTask → NetworkConnectionSee skills/networking-migration.md

Decision Tree

digraph networking {
    start [label="Networking task" shape=ellipse];
    what [label="What do you need?" shape=diamond];

    start -> what;
    what -> "skills/networking-discipline.md" [label="implement patterns,\nanti-patterns,\npressure scenarios"];
    what -> "skills/network-framework-ref.md" [label="API reference\n(iOS 26+ or 12-18)"];
    what -> "skills/networking-diag.md" [label="debug connection\nfailures"];
    what -> "skills/networking-legacy.md" [label="iOS 12-18\nNWConnection patterns"];
    what -> "skills/networking-migration.md" [label="migrate from\nsockets/URLSession"];
}
  1. URLSession with structured concurrency? → skills/networking-discipline.md
  2. Network.framework / NetworkConnection (iOS 26+)? → skills/network-framework-ref.md
  3. NWConnection (iOS 12-18)? → skills/networking-legacy.md
  4. Migrating from sockets/URLSession? → skills/networking-migration.md
  5. Connection issues / debugging? → skills/networking-diag.md
  6. Typed RPC / streaming against a service you control? → gRPC Swift (skills/networking-discipline.md)
  7. ATS / HTTP / App Store rejection for networking? → skills/networking-diag.md + networking-auditor
  8. Certificate pinning, signing API requests, encrypting payloads? → /skill axiom-security
  9. UIWebView or deprecated API rejection? → networking-auditor (Agent)
  10. Want deprecated API / anti-pattern scan? → networking-auditor (Agent)

Platform-specific networking

  • watchOS low-level-networking limits (TN3135) → See axiom-watchos (skills/background-and-networking.md)

Pressure Resistance

When user has invested significant time in custom implementation:

Do NOT capitulate to sunk cost pressure. The correct approach is:

  1. Diagnose first — Understand what's actually failing before recommending changes
  2. Recommend correctly — If standard APIs (URLSession, Network.framework) would solve the problem, say so professionally
  3. Respect but don't enable — Acknowledge their work while providing honest technical guidance

Critical Patterns

Networking (skills/networking-discipline.md):

  • URLSession with structured concurrency
  • 8 red-flag anti-patterns (SCNetworkReachability, blocking sockets, hardcoded IPs)
  • Decision tree for choosing TCP/UDP/TLS patterns
  • NetworkConnection patterns (iOS 26+): TLS, UDP, TLV framing, Coder protocol
  • 3 pressure scenarios with professional push-back templates
  • Pre-shipping checklist

Network Framework Reference (skills/network-framework-ref.md):

  • NetworkConnection (iOS 26+): all 12 WWDC 2025 examples
  • NWConnection (iOS 12-18): complete API with examples
  • TLV framing, Coder protocol, NetworkListener, NetworkBrowser
  • Mobility: viability, better path, Multipath TCP, NWPathMonitor
  • Security: TLS, certificate pinning, cipher suites
  • Performance: user-space networking, ECN, service class, TCP Fast Open

Diagnostics (skills/networking-diag.md):

  • Systematic decision tree for all connection failure types
  • DNS failures, TLS certificate validation, message framing
  • TCP congestion, IPv6-only cellular, VPN interference, ATS
  • Production crisis scenario with professional communication templates

Legacy (skills/networking-legacy.md):

  • NWConnection with TLS (completion handlers)
  • UDP batch (30% CPU reduction)
  • NWListener, NWBrowser (Bonjour discovery)

Automated Scanning

Networking audit → Launch networking-auditor agent or /axiom:audit networking (deprecated APIs, anti-patterns, and completeness gaps — transition handling, TLS coverage, connection cleanup, framework selection)

Anti-Rationalization

ThoughtReality
"URLSession is simple, I don't need a skill"URLSession with structured concurrency has async/cancellation patterns. skills/networking-discipline.md covers them.
"I'll debug the connection timeout myself"Connection failures have 8 causes (DNS, TLS, proxy, cellular). skills/networking-diag.md diagnoses systematically.
"I just need a basic HTTP request"Even basic requests need error handling, retry, and cancellation patterns.
"My custom networking layer works fine"Custom layers miss cellular/proxy edge cases. Standard APIs handle them automatically.

Example Invocations

User: "My API request is failing with a timeout" → Read: skills/networking-diag.md

User: "How do I use URLSession with async/await?" → Read: skills/networking-discipline.md

User: "I need to implement a TCP connection" → Read: skills/network-framework-ref.md

User: "Should I use NWConnection or NetworkConnection?" → Read: skills/network-framework-ref.md

User: "My app was rejected for using HTTP connections" → Read: skills/networking-diag.md (ATS compliance)

User: "App Store says I'm using UIWebView" → Invoke: networking-auditor agent (deprecated API scan)

User: "Check my networking code for deprecated APIs" → Invoke: networking-auditor agent