API搜索
- 作者仓库星标 977
- 叉子 74
- 许可证 MIT
- 作者更新于 2026年6月15日 03:09
- 作者仓库 Axiom
- 领域
- 通用
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 94 / 100 · 已通过审计
- 作者 / 版本 / 许可
- @CharlesWiltgen · MIT
- Token 消耗评级
- 低消耗
- 接入复杂程度
- 即装即用
- 是否需要外部 API Key
- 不需要
- 兼容的系统
- 未声明(默认跨平台)
- 底层运行要求
- 无特殊要求
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- 网络行为
- 仅限本地
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: axiom-location
description: Use when implementing location services, maps, geofencing, or debugging location/MapKit issues.…
category: 通用
runtime: 无特殊运行时
---
# axiom-location 输出预览
## PART A: 任务判断
- 适用问题:通用任务拆解、检查和交付。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“Quick Reference / Decision Tree / Conflict Resolution”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于通用任务拆解、检查和交付,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“Quick Reference / Decision Tree / Conflict Resolution”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、主要在本地完成、通常不需要额外 API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件;主要在本地完成;通常不需要额外 API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文没有稳定的斜杠命令要求。安装验证后通常全局生效,直接在对话里点名这个 Skill 并描述任务即可。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件。
先用一个小任务确认它会围绕“Quick Reference / Decision Tree / Conflict Resolution”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: axiom-location
description: Use when implementing location services, maps, geofencing, or debugging location/MapKit issues.…
category: 通用
source: CharlesWiltgen/Axiom
---
# axiom-location
## 什么时候使用
- 定位、地图和地理围栏开发不再靠零散排查 适合处理通用任务拆解、检查、交付和复盘,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查、可继续迭代的步骤;通常不需要额外 API Ke…
- 面向通用任务拆解、检查和交付,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「Quick Reference / Decision Tree / Conflict Resolution」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件;主要在本地完成;通常不需要额外 API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "axiom-location" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> Quick Reference / Decision Tree / Conflict Resolution
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> 无特殊运行时 | 读取文件、写入/修改文件 | 主要在本地完成
安全层 -> 通常不需要额外 API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} 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
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)"];
}
- Authorization strategy, monitoring approach, accuracy? →
skills/core-location.md1a. Need specific API syntax (CLLocationUpdate, CLMonitor, CLServiceSession)? →skills/core-location-ref.md1b. Location not working? →skills/core-location-diag.md - Adding a map, annotations, search, directions? →
skills/mapkit.md2a. Need specific MapKit API syntax (Marker, MKLocalSearch, MKDirections)? →skills/mapkit-ref.md2b. Map display broken? →skills/mapkit-diag.md - Location draining battery? → See axiom-performance (skills/energy.md)
- Background task scheduling for location? → See axiom-integration
- Privacy manifest for location? → See axiom-integration
Conflict Resolution
location vs axiom-performance: When location is draining battery:
- Try location FIRST — Excessive accuracy or continuous updates are the #1 cause.
skills/core-location.mdcovers accuracy selection and monitoring strategy. - 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
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核