Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
charleswiltgen avatar

Axiom Location

  • 584 installs
  • 1.1k repo stars
  • Updated August 3, 2026
  • charleswiltgen/axiom

axiom-location is an agent skill that helps iOS and SwiftUI developers implement Core Location, CLMonitor geofencing, and MapKit maps without guessing authorization flows, monitoring modes, or annotation APIs.

About

axiom-location is an MIT-licensed skill from the charleswiltgen/axiom collection for any Core Location, geofencing, or MapKit work in iOS and SwiftUI apps. The skill mandates consulting it before implementing location services, mapping, or debugging MapKit issues, and routes tasks through a symptom table covering When In Use versus Always authorization, continuous versus significant-change monitoring, CLMonitor geofencing, accuracy selection, background location, CLLocationManager setup, MapKit annotations, and directions. Detailed guidance lives in bundled references such as skills/core-location.md rather than inline guesses. Developers reach for axiom-location when adding map screens, region monitoring, permission copy, or fixing authorization denials and stale location updates in SwiftUI projects. The skill is framed as a required checklist for Apple location APIs so agents pick correct monitoring strategies and MapKit patterns instead of mixing deprecated callbacks or wrong permission tiers.

  • Routing table maps symptoms (no updates, denied auth, geofence failures) to dedicated Core Location and MapKit diagnosti
  • Covers authorization strategy (When In Use vs Always), monitoring modes, accuracy, and background location
  • Documents CLLocationUpdate, CLMonitor, CLServiceSession, geofencing, and authorization API patterns
  • SwiftUI Map vs MKMapView guidance plus annotations, markers, clustering, search, directions, Look Around, and snapshots
  • Mandatory skill gate: agent must use it for any location, mapping, or geofencing work

Axiom Location by the numbers

  • 584 all-time installs (skills.sh)
  • Ranked #286 of 1,039 Mobile Development skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-location

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs584
repo stars1.1k
Security audit3 / 3 scanners passed
Last updatedAugust 3, 2026
Repositorycharleswiltgen/axiom

How do you configure iOS geofencing and MapKit correctly?

Ship Core Location, geofencing, and MapKit features in an iOS or SwiftUI app without guessing authorization, monitoring mode, or MapKit API choices.

Who is it for?

iOS engineers shipping location-aware SwiftUI features who need authoritative Core Location and MapKit patterns instead of trial-and-error API calls.

Skip if: Android geolocation with Fused Location Provider or server-side geospatial queries unrelated to Apple Core Location frameworks.

When should I use this skill?

A developer implements iOS location permissions, geofencing, background location, MapKit maps, or debugs CLMonitor or CLLocationManager behavior.

What you get

SwiftUI location managers, Info.plist permission strings, CLMonitor region setup, and MapKit annotation or directions integration.

  • Location authorization flow
  • Geofence monitoring setup
  • MapKit map and annotation code

Files

SKILL.mdMarkdownGitHub ↗

Location & Maps

You MUST use this skill for ANY location services, mapping, geofencing, or Core Location / MapKit work.

Quick Reference

Symptom / TaskReference
Authorization strategy (When In Use vs Always)See skills/core-location.md
Monitoring approach (continuous, significant-change, CLMonitor)See skills/core-location.md
Accuracy selection, background locationSee skills/core-location.md
CLLocationUpdate, CLMonitor, CLServiceSession APIsSee skills/core-location-ref.md
Authorization API patterns, geofencing APISee skills/core-location-ref.md
Compass heading, heading reference body (headingBody)See skills/core-location-ref.md (Part 12)
Location updates never arriveSee skills/core-location-diag.md
Background location stops workingSee skills/core-location-diag.md
Authorization always denied, geofence failuresSee skills/core-location-diag.md
SwiftUI Map, annotations, markers, clusteringSee skills/mapkit.md
MKMapView vs SwiftUI Map decisionSee skills/mapkit.md
Search, directions, routingSee skills/mapkit.md
MapKit API: Marker, Annotation, MKLocalSearch, MKDirectionsSee skills/mapkit-ref.md
Look Around, MKMapSnapshotter, MKMapItemSee skills/mapkit-ref.md
Annotations not appearing, region jumpingSee skills/mapkit-diag.md
Clustering not working, search failuresSee skills/mapkit-diag.md
Overlay rendering, user location not showingSee skills/mapkit-diag.md

Decision Tree

digraph location {
    start [label="Location / Maps task" shape=ellipse];
    domain [label="Core Location or MapKit?" shape=diamond];
    cl_type [label="Need what?" shape=diamond];
    mk_type [label="Need what?" shape=diamond];

    start -> domain;

    domain -> cl_type [label="Core Location"];
    domain -> mk_type [label="MapKit / Maps"];

    cl_type -> "skills/core-location.md" [label="authorization, monitoring\nstrategy, accuracy,\nbackground location"];
    cl_type -> "skills/core-location-ref.md" [label="API syntax\n(CLLocationUpdate,\nCLMonitor, CLServiceSession)"];
    cl_type -> "skills/core-location-diag.md" [label="something broken\n(no updates, denied,\ngeofence not firing)"];

    mk_type -> "skills/mapkit.md" [label="patterns, decisions\n(SwiftUI Map vs MKMapView,\nannotations, search)"];
    mk_type -> "skills/mapkit-ref.md" [label="API syntax\n(Marker, Annotation,\nMKLocalSearch, MKDirections)"];
    mk_type -> "skills/mapkit-diag.md" [label="something broken\n(annotations missing,\nregion jumping, clustering)"];
}

1. Authorization strategy, monitoring approach, accuracy? → skills/core-location.md 1a. Need specific API syntax (CLLocationUpdate, CLMonitor, CLServiceSession)? → skills/core-location-ref.md 1b. Location not working? → skills/core-location-diag.md 2. Adding a map, annotations, search, directions? → skills/mapkit.md 2a. Need specific MapKit API syntax (Marker, MKLocalSearch, MKDirections)? → skills/mapkit-ref.md 2b. Map display broken? → skills/mapkit-diag.md 3. Location draining battery? → See axiom-performance (skills/energy.md) 4. Background task scheduling for location? → See axiom-integration 5. Privacy manifest for location? → See axiom-integration

Conflict Resolution

location vs axiom-performance: When location is draining battery: 1. Try location FIRST — Excessive accuracy or continuous updates are the #1 cause. skills/core-location.md covers accuracy selection and monitoring strategy. 2. Only use axiom-performance if location settings are already correct — Profile after ruling out obvious over-tracking.

location vs axiom-integration: When implementing background location:

  • Background location configuration (Info.plist, capabilities, CLServiceSession) → use location
  • BGTaskScheduler for periodic location processing → use axiom-integration

location vs axiom-data: When storing or syncing location data:

  • Getting location updates, geofencing → use location
  • Persisting location history, CloudKit sync → use axiom-data

location vs axiom-build: When location permissions fail in simulator:

  • Authorization dialogs, Info.plist keys → use location (skills/core-location-diag.md)
  • Simulator GPS simulation, simctl locationuse axiom-build

Critical Patterns

Core Location (skills/core-location.md):

  • Authorization escalation strategy (When In Use first, Always later)
  • Monitoring decision tree (continuous vs significant-change vs CLMonitor)
  • Accuracy selection with battery impact
  • Background location configuration
  • Anti-patterns with time costs (premature Always authorization, unnecessary continuous updates)

Core Location API (skills/core-location-ref.md):

  • CLLocationUpdate AsyncSequence (iOS 17+)
  • CLMonitor condition-based geofencing (iOS 17+)
  • CLServiceSession declarative authorization (iOS 18+)
  • Authorization API patterns, background mode configuration

Core Location Diagnostics (skills/core-location-diag.md):

  • Location updates never arrive
  • Background location stops working
  • Authorization always denied
  • Geofence events not triggering
  • Location accuracy unexpectedly poor

MapKit (skills/mapkit.md):

  • SwiftUI Map vs MKMapView decision tree
  • Annotation patterns (Marker, custom Annotation)
  • Search (MKLocalSearch, autocomplete)
  • Directions and routing
  • Anti-patterns (annotations in view body, no view reuse, setRegion loops)

MapKit API (skills/mapkit-ref.md):

  • SwiftUI Map API (MapCameraPosition, content builders, controls)
  • MKMapView delegate patterns
  • MKLocalSearch, MKDirections
  • Look Around, MKMapSnapshotter
  • Clustering configuration

MapKit Diagnostics (skills/mapkit-diag.md):

  • Annotations not appearing (lat/lng swapped, missing delegate)
  • Map region jumping/looping (updateUIView guard)
  • Clustering not working (missing clusteringIdentifier)
  • Search returning no results (resultTypes, region bias)
  • Overlay rendering failures

Anti-Rationalization

ThoughtReality
"Just request Always authorization upfront"30-60% denial rate. Request When In Use first, escalate later. skills/core-location.md covers the strategy.
"Continuous updates are fine for my use case"Continuous updates drain battery even when the app doesn't need sub-second location. Use significant-change or CLMonitor.
"I'll use MKMapView, it's more flexible"SwiftUI Map covers most use cases since iOS 17. MKMapView means UIViewRepresentable boilerplate. skills/mapkit.md has the decision tree.
"Annotations in the view body is fine for a few items"Annotations recreate on every view update. Even 50 items cause hitches. Move to model with @State or @Observable.
"I know how geofencing works"CLMonitor (iOS 17+) replaces legacy region monitoring with conditions. The API changed significantly.
"Background location just needs the capability"It needs Info.plist keys, capability, CLServiceSession (iOS 18+), AND correct authorization level. Missing any one silently fails.
"I'll handle location errors later"Authorization denial is not an error — it's the default state. Handle it from the start.

Example Invocations

User: "How do I request location permissions?" → Read: skills/core-location.md

User: "What's the CLLocationUpdate API?" → Read: skills/core-location-ref.md

User: "My location updates never arrive" → Read: skills/core-location-diag.md

User: "How do I add a map with pins?" → Read: skills/mapkit.md

User: "What's the SwiftUI Map API?" → Read: skills/mapkit-ref.md

User: "My annotations aren't showing on the map" → Read: skills/mapkit-diag.md

User: "How do I implement geofencing?" → Read: skills/core-location.md then skills/core-location-ref.md

User: "Location is draining battery" → Read: skills/core-location.md, then See axiom-performance (skills/energy.md)

User: "How do I add search to my map?" → Read: skills/mapkit.md then skills/mapkit-ref.md

Related skills

How it compares

Use axiom-location for Apple-native location and maps; pick cross-platform geolocation skills when the same logic must run on Android or web.

FAQ

What Apple APIs does axiom-location cover?

axiom-location covers Core Location authorization and monitoring modes—including CLMonitor geofencing—plus MapKit annotations and directions for iOS and SwiftUI apps, with detailed patterns in skills/core-location.md.

When must developers load axiom-location?

axiom-location should load for any location services, mapping, geofencing, or Core Location and MapKit debugging task so agents follow bundled references instead of improvising permission or monitoring choices.

Is Axiom Location safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Mobile Developmentintegrationsfrontend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.