
Axiom Location
Ship Core Location, geofencing, and MapKit features in an iOS or SwiftUI app without guessing authorization, monitoring mode, or MapKit API choices.
Install
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-locationWhat is this skill?
- 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
Adoption & trust: 1 installs on skills.sh; 958 GitHub stars; 3/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
Recommended Skills
Journey fit
Location and maps are implemented during product build when wiring platform APIs into the app. Core Location, CLMonitor, and MapKit are third-party/platform integrations that agents must configure correctly alongside UI map layers.
Common Questions / FAQ
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.
SKILL.md
READMESKILL.md - Axiom Location
# Location & Maps **You MUST use this skill for ANY location services, mapping, geofencing, or Core Location / MapKit work.** ## Quick Reference | Symptom / Task | Reference | |----------------|-----------| | 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 location | See `skills/core-location.md` | | CLLocationUpdate, CLMonitor, CLServiceSession APIs | See `skills/core-location-ref.md` | | Authorization API patterns, geofencing API | See `skills/core-location-ref.md` | | Location updates never arrive | See `skills/core-location-diag.md` | | Background location stops working | See `skills/core-location-diag.md` | | Authorization always denied, geofence failures | See `skills/core-location-diag.md` | | SwiftUI Map, annotations, markers, clustering | See `skills/mapkit.md` | | MKMapView vs SwiftUI Map decision | See `skills/mapkit.md` | | Search, directions, routing | See `skills/mapkit.md` | | MapKit API: Marker, Annotation, MKLocalSearch, MKDirections | See `skills/mapkit-ref.md` | | Look Around, MKMapSnapshotter, MKMapItem | See `skills/mapkit-ref.md` | | Annotations not appearing, region jumping | See `skills/mapkit-diag.md` | | Clustering not working, search failures | See `skills/mapkit-diag.md` | | Overlay rendering, user location not showing | See `skills/mapkit-diag.md` | ## Decision Tree ```dot 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 locati