apple-observability
Instrument and diagnose Apple apps using unified logging, signposts, Instruments traces, crash symbolication, memory graphs, and reproducible evidence without leaking user data.
SKILL.mdskills/apple-observability/SKILL.md
GitHubPrivacy-safe logs and performance diagnostics
Inputs
Define the failure claim, candidate/build identity, workload, process, time window, diagnostic tools, privacy scope, and baseline evidence.
Rules
- OBS-001 — Log contracts, not payloads. Prefer state transitions, operation categories, and bounded opaque correlation. Never log credentials or protected content for convenience.
- OBS-002 — Measure an interval. Use paired operation boundaries and consistent time units. Instrument success, failure, cancellation, and timeout without double-ending intervals.
- OBS-003 — Match diagnostic to failure. Distinguish CPU work, blocking, UI invalidation, allocation growth, and retained objects before proposing fixes.
- OBS-004 — Preserve raw provenance. Keep original traces/crashes privately with tool version and capture conditions. A parser summary is an interpretation, not the complete evidence.
- OBS-005 — Verify without the harness. Retest the final candidate without temporary fixtures or debugger effects; compare the same workload and report unmeasured claims.
Workflow
- Capture the smallest reproducible scenario and privacy-reviewed telemetry.
- Inspect symbolication and timeline coverage before trusting a summary.
- Form one ownership or performance hypothesis and add a focused regression test.
- Measure again and remove or bound temporary diagnostics.
Verify
Check cancelled intervals, private interpolations, missing symbols, empty traces, repeated presentations, and retained task/observer ownership. Inspect actual artifact contents before sharing.
Output
Return the candidate, capture contract, evidence-supported diagnosis, change, comparison, and unresolved hypotheses.