Agent skill · data analytics · dpearson2699

metrickit

Use when collecting or analyzing production iOS or iPadOS performance telemetry with MetricKit, including iOS 27 MetricManager async metric or diagnostic reports, hang or crash triage, custom signposts, extended launch measurement, durable export, or iOS 26 MXMetricManager compatibility.

Why this skill is useful

Provides specific patterns and implementation details for using MetricKit with iOS performance telemetry that the AI wouldn't reliably generate on its own.

What it needs

About 7k tokens when loaded. Last updated 2026-07-31. 973 stars on the source repository.

What this skill does

MetricKit Use MetricKit for low-overhead production telemetry that complements local Instruments and Xcode Organizer analysis. On iOS and iPadOS 27, prefer the Swift-first MetricManager report sequences. Keep MXMetricManager only in an explicit iOS 26 compatibility branch. Beta-sensitive: The iOS/iPadOS 27 surface below is based on Apple's current beta documentation. It has not been locally compiler-verified because Xcode 27 is unavailable in this environment. Re-check the linked Apple documentation and compile with the shipping Xcode 27 SDK before release. Load MetricKit Extended and Compatibility Patterns when implementing durable ingestion, detailed report analysis, or the iOS 26 compatibility path. Contents MetricManager Setup Receiving Metric Reports Receiving Diagnostic Reports Key Metric Results Call Stack Trees Custom Signpost Metrics Durable Export and Upload Extended Launch Measurement iOS 26 Compatibility Xcode Organizer Scope Boundaries Common Mistakes Review Checklist References MetricManager Setup At app launch, create and retain one long-lived MetricManager. Start exactly one consumer task for metricReports and one for diagnosticReports. Both properties expose nonthrowing AsyncSequence values: metricReports: some AsyncSequence<MetricReport, Never> diagnosticReports: some AsyncSequence<DiagnosticReport, Never> Apple documents that concurrent consumers of one sequence can receive nondeterministic subsets. Fan out only after the single consumer receives and durably stores a report; delayed subscription can miss reports. The persistence closures are application-specific. Implement them with the durable-first workflow below rather than dropping, logging only, or directly uploading each report. If state-scoped metrics are needed, construct the manager with the documented init(enabledStateReportingDomains:) initializer and the required domains. Receiving Metric Reports MetricReport is Codable and Sendable. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills dpearson2699/metrickit

View the source on GitHub

Browse the @skills marketplace