@danieljvdm/dev-kit 1.0.2 → 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 (329) hide show
  1. package/README.md +6 -6
  2. package/package.json +1 -1
  3. package/skill-sources.jsonc +2 -33
  4. package/skill-sources.lock.json +15 -117
  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 +10 -70
  45. package/skills/open-pull-request/references/evidence.md +22 -0
  46. package/skills/open-pull-request/references/explanation.md +21 -0
  47. package/skills/open-pull-request/references/publication.md +21 -0
  48. package/skills/sentry/LICENSE +202 -0
  49. package/skills/sentry/LICENSE-UPSTREAM +21 -0
  50. package/skills/sentry/NOTICE +14 -0
  51. package/skills/sentry/SKILL.md +33 -0
  52. package/skills/sentry/references/alert-payloads.md +105 -0
  53. package/skills/sentry/references/alerts.md +17 -0
  54. package/skills/sentry/references/artifacts.md +25 -0
  55. package/skills/sentry/references/auth-token.md +65 -0
  56. package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
  57. package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
  58. package/skills/sentry/references/concepts/crons.md +50 -0
  59. package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
  60. package/skills/sentry/references/concepts/errors.md +40 -0
  61. package/skills/sentry/references/concepts/logging.md +85 -0
  62. package/skills/sentry/references/concepts/metrics.md +49 -0
  63. package/skills/sentry/references/concepts/monitors.md +78 -0
  64. package/skills/sentry/references/concepts/profiling.md +38 -0
  65. package/skills/sentry/references/concepts/reduce-volume.md +49 -0
  66. package/skills/sentry/references/concepts/releases.md +43 -0
  67. package/skills/sentry/references/concepts/session-replay.md +35 -0
  68. package/skills/sentry/references/concepts/tracing.md +54 -0
  69. package/skills/sentry/references/concepts/user-feedback.md +36 -0
  70. package/skills/sentry/references/debug-artifacts/android.md +68 -0
  71. package/skills/sentry/references/debug-artifacts/apple.md +96 -0
  72. package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
  73. package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
  74. package/skills/sentry/references/debug-artifacts/index.md +75 -0
  75. package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
  76. package/skills/sentry/references/debug-artifacts/matching.md +73 -0
  77. package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
  78. package/skills/sentry/references/first-error-setup.md +25 -0
  79. package/skills/sentry/references/instrumentation.md +30 -0
  80. package/skills/sentry/references/issues.md +32 -0
  81. package/skills/sentry/references/new-project.md +17 -0
  82. package/skills/sentry/references/otel-exporter.md +30 -0
  83. package/skills/sentry/references/release-workflow.md +31 -0
  84. package/skills/sentry/references/releases/ci-pipeline.md +214 -0
  85. package/skills/sentry/references/releases/index.md +93 -0
  86. package/skills/sentry/references/releases/suspect-commits.md +155 -0
  87. package/skills/sentry/references/releases/tagging.md +131 -0
  88. package/skills/sentry/references/releases/troubleshooting.md +67 -0
  89. package/skills/sentry/references/sdks/android/crons.md +305 -0
  90. package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
  91. package/skills/sentry/references/sdks/android/index.md +748 -0
  92. package/skills/sentry/references/sdks/android/integrations.md +48 -0
  93. package/skills/sentry/references/sdks/android/logging.md +374 -0
  94. package/skills/sentry/references/sdks/android/metrics.md +288 -0
  95. package/skills/sentry/references/sdks/android/profiling.md +397 -0
  96. package/skills/sentry/references/sdks/android/session-replay.md +406 -0
  97. package/skills/sentry/references/sdks/android/tracing.md +861 -0
  98. package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
  99. package/skills/sentry/references/sdks/browser/index.md +714 -0
  100. package/skills/sentry/references/sdks/browser/logging.md +315 -0
  101. package/skills/sentry/references/sdks/browser/profiling.md +236 -0
  102. package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
  103. package/skills/sentry/references/sdks/browser/tracing.md +561 -0
  104. package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
  105. package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
  106. package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
  107. package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
  108. package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
  109. package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
  110. package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
  111. package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
  112. package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
  113. package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
  114. package/skills/sentry/references/sdks/cocoa/index.md +497 -0
  115. package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
  116. package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
  117. package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
  118. package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
  119. package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
  120. package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
  121. package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
  122. package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
  123. package/skills/sentry/references/sdks/dotnet/index.md +614 -0
  124. package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
  125. package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
  126. package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
  127. package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
  128. package/skills/sentry/references/sdks/elixir/crons.md +371 -0
  129. package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
  130. package/skills/sentry/references/sdks/elixir/index.md +383 -0
  131. package/skills/sentry/references/sdks/elixir/logging.md +239 -0
  132. package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
  133. package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
  134. package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
  135. package/skills/sentry/references/sdks/flutter/index.md +728 -0
  136. package/skills/sentry/references/sdks/flutter/logging.md +387 -0
  137. package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
  138. package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
  139. package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
  140. package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
  141. package/skills/sentry/references/sdks/go/crons.md +270 -0
  142. package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
  143. package/skills/sentry/references/sdks/go/index.md +324 -0
  144. package/skills/sentry/references/sdks/go/logging.md +354 -0
  145. package/skills/sentry/references/sdks/go/metrics.md +273 -0
  146. package/skills/sentry/references/sdks/go/profiling.md +46 -0
  147. package/skills/sentry/references/sdks/go/tracing.md +366 -0
  148. package/skills/sentry/references/sdks/index.md +41 -0
  149. package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
  150. package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
  151. package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
  152. package/skills/sentry/references/sdks/nestjs/index.md +699 -0
  153. package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
  154. package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
  155. package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
  156. package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
  157. package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
  158. package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
  159. package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
  160. package/skills/sentry/references/sdks/nextjs/index.md +491 -0
  161. package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
  162. package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
  163. package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
  164. package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
  165. package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
  166. package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
  167. package/skills/sentry/references/sdks/node/crons.md +432 -0
  168. package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
  169. package/skills/sentry/references/sdks/node/index.md +942 -0
  170. package/skills/sentry/references/sdks/node/logging.md +380 -0
  171. package/skills/sentry/references/sdks/node/metrics.md +278 -0
  172. package/skills/sentry/references/sdks/node/profiling.md +373 -0
  173. package/skills/sentry/references/sdks/node/tracing.md +878 -0
  174. package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
  175. package/skills/sentry/references/sdks/php/crons.md +265 -0
  176. package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
  177. package/skills/sentry/references/sdks/php/index.md +362 -0
  178. package/skills/sentry/references/sdks/php/laravel.md +542 -0
  179. package/skills/sentry/references/sdks/php/logging.md +242 -0
  180. package/skills/sentry/references/sdks/php/metrics.md +193 -0
  181. package/skills/sentry/references/sdks/php/profiling.md +115 -0
  182. package/skills/sentry/references/sdks/php/symfony.md +552 -0
  183. package/skills/sentry/references/sdks/php/tracing.md +516 -0
  184. package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
  185. package/skills/sentry/references/sdks/python/crons.md +218 -0
  186. package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
  187. package/skills/sentry/references/sdks/python/index.md +361 -0
  188. package/skills/sentry/references/sdks/python/logging.md +234 -0
  189. package/skills/sentry/references/sdks/python/metrics.md +154 -0
  190. package/skills/sentry/references/sdks/python/profiling.md +120 -0
  191. package/skills/sentry/references/sdks/python/tracing.md +364 -0
  192. package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
  193. package/skills/sentry/references/sdks/react/index.md +492 -0
  194. package/skills/sentry/references/sdks/react/logging.md +364 -0
  195. package/skills/sentry/references/sdks/react/profiling.md +322 -0
  196. package/skills/sentry/references/sdks/react/react-features.md +1272 -0
  197. package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
  198. package/skills/sentry/references/sdks/react/tracing.md +1415 -0
  199. package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
  200. package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
  201. package/skills/sentry/references/sdks/react-native/index.md +1030 -0
  202. package/skills/sentry/references/sdks/react-native/logging.md +444 -0
  203. package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
  204. package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
  205. package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
  206. package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
  207. package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
  208. package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
  209. package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
  210. package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
  211. package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
  212. package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
  213. package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
  214. package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
  215. package/skills/sentry/references/sdks/ruby/crons.md +184 -0
  216. package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
  217. package/skills/sentry/references/sdks/ruby/index.md +297 -0
  218. package/skills/sentry/references/sdks/ruby/logging.md +168 -0
  219. package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
  220. package/skills/sentry/references/sdks/ruby/migration.md +321 -0
  221. package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
  222. package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
  223. package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
  224. package/skills/sentry/references/sdks/svelte/index.md +467 -0
  225. package/skills/sentry/references/sdks/svelte/logging.md +344 -0
  226. package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
  227. package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
  228. package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
  229. package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
  230. package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
  231. package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
  232. package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
  233. package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
  234. package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
  235. package/skills/sentry/references/search-query-language.md +226 -0
  236. package/skills/sentry/references/semantics/angular.md +7 -0
  237. package/skills/sentry/references/semantics/app.md +28 -0
  238. package/skills/sentry/references/semantics/art.md +17 -0
  239. package/skills/sentry/references/semantics/aws.md +43 -0
  240. package/skills/sentry/references/semantics/browser.md +34 -0
  241. package/skills/sentry/references/semantics/cache.md +12 -0
  242. package/skills/sentry/references/semantics/client.md +8 -0
  243. package/skills/sentry/references/semantics/cloud.md +12 -0
  244. package/skills/sentry/references/semantics/cloudflare.md +23 -0
  245. package/skills/sentry/references/semantics/code.md +11 -0
  246. package/skills/sentry/references/semantics/culture.md +11 -0
  247. package/skills/sentry/references/semantics/db.md +21 -0
  248. package/skills/sentry/references/semantics/device.md +43 -0
  249. package/skills/sentry/references/semantics/error.md +7 -0
  250. package/skills/sentry/references/semantics/event.md +8 -0
  251. package/skills/sentry/references/semantics/exception.md +10 -0
  252. package/skills/sentry/references/semantics/faas.md +19 -0
  253. package/skills/sentry/references/semantics/file.md +8 -0
  254. package/skills/sentry/references/semantics/flag.md +7 -0
  255. package/skills/sentry/references/semantics/gcp.md +16 -0
  256. package/skills/sentry/references/semantics/gen_ai.md +53 -0
  257. package/skills/sentry/references/semantics/general.md +11 -0
  258. package/skills/sentry/references/semantics/graphql.md +9 -0
  259. package/skills/sentry/references/semantics/grpc.md +19 -0
  260. package/skills/sentry/references/semantics/http.md +34 -0
  261. package/skills/sentry/references/semantics/index.md +63 -0
  262. package/skills/sentry/references/semantics/jsonrpc.md +8 -0
  263. package/skills/sentry/references/semantics/jvm.md +12 -0
  264. package/skills/sentry/references/semantics/koa.md +7 -0
  265. package/skills/sentry/references/semantics/logger.md +7 -0
  266. package/skills/sentry/references/semantics/mcp.md +37 -0
  267. package/skills/sentry/references/semantics/mdc.md +7 -0
  268. package/skills/sentry/references/semantics/messaging.md +23 -0
  269. package/skills/sentry/references/semantics/middleware.md +7 -0
  270. package/skills/sentry/references/semantics/navigation.md +9 -0
  271. package/skills/sentry/references/semantics/nel.md +11 -0
  272. package/skills/sentry/references/semantics/network.md +17 -0
  273. package/skills/sentry/references/semantics/os.md +15 -0
  274. package/skills/sentry/references/semantics/otel.md +10 -0
  275. package/skills/sentry/references/semantics/params.md +7 -0
  276. package/skills/sentry/references/semantics/process.md +14 -0
  277. package/skills/sentry/references/semantics/react.md +7 -0
  278. package/skills/sentry/references/semantics/remix.md +7 -0
  279. package/skills/sentry/references/semantics/resource.md +7 -0
  280. package/skills/sentry/references/semantics/rpc.md +10 -0
  281. package/skills/sentry/references/semantics/score.md +10 -0
  282. package/skills/sentry/references/semantics/sentry.md +69 -0
  283. package/skills/sentry/references/semantics/server.md +8 -0
  284. package/skills/sentry/references/semantics/service.md +8 -0
  285. package/skills/sentry/references/semantics/session.md +7 -0
  286. package/skills/sentry/references/semantics/state.md +7 -0
  287. package/skills/sentry/references/semantics/thread.md +8 -0
  288. package/skills/sentry/references/semantics/timber.md +7 -0
  289. package/skills/sentry/references/semantics/trpc.md +8 -0
  290. package/skills/sentry/references/semantics/ui.md +18 -0
  291. package/skills/sentry/references/semantics/url.md +15 -0
  292. package/skills/sentry/references/semantics/user.md +17 -0
  293. package/skills/sentry/references/semantics/user_agent.md +7 -0
  294. package/skills/sentry/references/semantics/vercel.md +42 -0
  295. package/skills/sentry/references/setup-verification.md +39 -0
  296. package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
  297. package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
  298. package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
  299. package/skills/sentry/references/snapshots/index.md +19 -0
  300. package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
  301. package/skills/sentry/references/snapshots/snapshots.md +123 -0
  302. package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
  303. package/skills/testing/LICENSE +21 -0
  304. package/skills/testing/NOTICE +7 -0
  305. package/skills/testing/SKILL.md +13 -19
  306. package/skills/testing/agents/openai.yaml +1 -2
  307. package/skills/testing/references/selection.md +23 -0
  308. package/skills/testing/references/tdd.md +19 -0
  309. package/skills/testing/references/test-design.md +17 -0
  310. package/src/catalog.ts +1 -7
  311. package/skills/build-effect-apis/SKILL.md +0 -81
  312. package/skills/build-effect-apis/agents/openai.yaml +0 -4
  313. package/skills/build-effect-clis/SKILL.md +0 -92
  314. package/skills/build-effect-clis/agents/openai.yaml +0 -4
  315. package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
  316. package/skills/effect-atom-state/SKILL.md +0 -97
  317. package/skills/effect-atom-state/agents/openai.yaml +0 -4
  318. package/skills/effect-ts/SKILL.md +0 -35
  319. package/skills/effect-ts/agents/openai.yaml +0 -4
  320. /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
  321. /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
  322. /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
  323. /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
  324. /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
  325. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
  326. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
  327. /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
  328. /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
  329. /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
@@ -0,0 +1,386 @@
1
+ # Profiling — Sentry React Native SDK
2
+
3
+ > **Minimum SDK:** `@sentry/react-native` ≥ 5.32.0 for basic profiling · ≥ 5.33.0 for
4
+ > JS-only mode · ≥ 7.9.0 (Android) / ≥ 7.12.0 (iOS) for UI Profiling
5
+
6
+ Profiling samples the call stack at regular intervals to surface hot code paths and slow
7
+ functions. The React Native SDK profiles both layers of the stack simultaneously:
8
+ **JavaScript via Hermes** and **native code via platform profilers** (iOS
9
+ Instruments-style on iOS, Android profiling on Android).
10
+
11
+ > Profiling requires tracing to be enabled.
12
+ > Only transactions that are sampled for tracing can be profiled.
13
+
14
+ ---
15
+
16
+ ## Table of Contents
17
+
18
+ 1. [How Profiling Works](#1-how-profiling-works)
19
+ 2. [Basic Setup](#2-basic-setup)
20
+ 3. [Hermes + Platform Profilers](#3-hermes--platform-profilers)
21
+ 4. [UI Profiling (Experimental)](#4-ui-profiling-experimental)
22
+ 5. [What Data Is Captured](#5-what-data-is-captured)
23
+ 6. [Performance Overhead](#6-performance-overhead)
24
+ 7. [Expo Compatibility](#7-expo-compatibility)
25
+ 8. [iOS-Specific Notes](#8-ios-specific-notes)
26
+ 9. [Android-Specific Notes](#9-android-specific-notes)
27
+ 10. [Configuration Reference](#10-configuration-reference)
28
+ 11. [Version Requirements](#11-version-requirements)
29
+ 12. [Known Limitations](#12-known-limitations)
30
+ 13. [Troubleshooting](#13-troubleshooting)
31
+
32
+ ---
33
+
34
+ ## 1. How Profiling Works
35
+
36
+ When a transaction is sampled for profiling, the SDK starts sampling the call stack at a
37
+ fixed interval for the duration of the transaction.
38
+ Profiles are then attached to the transaction and uploaded to Sentry alongside it.
39
+
40
+ ### Two-layer profiling
41
+
42
+ ```
43
+ Transaction starts
44
+
45
+ ├── Hermes profiler ─────── JS stack (your React components, business logic, etc.)
46
+
47
+ └── Platform profilers ──── Native stack (Obj-C/Swift on iOS, Kotlin/Java on Android)
48
+ Bridge calls, native modules, OS calls visible here
49
+ ```
50
+
51
+ Both layers run simultaneously.
52
+ The Sentry UI merges them into a single flame graph so you can trace a slow operation
53
+ from JS → bridge → native.
54
+
55
+ ### Sampling relationship
56
+
57
+ `profilesSampleRate` is **relative to `tracesSampleRate`**, not to all transactions:
58
+
59
+ ```
60
+ All transactions
61
+ └── × tracesSampleRate → Traced transactions
62
+ └── × profilesSampleRate → Profiled transactions
63
+ ```
64
+
65
+ Example: `tracesSampleRate: 0.2` + `profilesSampleRate: 0.5` → 10% of all transactions
66
+ are profiled.
67
+
68
+ ---
69
+
70
+ ## 2. Basic Setup
71
+
72
+ ### Minimum configuration
73
+
74
+ ```typescript
75
+ import * as Sentry from "@sentry/react-native";
76
+
77
+ Sentry.init({
78
+ dsn: "YOUR_DSN",
79
+
80
+ // Tracing must be enabled — profiling only applies to traced transactions
81
+ tracesSampleRate: 1.0,
82
+
83
+ // profilesSampleRate is relative to tracesSampleRate
84
+ // 1.0 = profile every traced transaction (development / testing only)
85
+ profilesSampleRate: 1.0,
86
+ });
87
+ ```
88
+
89
+ ### Recommended production rates
90
+
91
+ ```typescript
92
+ Sentry.init({
93
+ dsn: "YOUR_DSN",
94
+ tracesSampleRate: 0.2, // trace 20% of transactions
95
+ profilesSampleRate: 0.5, // profile 50% of those → 10% of all transactions profiled
96
+ });
97
+ ```
98
+
99
+ > **Production guidance:** Profiling adds overhead (see
100
+ > [Performance Overhead](#6-performance-overhead)). Keep `profilesSampleRate` low in
101
+ > production, especially on lower-end Android devices.
102
+
103
+ ---
104
+
105
+ ## 3. Hermes + Platform Profilers
106
+
107
+ By default, both Hermes (JS) and native platform profilers run simultaneously.
108
+ Use `hermesProfilingIntegration` to control this behavior:
109
+
110
+ ### Default: both JS and native (recommended)
111
+
112
+ ```typescript
113
+ import * as Sentry from "@sentry/react-native";
114
+
115
+ Sentry.init({
116
+ dsn: "YOUR_DSN",
117
+ tracesSampleRate: 1.0,
118
+ profilesSampleRate: 1.0,
119
+ // hermesProfilingIntegration is added automatically
120
+ // platformProfilers defaults to true
121
+ });
122
+ ```
123
+
124
+ ### Explicit configuration
125
+
126
+ ```typescript
127
+ import * as Sentry from "@sentry/react-native";
128
+
129
+ Sentry.init({
130
+ dsn: "YOUR_DSN",
131
+ tracesSampleRate: 1.0,
132
+ profilesSampleRate: 1.0,
133
+ integrations: [
134
+ Sentry.hermesProfilingIntegration({
135
+ platformProfilers: true, // default: true — profile native code alongside Hermes JS
136
+ // Set to false to profile ONLY JavaScript (Hermes), skipping native profiling
137
+ // Useful for isolating JS performance issues or reducing overhead
138
+ // Requires SDK ≥ 5.33.0
139
+ }),
140
+ ],
141
+ });
142
+ ```
143
+
144
+ ### When to disable `platformProfilers`
145
+
146
+ - Isolating a JS-only performance problem (want only the Hermes flame graph)
147
+ - Reducing profiling overhead on lower-end devices
148
+ - Debugging JS event loop stalls where native noise is distracting
149
+
150
+ ---
151
+
152
+ ## 4. UI Profiling (Experimental)
153
+
154
+ Standard profiling is transaction-scoped: it starts and stops with each sampled
155
+ transaction.
156
+ **UI Profiling** is continuous — it profiles the entire app session (or from
157
+ app start), independent of transaction boundaries.
158
+
159
+ Useful for catching performance issues that span multiple transactions or occur outside
160
+ instrumented code paths.
161
+
162
+ > **Experimental feature.** The API is under `_experiments` and may change without a
163
+ > major version bump. Available on Android (SDK ≥ 7.9.0) and iOS (SDK ≥ 7.12.0).
164
+
165
+ ```typescript
166
+ Sentry.init({
167
+ dsn: "YOUR_DSN",
168
+ tracesSampleRate: 1.0,
169
+
170
+ _experiments: {
171
+ profilingOptions: {
172
+ // Fraction of app sessions to profile (0.0–1.0)
173
+ profileSessionSampleRate: 1.0,
174
+
175
+ // "trace" = profile only while a transaction is active
176
+ // (still continuous but gated on active traces)
177
+ lifecycle: "trace",
178
+
179
+ // Start profiling from the very first frame (captures cold start behavior)
180
+ startOnAppStart: true,
181
+ },
182
+ },
183
+ });
184
+ ```
185
+
186
+ > **Migration note:** `androidProfilingOptions` (the previous Android-only experimental
187
+ > flag) is **deprecated**. Use `profilingOptions` inside `_experiments` instead — it
188
+ > covers both platforms.
189
+
190
+ ---
191
+
192
+ ## 5. What Data Is Captured
193
+
194
+ ### In a profile
195
+
196
+ | Data | Description |
197
+ | ---------------------- | ---------------------------------------------------------- |
198
+ | **Call stack samples** | Sampled JS + native stack frames at regular intervals |
199
+ | **Flame graph** | Aggregated view of time spent in each function |
200
+ | **Timeline** | Stack samples over time, correlated with transaction spans |
201
+ | **Thread info** | JS thread, main thread, background threads (native) |
202
+ | **Function names** | From JS source maps + native debug symbols |
203
+
204
+ ### What profiles are linked to
205
+
206
+ Each profile is attached to the transaction that triggered it.
207
+ In the Sentry UI you can:
208
+
209
+ - View the flame graph alongside the transaction’s span waterfall
210
+ - Identify which functions were executing during slow spans
211
+ - Click through from a slow span to the corresponding stack samples
212
+
213
+ ### What is NOT captured
214
+
215
+ - Memory allocations (use Instruments / Android Studio for that)
216
+ - Network traffic details (captured separately by tracing spans)
217
+ - UI rendering frames (slow/frozen frames are a separate tracing metric)
218
+
219
+ ---
220
+
221
+ ## 6. Performance Overhead
222
+
223
+ Profiling adds CPU and memory overhead.
224
+ The Hermes profiler uses a sampling approach (not instrumentation), which keeps overhead
225
+ lower than full instrumentation-based profilers, but it is not zero.
226
+
227
+ | Factor | Impact |
228
+ | --------------------------- | ---------------------------------------------------- |
229
+ | Hermes profiler (JS only) | Low — sampling-based, not instrumented |
230
+ | Platform profilers (native) | Medium — involves OS-level hooks |
231
+ | UI Profiling (continuous) | Higher — always running, not transaction-gated |
232
+ | Sample rate in Sentry.init | Linear — 10% profiled = ~10× less overhead than 100% |
233
+
234
+ **Recommendations:**
235
+
236
+ - Use `profilesSampleRate: 1.0` only in development/testing
237
+ - In production, keep `profilesSampleRate ≤ 0.1` for most apps
238
+ - On lower-end Android devices (< 4GB RAM), consider even lower rates
239
+ - If using UI Profiling experimentally, keep `profileSessionSampleRate` very low in
240
+ production (0.01–0.05)
241
+
242
+ ---
243
+
244
+ ## 7. Expo Compatibility
245
+
246
+ | Feature | Expo Go | Expo (Development Build / EAS Build) |
247
+ | ---------------------------------------------- | ---------------- | ------------------------------------ |
248
+ | Basic profiling (`profilesSampleRate`) | ❌ Not supported | ✅ Supported |
249
+ | Platform profilers (`platformProfilers: true`) | ❌ Not supported | ✅ Supported |
250
+ | UI Profiling (experimental) | ❌ Not supported | ✅ Supported |
251
+
252
+ Profiling requires native modules that are not available in Expo Go.
253
+ You must use a
254
+ [Development Build](https://docs.expo.dev/develop/development-builds/introduction/) or a
255
+ production build via EAS Build.
256
+
257
+ For Expo projects, make sure the Sentry Expo plugin is configured in your
258
+ `app.config.js` / `app.json`:
259
+
260
+ ```json
261
+ {
262
+ "plugins": [
263
+ [
264
+ "@sentry/react-native/expo",
265
+ {
266
+ "organization": "your-org",
267
+ "project": "your-project"
268
+ }
269
+ ]
270
+ ]
271
+ }
272
+ ```
273
+
274
+ ---
275
+
276
+ ## 8. iOS-Specific Notes
277
+
278
+ - **Simulator:** Profiling works on the iOS Simulator but native platform profiler
279
+ results may differ from real device behavior.
280
+ Always validate on a real device before drawing conclusions.
281
+ - **Debug builds:** Symbol names are preserved automatically.
282
+ Profile data is readable without extra configuration.
283
+ - **Release builds:** Native frames will show as addresses without symbols unless you
284
+ upload dSYM files. Configure the Sentry Xcode build phase to upload dSYMs
285
+ automatically.
286
+ - **Bitcode:** If your project uses bitcode (older setups), ensure dSYMs are downloaded
287
+ from App Store Connect and uploaded to Sentry — these are the re-compiled symbols, not
288
+ the ones from your local build.
289
+ - **Cold start profiling:** To capture profiling during app cold start (before the first
290
+ transaction begins), use UI Profiling with `startOnAppStart: true`.
291
+
292
+ ---
293
+
294
+ ## 9. Android-Specific Notes
295
+
296
+ - **Hermes required:** The JS profiler targets the Hermes engine.
297
+ JSC (JavaScriptCore) is not supported for JS profiling.
298
+ Hermes is the default engine for React Native ≥ 0.70 and is required.
299
+ - **Release builds:** Native frame symbols require ProGuard/R8 mapping files to be
300
+ uploaded to Sentry. Configure the Sentry Android Gradle plugin to upload them on each
301
+ build.
302
+ - **Android version:** Platform profiling works on Android 5.0 (API 21) and above — the
303
+ same minimum as React Native itself.
304
+ - **Low-end devices:** Profiling adds measurable overhead on devices with limited RAM or
305
+ slow CPUs. Test on representative low-end devices before enabling in production.
306
+ - **Background processes:** Native platform profilers capture all threads, including
307
+ those from third-party native libraries.
308
+ Expect some noise from libraries that run background threads.
309
+
310
+ ---
311
+
312
+ ## 10. Configuration Reference
313
+
314
+ ### `Sentry.init` options
315
+
316
+ | Option | Type | Default | Description |
317
+ | -------------------- | -------------- | ----------- | ---------------------------------------------------------------------------------- |
318
+ | `profilesSampleRate` | `number` (0–1) | `undefined` | Fraction of _traced_ transactions to also profile. Relative to `tracesSampleRate`. |
319
+ | `tracesSampleRate` | `number` (0–1) | `undefined` | Required for profiling. Fraction of transactions to trace. |
320
+
321
+ ### `hermesProfilingIntegration` options
322
+
323
+ | Option | Type | Default | SDK Version | Description |
324
+ | ------------------- | --------- | ------- | ----------- | ---------------------------------------------------------------------------------------------------- |
325
+ | `platformProfilers` | `boolean` | `true` | ≥ 5.32.0 | Profile native code (Swift/ObjC/Kotlin/Java) alongside Hermes JS. Set `false` for JS-only profiling. |
326
+
327
+ ### `_experiments.profilingOptions` (UI Profiling)
328
+
329
+ | Option | Type | Default | Description |
330
+ | -------------------------- | -------------- | ------- | ---------------------------------------------------------------------- |
331
+ | `profileSessionSampleRate` | `number` (0–1) | — | Fraction of app sessions to profile continuously |
332
+ | `lifecycle` | `"trace"` | — | When to profile. Currently only `"trace"` is supported. |
333
+ | `startOnAppStart` | `boolean` | `false` | Begin profiling at the very first frame, before any transaction starts |
334
+
335
+ ---
336
+
337
+ ## 11. Version Requirements
338
+
339
+ | Feature | Min SDK | Platforms |
340
+ | ----------------------------------------- | ---------------------------------- | ------------ |
341
+ | `profilesSampleRate` (basic profiling) | `5.32.0` | iOS, Android |
342
+ | `platformProfilers: false` (JS-only mode) | `5.33.0` | iOS, Android |
343
+ | UI Profiling (experimental) | `7.9.0` (Android) · `7.12.0` (iOS) | iOS, Android |
344
+
345
+ ---
346
+
347
+ ## 12. Known Limitations
348
+
349
+ - **Expo Go:** Not supported.
350
+ Requires a native build.
351
+ - **JSC engine:** JS profiling only supports Hermes.
352
+ Projects using JavaScriptCore will not get JS profiles.
353
+ - **Web/SSR:** The profiling integration is mobile-only.
354
+ Do not include `hermesProfilingIntegration` in web bundles.
355
+ - **Background transactions:** If a transaction completes in the background (app
356
+ backgrounded mid-transaction), the profile may be truncated.
357
+ - **Profile size limits:** Very long transactions with many stack frames can produce
358
+ large profiles. Sentry may truncate profiles that exceed server-side size limits.
359
+ Keep `finalTimeoutMs` reasonable (default: 600,000 ms).
360
+ - **JS minification in production:** Hermes profile frame names will show minified names
361
+ unless JS source maps are uploaded to Sentry.
362
+ Configure the Sentry Metro plugin.
363
+ - **Native symbol resolution:** Native frames show as hex addresses unless dSYMs (iOS)
364
+ or ProGuard mapping files (Android) are uploaded.
365
+ - **Simulator accuracy:** iOS Simulator profiling does not reflect real device
366
+ performance characteristics, especially for native code.
367
+ Validate on real devices.
368
+ - **UI Profiling API stability:** The `_experiments.profilingOptions` API may change.
369
+ Pin your SDK version if stability matters.
370
+
371
+ ---
372
+
373
+ ## 13. Troubleshooting
374
+
375
+ | Issue | Likely Cause | Solution |
376
+ | -------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
377
+ | No profiles appearing in Sentry | `profilesSampleRate` not set, or `tracesSampleRate` is `0` or unset | Ensure both are set to `> 0`. Check Sentry DSN is correct. |
378
+ | JS frames show as minified names (e.g., `t`, `n`, `r`) | Source maps not uploaded | Configure the Sentry Metro plugin to upload source maps on each build |
379
+ | Native frames show as hex addresses | dSYM (iOS) or ProGuard mapping (Android) not uploaded | Configure Sentry Xcode / Gradle plugin to upload symbols |
380
+ | Profiling causes visible app slowdown | `profilesSampleRate` too high, or `platformProfilers: true` on slow devices | Reduce `profilesSampleRate`; try `platformProfilers: false` |
381
+ | `hermesProfilingIntegration is not a function` | SDK version < 5.32.0 | Upgrade to `@sentry/react-native` ≥ 5.32.0 |
382
+ | Profiling not working in Expo Go | Expo Go lacks native modules | Switch to a Development Build or EAS Build |
383
+ | UI Profiling config has no effect | Using deprecated `androidProfilingOptions` | Migrate to `_experiments.profilingOptions` |
384
+ | Profile data appears but flame graph is mostly “unknown” | Missing both source maps AND native symbols | Upload both source maps and dSYMs/ProGuard files |
385
+ | Profiles appear only for some transactions | Expected behavior — `profilesSampleRate` controls the fraction | This is correct. Increase the rate if you want broader coverage. |
386
+ | App crashes on startup after adding profiling | Hermes not enabled | Verify Hermes is enabled in your React Native config (it’s the default for RN ≥ 0.70) |