@danieljvdm/dev-kit 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/README.md +6 -6
  2. package/package.json +1 -1
  3. package/skill-sources.jsonc +6 -29
  4. package/skill-sources.lock.json +23 -109
  5. package/skills/animate/LICENSE +21 -0
  6. package/skills/animate/NOTICE +10 -0
  7. package/skills/animate/SKILL.md +34 -0
  8. package/skills/animate/references/gestures.md +27 -0
  9. package/skills/animate/references/glossary.md +136 -0
  10. package/skills/animate/references/implementation.md +22 -0
  11. package/skills/animate/references/opportunities.md +18 -0
  12. package/skills/animate/references/principles.md +48 -0
  13. package/skills/animate/references/review.md +19 -0
  14. package/skills/cloudflare-workers/LICENSE +202 -0
  15. package/skills/cloudflare-workers/NOTICE +9 -0
  16. package/skills/cloudflare-workers/SKILL.md +26 -0
  17. package/skills/cloudflare-workers/references/durable-objects.md +68 -0
  18. package/skills/cloudflare-workers/references/sandbox.md +48 -0
  19. package/skills/cloudflare-workers/references/workers.md +63 -0
  20. package/skills/cloudflare-workers/references/wrangler.md +56 -0
  21. package/skills/design-ui/LICENSE +21 -0
  22. package/skills/design-ui/NOTICE +8 -0
  23. package/skills/design-ui/SKILL.md +29 -0
  24. package/skills/design-ui/references/appearance.md +22 -0
  25. package/skills/design-ui/references/components.md +33 -0
  26. package/skills/design-ui/references/exploration.md +50 -0
  27. package/skills/design-ui/references/libraries.md +39 -0
  28. package/skills/design-ui/references/themes.md +23 -0
  29. package/skills/dev-kit/SKILL.md +19 -38
  30. package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
  31. package/skills/dev-kit/references/skills.md +2 -2
  32. package/skills/effect-development/SKILL.md +27 -0
  33. package/skills/effect-development/agents/openai.yaml +4 -0
  34. package/skills/effect-development/references/api/index.md +32 -0
  35. package/skills/effect-development/references/api/schema-codecs.md +15 -0
  36. package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
  37. package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
  38. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
  39. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
  40. package/skills/effect-development/references/atom/index.md +40 -0
  41. package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
  42. package/skills/effect-development/references/cli/index.md +39 -0
  43. package/skills/effect-development/references/setup.md +15 -0
  44. package/skills/open-pull-request/SKILL.md +11 -115
  45. package/skills/open-pull-request/agents/openai.yaml +3 -3
  46. package/skills/open-pull-request/references/evidence.md +22 -0
  47. package/skills/open-pull-request/references/explanation.md +21 -0
  48. package/skills/open-pull-request/references/publication.md +21 -0
  49. package/skills/sentry/LICENSE +202 -0
  50. package/skills/sentry/LICENSE-UPSTREAM +21 -0
  51. package/skills/sentry/NOTICE +14 -0
  52. package/skills/sentry/SKILL.md +33 -0
  53. package/skills/sentry/references/alert-payloads.md +105 -0
  54. package/skills/sentry/references/alerts.md +17 -0
  55. package/skills/sentry/references/artifacts.md +25 -0
  56. package/skills/sentry/references/auth-token.md +65 -0
  57. package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
  58. package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
  59. package/skills/sentry/references/concepts/crons.md +50 -0
  60. package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
  61. package/skills/sentry/references/concepts/errors.md +40 -0
  62. package/skills/sentry/references/concepts/logging.md +85 -0
  63. package/skills/sentry/references/concepts/metrics.md +49 -0
  64. package/skills/sentry/references/concepts/monitors.md +78 -0
  65. package/skills/sentry/references/concepts/profiling.md +38 -0
  66. package/skills/sentry/references/concepts/reduce-volume.md +49 -0
  67. package/skills/sentry/references/concepts/releases.md +43 -0
  68. package/skills/sentry/references/concepts/session-replay.md +35 -0
  69. package/skills/sentry/references/concepts/tracing.md +54 -0
  70. package/skills/sentry/references/concepts/user-feedback.md +36 -0
  71. package/skills/sentry/references/debug-artifacts/android.md +68 -0
  72. package/skills/sentry/references/debug-artifacts/apple.md +96 -0
  73. package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
  74. package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
  75. package/skills/sentry/references/debug-artifacts/index.md +75 -0
  76. package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
  77. package/skills/sentry/references/debug-artifacts/matching.md +73 -0
  78. package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
  79. package/skills/sentry/references/first-error-setup.md +25 -0
  80. package/skills/sentry/references/instrumentation.md +30 -0
  81. package/skills/sentry/references/issues.md +32 -0
  82. package/skills/sentry/references/new-project.md +17 -0
  83. package/skills/sentry/references/otel-exporter.md +30 -0
  84. package/skills/sentry/references/release-workflow.md +31 -0
  85. package/skills/sentry/references/releases/ci-pipeline.md +214 -0
  86. package/skills/sentry/references/releases/index.md +93 -0
  87. package/skills/sentry/references/releases/suspect-commits.md +155 -0
  88. package/skills/sentry/references/releases/tagging.md +131 -0
  89. package/skills/sentry/references/releases/troubleshooting.md +67 -0
  90. package/skills/sentry/references/sdks/android/crons.md +305 -0
  91. package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
  92. package/skills/sentry/references/sdks/android/index.md +748 -0
  93. package/skills/sentry/references/sdks/android/integrations.md +48 -0
  94. package/skills/sentry/references/sdks/android/logging.md +374 -0
  95. package/skills/sentry/references/sdks/android/metrics.md +288 -0
  96. package/skills/sentry/references/sdks/android/profiling.md +397 -0
  97. package/skills/sentry/references/sdks/android/session-replay.md +406 -0
  98. package/skills/sentry/references/sdks/android/tracing.md +861 -0
  99. package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
  100. package/skills/sentry/references/sdks/browser/index.md +714 -0
  101. package/skills/sentry/references/sdks/browser/logging.md +315 -0
  102. package/skills/sentry/references/sdks/browser/profiling.md +236 -0
  103. package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
  104. package/skills/sentry/references/sdks/browser/tracing.md +561 -0
  105. package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
  106. package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
  107. package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
  108. package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
  109. package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
  110. package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
  111. package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
  112. package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
  113. package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
  114. package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
  115. package/skills/sentry/references/sdks/cocoa/index.md +497 -0
  116. package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
  117. package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
  118. package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
  119. package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
  120. package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
  121. package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
  122. package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
  123. package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
  124. package/skills/sentry/references/sdks/dotnet/index.md +614 -0
  125. package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
  126. package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
  127. package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
  128. package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
  129. package/skills/sentry/references/sdks/elixir/crons.md +371 -0
  130. package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
  131. package/skills/sentry/references/sdks/elixir/index.md +383 -0
  132. package/skills/sentry/references/sdks/elixir/logging.md +239 -0
  133. package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
  134. package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
  135. package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
  136. package/skills/sentry/references/sdks/flutter/index.md +728 -0
  137. package/skills/sentry/references/sdks/flutter/logging.md +387 -0
  138. package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
  139. package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
  140. package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
  141. package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
  142. package/skills/sentry/references/sdks/go/crons.md +270 -0
  143. package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
  144. package/skills/sentry/references/sdks/go/index.md +324 -0
  145. package/skills/sentry/references/sdks/go/logging.md +354 -0
  146. package/skills/sentry/references/sdks/go/metrics.md +273 -0
  147. package/skills/sentry/references/sdks/go/profiling.md +46 -0
  148. package/skills/sentry/references/sdks/go/tracing.md +366 -0
  149. package/skills/sentry/references/sdks/index.md +41 -0
  150. package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
  151. package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
  152. package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
  153. package/skills/sentry/references/sdks/nestjs/index.md +699 -0
  154. package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
  155. package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
  156. package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
  157. package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
  158. package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
  159. package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
  160. package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
  161. package/skills/sentry/references/sdks/nextjs/index.md +491 -0
  162. package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
  163. package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
  164. package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
  165. package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
  166. package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
  167. package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
  168. package/skills/sentry/references/sdks/node/crons.md +432 -0
  169. package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
  170. package/skills/sentry/references/sdks/node/index.md +942 -0
  171. package/skills/sentry/references/sdks/node/logging.md +380 -0
  172. package/skills/sentry/references/sdks/node/metrics.md +278 -0
  173. package/skills/sentry/references/sdks/node/profiling.md +373 -0
  174. package/skills/sentry/references/sdks/node/tracing.md +878 -0
  175. package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
  176. package/skills/sentry/references/sdks/php/crons.md +265 -0
  177. package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
  178. package/skills/sentry/references/sdks/php/index.md +362 -0
  179. package/skills/sentry/references/sdks/php/laravel.md +542 -0
  180. package/skills/sentry/references/sdks/php/logging.md +242 -0
  181. package/skills/sentry/references/sdks/php/metrics.md +193 -0
  182. package/skills/sentry/references/sdks/php/profiling.md +115 -0
  183. package/skills/sentry/references/sdks/php/symfony.md +552 -0
  184. package/skills/sentry/references/sdks/php/tracing.md +516 -0
  185. package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
  186. package/skills/sentry/references/sdks/python/crons.md +218 -0
  187. package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
  188. package/skills/sentry/references/sdks/python/index.md +361 -0
  189. package/skills/sentry/references/sdks/python/logging.md +234 -0
  190. package/skills/sentry/references/sdks/python/metrics.md +154 -0
  191. package/skills/sentry/references/sdks/python/profiling.md +120 -0
  192. package/skills/sentry/references/sdks/python/tracing.md +364 -0
  193. package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
  194. package/skills/sentry/references/sdks/react/index.md +492 -0
  195. package/skills/sentry/references/sdks/react/logging.md +364 -0
  196. package/skills/sentry/references/sdks/react/profiling.md +322 -0
  197. package/skills/sentry/references/sdks/react/react-features.md +1272 -0
  198. package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
  199. package/skills/sentry/references/sdks/react/tracing.md +1415 -0
  200. package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
  201. package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
  202. package/skills/sentry/references/sdks/react-native/index.md +1030 -0
  203. package/skills/sentry/references/sdks/react-native/logging.md +444 -0
  204. package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
  205. package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
  206. package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
  207. package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
  208. package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
  209. package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
  210. package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
  211. package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
  212. package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
  213. package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
  214. package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
  215. package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
  216. package/skills/sentry/references/sdks/ruby/crons.md +184 -0
  217. package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
  218. package/skills/sentry/references/sdks/ruby/index.md +297 -0
  219. package/skills/sentry/references/sdks/ruby/logging.md +168 -0
  220. package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
  221. package/skills/sentry/references/sdks/ruby/migration.md +321 -0
  222. package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
  223. package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
  224. package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
  225. package/skills/sentry/references/sdks/svelte/index.md +467 -0
  226. package/skills/sentry/references/sdks/svelte/logging.md +344 -0
  227. package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
  228. package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
  229. package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
  230. package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
  231. package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
  232. package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
  233. package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
  234. package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
  235. package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
  236. package/skills/sentry/references/search-query-language.md +226 -0
  237. package/skills/sentry/references/semantics/angular.md +7 -0
  238. package/skills/sentry/references/semantics/app.md +28 -0
  239. package/skills/sentry/references/semantics/art.md +17 -0
  240. package/skills/sentry/references/semantics/aws.md +43 -0
  241. package/skills/sentry/references/semantics/browser.md +34 -0
  242. package/skills/sentry/references/semantics/cache.md +12 -0
  243. package/skills/sentry/references/semantics/client.md +8 -0
  244. package/skills/sentry/references/semantics/cloud.md +12 -0
  245. package/skills/sentry/references/semantics/cloudflare.md +23 -0
  246. package/skills/sentry/references/semantics/code.md +11 -0
  247. package/skills/sentry/references/semantics/culture.md +11 -0
  248. package/skills/sentry/references/semantics/db.md +21 -0
  249. package/skills/sentry/references/semantics/device.md +43 -0
  250. package/skills/sentry/references/semantics/error.md +7 -0
  251. package/skills/sentry/references/semantics/event.md +8 -0
  252. package/skills/sentry/references/semantics/exception.md +10 -0
  253. package/skills/sentry/references/semantics/faas.md +19 -0
  254. package/skills/sentry/references/semantics/file.md +8 -0
  255. package/skills/sentry/references/semantics/flag.md +7 -0
  256. package/skills/sentry/references/semantics/gcp.md +16 -0
  257. package/skills/sentry/references/semantics/gen_ai.md +53 -0
  258. package/skills/sentry/references/semantics/general.md +11 -0
  259. package/skills/sentry/references/semantics/graphql.md +9 -0
  260. package/skills/sentry/references/semantics/grpc.md +19 -0
  261. package/skills/sentry/references/semantics/http.md +34 -0
  262. package/skills/sentry/references/semantics/index.md +63 -0
  263. package/skills/sentry/references/semantics/jsonrpc.md +8 -0
  264. package/skills/sentry/references/semantics/jvm.md +12 -0
  265. package/skills/sentry/references/semantics/koa.md +7 -0
  266. package/skills/sentry/references/semantics/logger.md +7 -0
  267. package/skills/sentry/references/semantics/mcp.md +37 -0
  268. package/skills/sentry/references/semantics/mdc.md +7 -0
  269. package/skills/sentry/references/semantics/messaging.md +23 -0
  270. package/skills/sentry/references/semantics/middleware.md +7 -0
  271. package/skills/sentry/references/semantics/navigation.md +9 -0
  272. package/skills/sentry/references/semantics/nel.md +11 -0
  273. package/skills/sentry/references/semantics/network.md +17 -0
  274. package/skills/sentry/references/semantics/os.md +15 -0
  275. package/skills/sentry/references/semantics/otel.md +10 -0
  276. package/skills/sentry/references/semantics/params.md +7 -0
  277. package/skills/sentry/references/semantics/process.md +14 -0
  278. package/skills/sentry/references/semantics/react.md +7 -0
  279. package/skills/sentry/references/semantics/remix.md +7 -0
  280. package/skills/sentry/references/semantics/resource.md +7 -0
  281. package/skills/sentry/references/semantics/rpc.md +10 -0
  282. package/skills/sentry/references/semantics/score.md +10 -0
  283. package/skills/sentry/references/semantics/sentry.md +69 -0
  284. package/skills/sentry/references/semantics/server.md +8 -0
  285. package/skills/sentry/references/semantics/service.md +8 -0
  286. package/skills/sentry/references/semantics/session.md +7 -0
  287. package/skills/sentry/references/semantics/state.md +7 -0
  288. package/skills/sentry/references/semantics/thread.md +8 -0
  289. package/skills/sentry/references/semantics/timber.md +7 -0
  290. package/skills/sentry/references/semantics/trpc.md +8 -0
  291. package/skills/sentry/references/semantics/ui.md +18 -0
  292. package/skills/sentry/references/semantics/url.md +15 -0
  293. package/skills/sentry/references/semantics/user.md +17 -0
  294. package/skills/sentry/references/semantics/user_agent.md +7 -0
  295. package/skills/sentry/references/semantics/vercel.md +42 -0
  296. package/skills/sentry/references/setup-verification.md +39 -0
  297. package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
  298. package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
  299. package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
  300. package/skills/sentry/references/snapshots/index.md +19 -0
  301. package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
  302. package/skills/sentry/references/snapshots/snapshots.md +123 -0
  303. package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
  304. package/skills/testing/LICENSE +21 -0
  305. package/skills/testing/NOTICE +7 -0
  306. package/skills/testing/SKILL.md +13 -19
  307. package/skills/testing/agents/openai.yaml +1 -2
  308. package/skills/testing/references/selection.md +23 -0
  309. package/skills/testing/references/tdd.md +19 -0
  310. package/skills/testing/references/test-design.md +17 -0
  311. package/src/catalog.ts +1 -7
  312. package/skills/build-effect-apis/SKILL.md +0 -81
  313. package/skills/build-effect-apis/agents/openai.yaml +0 -4
  314. package/skills/build-effect-clis/SKILL.md +0 -92
  315. package/skills/build-effect-clis/agents/openai.yaml +0 -4
  316. package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
  317. package/skills/effect-atom-state/SKILL.md +0 -97
  318. package/skills/effect-atom-state/agents/openai.yaml +0 -4
  319. package/skills/effect-ts/SKILL.md +0 -35
  320. package/skills/effect-ts/agents/openai.yaml +0 -4
  321. /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
  322. /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
  323. /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
  324. /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
  325. /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
  326. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
  327. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
  328. /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
  329. /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
  330. /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
@@ -0,0 +1,524 @@
1
+ # Tracing — Sentry Cocoa SDK
2
+
3
+ > Minimum SDK: `sentry-cocoa` v7.0.0+ SwiftUI instrumentation stable: v8.17.0+ File I/O
4
+ > manual tracing extensions: v8.48.0+
5
+
6
+ ## Configuration
7
+
8
+ | Option | Type | Default | Description |
9
+ | -------------------------------- | ------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
10
+ | `tracesSampleRate` | `Double` (0.0–1.0) | `nil` | Uniform sample rate; mutually exclusive with `tracesSampler` |
11
+ | `tracesSampler` | `(SentrySamplingContext) -> NSNumber` | `nil` | Dynamic per-transaction sampling; overrides `tracesSampleRate` |
12
+ | `enableAutoPerformanceTracing` | `Bool` | `true` | Master switch for all automatic instrumentation |
13
+ | `enableUIViewControllerTracing` | `Bool` | `true` | UIViewController lifecycle spans |
14
+ | `enableUserInteractionTracing` | `Bool` | `true` | Transactions for UIControl tap/click events |
15
+ | `enableNetworkTracking` | `Bool` | `true` | URLSession HTTP request spans |
16
+ | `enableFileIOTracing` | `Bool` | `true` | NSData / FileManager file I/O spans |
17
+ | `enableCoreDataTracing` | `Bool` | `true` | Core Data fetch/save spans |
18
+ | `enableTimeToFullDisplayTracing` | `Bool` | `false` | TTFD span; requires `SentrySDK.reportFullyDisplayed()` |
19
+ | `enablePreWarmedAppStartTracing` | `Bool` | `true` | Prewarmed cold/warm start tracing (iOS 15+) |
20
+ | `enableDataSwizzling` | `Bool` | `true` | NSData swizzling for automatic file I/O tracing |
21
+ | `enableFileManagerSwizzling` | `Bool` | `false` | NSFileManager swizzling (experimental; needed for iOS 18+) |
22
+ | `tracePropagationTargets` | `[Any]` | all requests | Strings or `NSRegularExpression` values for outgoing distributed trace headers |
23
+ | `enableSwizzling` | `Bool` | `true` | Master switch for method swizzling (required by several auto-instrumentation features) |
24
+ | `strictTraceContinuation` | `Bool` | `false` | Only continue an incoming trace when `orgId` matches; prevents cross-org trace continuation (SDK 9.x+) |
25
+ | `orgId` | `String?` | `nil` | Organization ID for strict trace validation; auto-parsed from DSN host (e.g. `o123.ingest.sentry.io` → `"123"`) if not set explicitly |
26
+
27
+ ## Code Examples
28
+
29
+ ### Basic tracing setup
30
+
31
+ ```swift
32
+ import Sentry
33
+
34
+ SentrySDK.start { options in
35
+ options.dsn = "___PUBLIC_DSN___"
36
+ options.tracesSampleRate = 1.0 // 100% in dev; lower for production (e.g., 0.2)
37
+ }
38
+ ```
39
+
40
+ ### Dynamic sampling with tracesSampler
41
+
42
+ ```swift
43
+ SentrySDK.start { options in
44
+ options.dsn = "___PUBLIC_DSN___"
45
+ options.tracesSampler = { context in
46
+ // Never sample next-launch transactions
47
+ if context.isForNextAppLaunch { return 0 }
48
+ // Always sample checkout
49
+ if context.customSamplingContext?["flow"] as? String == "checkout" { return 1.0 }
50
+ // Default: 25%
51
+ return 0.25
52
+ }
53
+ }
54
+ ```
55
+
56
+ ### Custom transaction with child spans
57
+
58
+ ```swift
59
+ import Sentry
60
+
61
+ func performCheckout() {
62
+ let transaction = SentrySDK.startTransaction(
63
+ name: "checkout",
64
+ operation: "perform-checkout",
65
+ bindToScope: true // makes it accessible via SentrySDK.span
66
+ )
67
+
68
+ let validationSpan = transaction.startChild(
69
+ operation: "validation",
70
+ description: "validating shopping cart"
71
+ )
72
+ validateShoppingCart()
73
+ validationSpan.finish()
74
+
75
+ let processSpan = transaction.startChild(
76
+ operation: "process",
77
+ description: "processing payment"
78
+ )
79
+
80
+ do {
81
+ try processPayment()
82
+ processSpan.finish()
83
+ transaction.finish()
84
+ } catch {
85
+ SentrySDK.capture(error: error)
86
+ processSpan.finish(status: .internalError)
87
+ transaction.finish(status: .internalError)
88
+ }
89
+ }
90
+ ```
91
+
92
+ ### Accessing the scope-bound span from a called function
93
+
94
+ ```swift
95
+ func processPayment() {
96
+ // Grab the transaction bound to scope (or start a standalone one)
97
+ let span = SentrySDK.span ?? SentrySDK.startTransaction(
98
+ name: "processPayment",
99
+ operation: "task"
100
+ )
101
+ let child = span.startChild(operation: "payment.gateway")
102
+ defer { child.finish() }
103
+
104
+ // payment logic...
105
+ }
106
+ ```
107
+
108
+ ### Setting data attributes on transactions and spans
109
+
110
+ ```swift
111
+ let transaction = SentrySDK.startTransaction(name: "sync", operation: "task")
112
+ transaction.setData(value: "incremental", key: "sync.type")
113
+ transaction.setData(value: 42, key: "sync.item_count")
114
+ transaction.setData(value: true, key: "sync.force")
115
+ transaction.setData(value: ["a", "b"], key: "sync.queues")
116
+
117
+ let span = transaction.startChild(operation: "db.fetch")
118
+ span.setData(value: "orders", key: "db.table")
119
+ span.finish()
120
+ transaction.finish()
121
+ ```
122
+
123
+ ### Custom performance measurements
124
+
125
+ ```swift
126
+ let span = SentrySDK.span
127
+
128
+ span?.setMeasurement(name: "memory_used",
129
+ value: 64,
130
+ unit: MeasurementUnitInformation.megabyte)
131
+
132
+ span?.setMeasurement(name: "profile_load_time",
133
+ value: 1.3,
134
+ unit: MeasurementUnitDuration.second)
135
+
136
+ span?.setMeasurement(name: "items_processed", value: 128)
137
+ ```
138
+
139
+ ---
140
+
141
+ ## Automatic Instrumentation
142
+
143
+ All features are enabled once `tracesSampleRate > 0` (or `tracesSampler` is set).
144
+ Disable all at once with `enableAutoPerformanceTracing = false`.
145
+
146
+ ### App Start Tracing
147
+
148
+ **Platforms:** iOS, tvOS, Mac Catalyst
149
+
150
+ Measures process creation → first rendered frame.
151
+ Start type classifications:
152
+
153
+ | Type | Description |
154
+ | ---------------- | ----------------------------------------- |
155
+ | `cold` | First launch, post-reboot, or post-update |
156
+ | `warm` | Any other process creation |
157
+ | `cold.prewarmed` | Cold start with OS pre-warm (iOS 15+) |
158
+ | `warm.prewarmed` | Warm start with OS pre-warm (iOS 15+) |
159
+
160
+ Child spans produced (sequential):
161
+
162
+ | Span | Measures |
163
+ | ------------------------------------- | --------------------------------------------------------------------- |
164
+ | Pre Runtime Init | Process start → runtime init |
165
+ | Runtime Init to Pre Main Initializers | Runtime init → pre-main setup |
166
+ | UIKit Init | Pre-main → Sentry SDK startup |
167
+ | Application Init | SDK startup → `didFinishLaunchingNotification` |
168
+ | Initial Frame Render | `didFinishLaunchingNotification` → first CADisplayLink callback (v9+) |
169
+
170
+ > Warning: If more than **180 seconds** (3 minutes) elapse between transaction start and
171
+ > app-start end, app start spans are **not attached** to avoid misassociation.
172
+ > This limit is skipped when standalone app start tracing is enabled.
173
+
174
+ #### Standalone App Start Tracing (Experimental, 9.15.0+)
175
+
176
+ **Platforms:** iOS, tvOS, visionOS
177
+
178
+ By default, app start transactions are attached to the first UIViewController
179
+ transaction. Standalone app start tracing creates a dedicated transaction just for app
180
+ launch, independent of any UIViewController.
181
+
182
+ ```swift
183
+ SentrySDK.start { options in
184
+ options.dsn = "___PUBLIC_DSN___"
185
+ options.tracesSampleRate = 1.0
186
+ options.experimental.enableStandaloneAppStartTracing = true
187
+ }
188
+ ```
189
+
190
+ **Extending app launch beyond the default end point (9.15.0+):**
191
+
192
+ For apps with initial data loading or authentication flows, you can extend the app start
193
+ measurement:
194
+
195
+ ```swift
196
+ // UIKit — in AppDelegate
197
+ func application(
198
+ _ application: UIApplication,
199
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
200
+ ) -> Bool {
201
+ SentrySDK.start { options in
202
+ options.dsn = "___PUBLIC_DSN___"
203
+ options.tracesSampleRate = 1.0
204
+ options.experimental.enableStandaloneAppStartTracing = true
205
+ }
206
+ SentrySDK.extendAppLaunch() // call before didFinishLaunchingNotification is posted
207
+ return true
208
+ }
209
+
210
+ // Later, when your app is fully ready:
211
+ func onInitialDataLoaded() {
212
+ SentrySDK.finishExtendedAppLaunch()
213
+ }
214
+ ```
215
+
216
+ ```swift
217
+ // SwiftUI — in App constructor
218
+ @main
219
+ struct MyApp: App {
220
+ init() {
221
+ SentrySDK.start { options in
222
+ options.dsn = "___PUBLIC_DSN___"
223
+ options.tracesSampleRate = 1.0
224
+ options.experimental.enableStandaloneAppStartTracing = true
225
+ }
226
+ SentrySDK.extendAppLaunch()
227
+ }
228
+
229
+ var body: some Scene {
230
+ WindowGroup {
231
+ ContentView()
232
+ .onAppear {
233
+ // After initial data loads:
234
+ SentrySDK.finishExtendedAppLaunch()
235
+ }
236
+ }
237
+ }
238
+ }
239
+ ```
240
+
241
+ > **Note:** `extendAppLaunch()` must be called after `SentrySDK.start()` but before the
242
+ > `didFinishLaunchingNotification` is posted.
243
+ > If not called, or if the extended launch was already finished,
244
+ > `finishExtendedAppLaunch()` does nothing.
245
+
246
+ ### URLSession Network Tracking
247
+
248
+ **Platforms:** All **Note:** `NSURLConnection` is **not** supported — only
249
+ `NSURLSession`.
250
+
251
+ Automatically adds HTTP spans to any active scope-bound transaction.
252
+
253
+ ```swift
254
+ // Disable
255
+ options.enableNetworkTracking = false
256
+ ```
257
+
258
+ ### UIViewController Lifecycle Tracing
259
+
260
+ **Platforms:** iOS, tvOS, Mac Catalyst **Not available for:** SwiftUI (use
261
+ `SentryTracedView` instead)
262
+
263
+ - Transaction operation: `ui.load`
264
+ - Transaction name: `Your_App.MainViewController`
265
+ - Auto-generated child spans: `loadView`, `viewDidLoad`, `viewWillAppear`,
266
+ `viewDidAppear`
267
+ - Time to Initial Display (TTID) span: `ui.load.initial-display`
268
+
269
+ ```swift
270
+ // Include framework view controllers
271
+ options.add(inAppInclude: "MyFramework")
272
+
273
+ // Exclude specific view controllers
274
+ options.swizzleClassNameExcludes = ["MyModalViewController"]
275
+
276
+ // Disable entirely
277
+ options.enableUIViewControllerTracing = false
278
+ ```
279
+
280
+ ### Time to Full Display (TTFD)
281
+
282
+ ```swift
283
+ // Enable globally
284
+ options.enableTimeToFullDisplayTracing = true
285
+
286
+ // In your view controller, signal when async content is fully loaded:
287
+ SentrySDK.reportFullyDisplayed()
288
+ ```
289
+
290
+ TTFD span status:
291
+
292
+ | Scenario | Status |
293
+ | ------------------------------- | --------------------------------------------- |
294
+ | `reportFullyDisplayed()` called | `.ok` |
295
+ | Not finished within 30 seconds | `.deadlineExceeded`; duration = TTID duration |
296
+ | Called before view appears | Reported time = TTID time |
297
+
298
+ ### SwiftUI Instrumentation
299
+
300
+ For SDK 9.4.1+, SwiftUI tracing APIs are available from the main `Sentry` module.
301
+ The `SentrySwiftUI` product/module still exists as a deprecated re-export for older
302
+ setups.
303
+
304
+ ```swift
305
+ import Sentry
306
+
307
+ // Option 1: wrapper
308
+ var body: some View {
309
+ SentryTracedView("My Awesome Screen") {
310
+ List { /* content */ }
311
+ }
312
+ }
313
+
314
+ // Option 2: modifier
315
+ var body: some View {
316
+ List { /* content */ }
317
+ .sentryTrace("My Awesome Screen")
318
+ }
319
+
320
+ // With TTFD (v8.44.0+)
321
+ SentryTracedView("Content", waitForFullDisplay: true) {
322
+ VStack { /* async content */ }
323
+ .onAppear {
324
+ Task {
325
+ data = await loadData()
326
+ SentrySDK.reportFullyDisplayed()
327
+ }
328
+ }
329
+ }
330
+ ```
331
+
332
+ If maintaining an older project that already uses the `SentrySwiftUI` product,
333
+ `import SentrySwiftUI` still works in SDK 9.x but should be migrated to `import Sentry`
334
+ before the next major version.
335
+ Source-build `SentrySPM` projects may expose the module as `SentrySwift`; verify imports
336
+ against the selected product.
337
+
338
+ ### Slow & Frozen Frames
339
+
340
+ **Platforms:** iOS, tvOS, Mac Catalyst Tracked automatically during any active
341
+ transaction. Appears as Mobile Vitals in the Sentry Performance UI.
342
+
343
+ | Threshold | Classification |
344
+ | ------------------ | -------------- |
345
+ | > 16 ms per frame | Slow frame |
346
+ | > 700 ms per frame | Frozen frame |
347
+
348
+ ### User Interaction Tracing
349
+
350
+ **Platforms:** iOS, tvOS, Mac Catalyst **Not available for:** SwiftUI
351
+
352
+ Creates a transaction for every UIControl tap/click.
353
+
354
+ - Transaction operation: `ui.action` or `ui.action.click`
355
+ - Transaction name: `YourApp_LoginViewController.loginButton`
356
+ - `idleTimeout`: 3000 ms — transaction finishes if no child spans within 3 seconds
357
+ - Transactions with **no child spans** are dropped
358
+
359
+ ```swift
360
+ // Create child spans inside a tap handler:
361
+ func onLoginTapped() {
362
+ let span = SentrySDK.span
363
+ let child = span?.startChild(operation: "loadUserProfile")
364
+ // ... work ...
365
+ child?.finish()
366
+ }
367
+
368
+ // Disable
369
+ options.enableUserInteractionTracing = false
370
+ ```
371
+
372
+ ### File I/O Tracing (NSData)
373
+
374
+ **Platforms:** All Tracks `NSData` read/write operations as spans.
375
+
376
+ ```swift
377
+ options.enableFileIOTracing = true // default
378
+
379
+ // iOS 18+ / macOS 15+: NSFileManager no longer backed by NSData
380
+ // Enable experimental NSFileManager swizzling:
381
+ options.enableFileManagerSwizzling = true // experimental, v9.0.0+
382
+ ```
383
+
384
+ **Manual tracing extensions (v8.48.0+)** — only create spans when an active transaction
385
+ exists:
386
+
387
+ ```swift
388
+ // Data read/write
389
+ let data = try Data(contentsOfWithSentryTracing: url)
390
+ try data.writeWithSentryTracing(to: url)
391
+
392
+ // FileManager
393
+ let fm = FileManager.default
394
+ fm.createFileWithSentryTracing(atPath: path, contents: data)
395
+ try fm.moveItemWithSentryTracing(at: src, to: dst)
396
+ try fm.copyItemWithSentryTracing(at: src, to: dst)
397
+ try fm.removeItemWithSentryTracing(at: url)
398
+ ```
399
+
400
+ Span operations created:
401
+
402
+ | Method | Span Op |
403
+ | -------------------------------- | ------------- |
404
+ | `Data.init(contentsOf:)` | `file.read` |
405
+ | `data.write(to:)` / `createFile` | `file.write` |
406
+ | `moveItem` | `file.rename` |
407
+ | `copyItem` | `file.copy` |
408
+ | `removeItem` | `file.delete` |
409
+
410
+ ### Core Data Tracing
411
+
412
+ **Platforms:** All Instruments `NSManagedObjectContext` fetch and save operations.
413
+
414
+ ```swift
415
+ options.enableCoreDataTracing = true // default
416
+
417
+ // Disable
418
+ options.enableCoreDataTracing = false
419
+ ```
420
+
421
+ ---
422
+
423
+ ## Distributed Tracing
424
+
425
+ Sentry injects two headers into outgoing `NSURLSession` requests when the host matches
426
+ `tracePropagationTargets`:
427
+
428
+ | Header | Purpose |
429
+ | -------------- | ------------------------------------------------ |
430
+ | `sentry-trace` | Carries trace ID, span ID, and sampled flag |
431
+ | `baggage` | Carries Dynamic Sampling Context key-value pairs |
432
+
433
+ ```swift
434
+ SentrySDK.start { options in
435
+ options.dsn = "___PUBLIC_DSN___"
436
+ options.tracesSampleRate = 1.0
437
+
438
+ // Only propagate to your own backend (default: all requests).
439
+ // Plain strings are matched as substrings ("contains"); wrap a
440
+ // pattern in NSRegularExpression for it to be evaluated as a regex.
441
+ var targets: [Any] = ["api.myapp.com"] // substring match
442
+ if let subdomainRegex = try? NSRegularExpression(pattern: ".*\\.myapp\\.com") {
443
+ targets.append(subdomainRegex) // regex match
444
+ }
445
+ options.tracePropagationTargets = targets
446
+
447
+ // Also add W3C traceparent header (requires sentry-cocoa 9.0.0+)
448
+ options.enablePropagateTraceparent = true
449
+ }
450
+ ```
451
+
452
+ > **`enablePropagateTraceparent` requires sentry-cocoa 9.0.0+.** It is not available in
453
+ > 8.x.
454
+ >
455
+ > Warning: Both headers must be included in CORS allowlists and must not be blocked by
456
+ > proxies or firewalls.
457
+
458
+ ### Strict Trace Continuation (SDK 9.x+)
459
+
460
+ Enable `strictTraceContinuation` to reject incoming traces from other Sentry
461
+ organizations. When enabled, the SDK validates that the `sentry-trace` header’s
462
+ organization ID matches your DSN’s organization before continuing the trace:
463
+
464
+ ```swift
465
+ SentrySDK.start { options in
466
+ options.dsn = "___PUBLIC_DSN___"
467
+ options.tracesSampleRate = 1.0
468
+
469
+ // Only accept traces from your own Sentry organization
470
+ options.strictTraceContinuation = true
471
+ // orgId is auto-parsed from DSN host; override only if needed:
472
+ // options.orgId = "12345"
473
+ }
474
+ ```
475
+
476
+ ---
477
+
478
+ ## Platform Support Matrix
479
+
480
+ | Feature | iOS | tvOS | macOS | Mac Catalyst |
481
+ | ----------------------------- | --------- | --------- | --------- | ------------ |
482
+ | `tracesSampleRate` | Yes | Yes | Yes | Yes |
483
+ | App Start Tracing | Yes | Yes | No | Yes |
484
+ | UIViewController Lifecycle | Yes | Yes | No | Yes |
485
+ | TTID / TTFD | Yes | Yes | No | Yes |
486
+ | Slow & Frozen Frames | Yes | Yes | No | Yes |
487
+ | Network Tracking (URLSession) | Yes | Yes | Yes | Yes |
488
+ | File I/O Tracing | Yes | Yes | Yes | Yes |
489
+ | Core Data Tracing | Yes | Yes | Yes | Yes |
490
+ | User Interaction Tracing | Yes | Yes | No | Yes |
491
+ | SwiftUI (`SentryTracedView`) | Yes (13+) | Yes | Yes | Yes |
492
+ | Prewarmed App Start | Yes (15+) | No | No | No |
493
+ | NSFileManager Swizzling | Yes (18+) | Yes (18+) | Yes (15+) | Yes |
494
+
495
+ ---
496
+
497
+ ## Best Practices
498
+
499
+ - Start with `tracesSampleRate = 1.0` in development; lower to `0.1`–`0.2` in production
500
+ - Use `tracesSampler` (not `tracesSampleRate`) for route-specific or user-tier-based
501
+ sampling
502
+ - Use `bindToScope: true` when starting a transaction so child spans created anywhere in
503
+ the call stack are automatically linked
504
+ - Always `finish()` spans — unfinished spans are silently dropped
505
+ - Use `SentryTracedView` or `.sentryTrace()` from the main `Sentry` module for SwiftUI
506
+ screens on SDK 9.4.1+ (UIViewController tracing doesn’t apply)
507
+ - Call `SentrySDK.reportFullyDisplayed()` only after your async data has been rendered —
508
+ not just loaded
509
+ - Avoid setting `tracePropagationTargets = [".*"]` in production if you make requests to
510
+ third-party services not using Sentry
511
+
512
+ ## Troubleshooting
513
+
514
+ | Issue | Solution |
515
+ | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
516
+ | No transactions appearing | Ensure `tracesSampleRate > 0` or `tracesSampler` returns `> 0` |
517
+ | Spans missing from transactions | Ensure `span.finish()` is called; check `bindToScope: true` for cross-function spans |
518
+ | App start spans not attached | Gap between transaction start and app-start end exceeded 180 seconds; check slow initialization or enable standalone app start tracing |
519
+ | UIViewController tracing missing | Verify `enableSwizzling = true`; check class is not in `swizzleClassNameExcludes` |
520
+ | Network spans not appearing | Requires active scope-bound transaction; verify `enableNetworkTracking = true` and `enableSwizzling = true` |
521
+ | Distributed trace not linking to backend | Propagate both `sentry-trace` AND `baggage` headers; add them to CORS allowlist |
522
+ | File I/O spans missing on iOS 18+ | Enable `enableFileManagerSwizzling = true` (experimental) or use manual `WithSentryTracing` extensions |
523
+ | `SentryTracedView` not available | SDK 9.4.1+: use `import Sentry` with the `Sentry` product; older/deprecated setups may need the `SentrySwiftUI` product |
524
+ | High-cardinality transaction names | UIViewController transactions use class name — expected; custom transactions should use stable names |