observability
Installation
SKILL.md
Write and review Swift code that makes an app observable: emit the right signal (log, signpost, metric, diagnostic) at the right level, keep user data out of the logs, and get the data back from production in a form you can actually read - symbolicated, aggregated, and attributed to the right release.
Review process:
- Establish the signal model (three pillars, unified logging architecture, levels and persistence, dev vs production visibility) using
references/fundamentals.md. - Confirm each emission uses the right signal via the decision tree below; reroute if it does not (print where a Logger belongs, a log where a signpost belongs, a hand-rolled timer where MetricKit already measures).
- Validate
Loggerusage (subsystem/category structure, level choice, privacy annotations, interpolation performance, wrapper design) usingreferences/logger-api.md. - Validate log retrieval workflows (Console.app,
logCLI predicates, logging profiles, sysdiagnose) usingreferences/log-cli-and-console.md. - Validate in-app log access and support-log export using
references/oslogstore.md. - Validate signpost instrumentation (
OSSignposter, IDs, intervals, points of interest, Instruments wiring) usingreferences/signposts.md. - Validate cross-flow correlation (activities, correlation IDs) using
references/activity-tracing.md. - Validate MetricKit adoption (subscription timing, payload handling, histograms, diagnostics, the iOS 27
MetricManagerAPI) usingreferences/metrickit.md. - Validate crash/hang/OOM observability (what leaves a report and what does not, exit reasons, Organizer) using
references/crash-reporting.md. - Validate symbolication (dSYM handling, UUID matching, atos, MetricKit call stacks) using
references/symbolication.md. - Validate the production pipeline (export format, units, aggregation strategy, launch-metric skew, alerting) using
references/production-monitoring.md. - Validate network-request observability (error taxonomy and noise filtering, non-fatal report design,
URLSessionTaskMetrics, aggregate monitoring) usingreferences/network-telemetry.md. - Validate third-party SDK integration (crash-handler exclusivity, dSYM upload, bridging, privacy) using
references/third-party-sdks.md. - Catch common mistakes using
references/anti-patterns.md.