Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when implementing location services, maps, geofencing, or debugging location/MapKit issues. Covers Core Location, CLMonitor, MapKit, annotations, directions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
You MUST use this skill for ANY location services, mapping, geofencing, or Core Location / MapKit work.
| 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 |
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)"];
}
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.mdskills/mapkit.md
2a. Need specific MapKit API syntax (Marker, MKLocalSearch, MKDirections)? → skills/mapkit-ref.md
2b. Map display broken? → skills/mapkit-diag.mdlocation vs axiom-performance: When location is draining battery:
skills/core-location.md covers accuracy selection and monitoring strategy.location vs axiom-integration: When implementing background location:
location vs axiom-data: When storing or syncing location data:
location vs axiom-build: When location permissions fail in simulator:
skills/core-location-diag.md)simctl location → use axiom-buildCore Location (skills/core-location.md):
Core Location API (skills/core-location-ref.md):
Core Location Diagnostics (skills/core-location-diag.md):
MapKit (skills/mapkit.md):
MapKit API (skills/mapkit-ref.md):
MapKit Diagnostics (skills/mapkit-diag.md):
| 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. |
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
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when implementing, testing, or evaluating ANY Apple Intelligence, on-device AI, or speech-to-text feature. Covers Foundation Models, @Generable, LanguageModelSession, Tool protocol, eval suites, model-as-judge scoring, SpeechTranscriber, CoreML.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when the user has a crash log (.ips, MetricKit JSON, legacy .crash text, .xccrashpoint bundle, or pasted text) that needs analysis.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when the user mentions Swift performance audit, code optimization, or performance review — ARC issues, allocation patterns, and generic specialization.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when the user mentions SwiftUI performance, janky scrolling, slow animations, or view update issues — expensive bodies, formatters, whole-collection dependencies, and missing lazy containers.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when the user mentions flaky tests, tests that pass locally but fail in CI, race conditions in tests, or needs to diagnose WHY a specific test fails.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.