К основному содержанию
скилл CX Codex

axiom-location — скилл для Claude Code: Core Location и MapKit

Скилл для работы с геолокацией и картами в iOS: авторизация, геозоны, аннотации, маршруты и разбор поломок.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add CharlesWiltgen/Axiom --skill axiom-location -a claude-code
Открыть на GitHub

Что делает axiom-location

Скилл закрывает две области: Core Location и MapKit. Внутри шесть справочников — по стратегии авторизации и мониторингу, по синтаксису API, по диагностике, и то же самое для карт. Есть дерево решений и таблица симптомов: по описанию проблемы скилл отправляет к нужному файлу.

Диагностика разбирает конкретные поломки: обновления локации не приходят, фоновая локация перестаёт работать, авторизация всегда отклонена, геозона не срабатывает. Для карт — аннотации не появляются, регион прыгает, кластеризация молчит, поиск возвращает пусто. Отдельная таблица разбирает типовые отговорки вроде «запрошу Always сразу» — по данным скилла это даёт 30-60% отказов, поэтому советуется начать с When In Use и повышать позже.

Конфликты с другими скиллами разведены явно: если локация сажает батарею, сначала правьте точность и режим обновлений здесь, и только потом идите в axiom-performance. Настройка фоновой локации и BGTaskScheduler — разные скиллы, это повод не путать их при отладке.

Какие задачи решает

  • выбрать между When In Use и Always для авторизации
  • настроить геозону на CLMonitor вместо постоянных обновлений
  • разобраться, почему фоновая локация перестала приходить
  • починить аннотации, которые не появляются на карте
  • убрать прыжки региона при обновлении SwiftUI Map

Примеры запросов агенту

  • добавь геозону на вход в офис через CLMonitor
  • аннотации не появляются на карте, посмотри в axiom-location
  • фоновая локация перестала приходить после обновления iOS

Как установить axiom-location

1Через Skills CLI (Vercel)

npx skills add CharlesWiltgen/Axiom --skill axiom-location -a claude-code

2Вручную: положить файлы

~/.claude/skills/axiom-location/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/axiom-location/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора27

axiom-tools Скилл-навигатор по набору Axiom: подсказывает, какой инструмент взять для сборки, логов, символейшена крашей и профилей. Полезен, когда ведёшь iOS/Swift-проект в агенте. CX Codex +1 1 200установок axiom-swift Направляет ИИ-агента при работе с языком Swift и платформенными фичами вроде tvOS или Transferable. Пригодится, когда нейросеть предлагает устаревший код или путается в типах. CX Codex +1 1 200установок axiom-games Скилл-маршрутизатор для разработки игр на Apple: разводит задачи по справочникам SpriteKit, диагностике и гайду по тач-управлению и геймпадам. CX Codex +1 1 100установок axiom-ai Маршрутизирует разработку под Apple Intelligence, работу с Foundation Models, @Generable, SpeechTranscriber и CoreML. CX Codex +1 1 100установок axiom-graphics Скилл-роутер по GPU-рендерингу и 3D: миграция на Metal, конвертация шейдеров, RealityKit, USD/USDZ, частота кадров. CX Codex +1 1 200установок axiom-health Помогает агенту работать с HealthKit и WorkoutKit в приложениях для iOS и watchOS: от разрешений до тренировок и фоновой доставки данных. CX Codex +1 953установок axiom-watchos Скилл для разработки приложений под watchOS: структура, Smart Stack, complications, Watch Connectivity, фоновые задачи и миграция с ClockKit. CX Codex +1 934установок axiom-payments Подсказывает агенту, как принимать реальные платежи: Apple Pay, пропуска Wallet, Tap to Pay на iPhone. Не для встроенных покупок цифрового контента. CX Codex +1 860установок

Похожие

mapkit dpearson2699 Помогает агенту писать и проверять код карт и геолокации в приложениях на Swift: MapKit и CoreLocation. CX Codex +1 3 200установок amazon-location-service aws-geospatial Подключает API Amazon Location Service к проекту: карты, геокодинг, маршруты, поиск мест, геозоны и трекинг устройств. CX Codex +1 1 000установок swiftdata-pro Paul Hudson Скилл для написания, проверки и улучшения кода SwiftData с соблюдением современных API и best practices. Нужен, если вы работаете с SwiftData в проектах на Swift. CX Codex +1 9 300установок cmux-architecture manaflow-ai Скилл задаёт правила разделения кода cmux на пакеты Swift, инверсии зависимостей и многопоточности Swift 6. Помогает переносить модули без циклических связей. CX Codex +1 4 900установок swiftui-patterns affaan-m Задаёт правила современной разработки на SwiftUI: переход на @Observable, типобезопасная навигация и оптимизация рендеринга. Пригодится при верстке экранов под iOS и macOS. CX Codex +1 4 600установок swift-concurrency dpearson2699 Помогает устранять ошибки Sendable и изоляции акторов в Swift 6.2+, настраивать фоновые задачи и применять SE-0466. CX Codex +1 4 300установок

Рядом в теме «Мобильная разработка»

Всё по теме «Мобильная разработка» →

Вопросы о axiom-location

Как установить axiom-location в Claude?

Через CLI скиллов: npx skills add CharlesWiltgen/Axiom --skill axiom-location -a claude-code. После установки файл скилла лежит в ~/.claude/skills/axiom-location/SKILL.md.

Что делает axiom-location?

Помогает агенту писать и отлаживать код локации и карт на iOS: авторизация, мониторинг, геозоны, аннотации, поиск и маршруты. Внутри шесть справочников с деревом решений и разбором типовых поломок.

С какими скиллами axiom-location конфликтует?

Если локация расходует батарею, скилл советует сначала проверить точность и режим обновлений здесь, а к axiom-performance идти только после. Настройка фоновой локации остаётся за axiom-location, а BGTaskScheduler — уже за axiom-integration.

Исходный текст

SKILL.md · MIT
---
name: axiom-location
description: Use when implementing location services, maps, geofencing, or debugging location/MapKit issues. Covers Core Location, CLMonitor, MapKit, annotations, directions.
license: MIT
---

# 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` |
| Compass heading, heading reference body (`headingBody`) | See `skills/core-location-ref.md` (Part 12) |
| 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 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 location` → **use 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

| Thought | Reality |
|---------|---------|
| "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`

© CharlesWiltgen · MIT · CharlesWiltgen/Axiom

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой