@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,403 @@
1
+ # Profiling — Sentry Next.js SDK
2
+
3
+ > Browser profiling: `@sentry/nextjs` ≥10.27.0 (Beta)\
4
+ > Node.js profiling: `@sentry/profiling-node` — must match `@sentry/nextjs` version
5
+ > exactly
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ The Sentry Next.js SDK supports profiling in **two independent runtimes**:
12
+
13
+ | Runtime | Integration | What it captures |
14
+ | ------------------ | ------------------------------- | ------------------------------------------------------ |
15
+ | **Browser** | `browserProfilingIntegration()` | JS call stacks in Chrome/Edge (Chromium only) at 100Hz |
16
+ | **Node.js server** | `nodeProfilingIntegration()` | V8 CPU call stacks for API routes, RSC, server actions |
17
+
18
+ Both are **opt-in** and **independent from each other**. Each attaches to spans and
19
+ requires tracing to be enabled.
20
+
21
+ ---
22
+
23
+ ## How Profiling Relates to Tracing
24
+
25
+ Profiles attach to **spans** — they are not independent events:
26
+
27
+ 1. `tracesSampleRate` / `tracesSampler` decides whether a request is traced at all
28
+ 2. `profileSessionSampleRate` decides whether the **session** opts into profiling
29
+ 3. A profile is only collected when **both** sampling decisions are “yes”
30
+
31
+ ```
32
+ tracesSampleRate: 0.1 + profileSessionSampleRate: 0.5
33
+ → ~5% of requests will have both a trace AND a profile attached
34
+ ```
35
+
36
+ In `trace` lifecycle mode, you can drill from a slow span in the Performance UI directly
37
+ into a flame graph:
38
+
39
+ ```
40
+ Trace: "POST /api/checkout" (850ms)
41
+ ├── "validateCart" (45ms) → [Profile attached] → shows db driver hot paths
42
+ ├── "processPayment" (620ms)
43
+ └── "updateInventory" (185ms) → [Profile attached] → shows ORM overhead
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Browser Profiling
49
+
50
+ ### Browser Compatibility
51
+
52
+ | Browser | Supported | Notes |
53
+ | ------------------- | --------- | ---------------------------------------- |
54
+ | Chrome / Chromium | ✅ | Primary support |
55
+ | Edge (Chromium) | ✅ | Same engine as Chrome |
56
+ | Firefox | ❌ | Does not implement JS Self-Profiling API |
57
+ | Safari / iOS Safari | ❌ | Does not implement JS Self-Profiling API |
58
+
59
+ > ⚠️ **Sampling bias:** Profile data comes **only** from Chromium users.
60
+ > In unsupported browsers, `browserProfilingIntegration()` silently no-ops with no
61
+ > errors and no overhead.
62
+
63
+ ### Required: `Document-Policy` Header
64
+
65
+ The JS Self-Profiling API is gated behind a required response header.
66
+ Without it, profiling silently fails even in Chromium:
67
+
68
+ ```
69
+ Document-Policy: js-profiling
70
+ ```
71
+
72
+ **Next.js (`next.config.ts`):**
73
+
74
+ ```typescript
75
+ const nextConfig = {
76
+ async headers() {
77
+ return [
78
+ {
79
+ source: "/(.*)",
80
+ headers: [{ key: "Document-Policy", value: "js-profiling" }],
81
+ },
82
+ ];
83
+ },
84
+ };
85
+ ```
86
+
87
+ **Vercel (`vercel.json`):**
88
+
89
+ ```json
90
+ {
91
+ "headers": [
92
+ {
93
+ "source": "/(.*)",
94
+ "headers": [{ "key": "Document-Policy", "value": "js-profiling" }]
95
+ }
96
+ ]
97
+ }
98
+ ```
99
+
100
+ **Netlify (`netlify.toml`):**
101
+
102
+ ```toml
103
+ [[headers]]
104
+ for = "/*"
105
+ [headers.values]
106
+ Document-Policy = "js-profiling"
107
+ ```
108
+
109
+ **Nginx:**
110
+
111
+ ```nginx
112
+ add_header Document-Policy "js-profiling";
113
+ ```
114
+
115
+ > ⚠️ Static hosting that doesn’t support custom headers (some CDNs, GitHub Pages) will
116
+ > prevent browser profiling entirely.
117
+
118
+ ### SDK Configuration — Trace Mode (Recommended)
119
+
120
+ Profiles auto-attach to all sampled spans with no additional code:
121
+
122
+ ```typescript
123
+ // instrumentation-client.ts
124
+ import * as Sentry from "@sentry/nextjs";
125
+
126
+ Sentry.init({
127
+ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
128
+
129
+ integrations: [
130
+ Sentry.browserTracingIntegration(), // Must come BEFORE browserProfilingIntegration
131
+ Sentry.browserProfilingIntegration(),
132
+ ],
133
+
134
+ tracesSampleRate: 1.0,
135
+
136
+ // Session-level sampling: decision made once at page load
137
+ profileSessionSampleRate: process.env.NODE_ENV === "production" ? 0.1 : 1.0,
138
+
139
+ // "trace" = profiles auto-attach to every sampled span
140
+ profileLifecycle: "trace",
141
+ });
142
+ ```
143
+
144
+ ### SDK Configuration — Manual Mode
145
+
146
+ Profile specific flows or code paths explicitly:
147
+
148
+ ```typescript
149
+ // instrumentation-client.ts
150
+ import * as Sentry from "@sentry/nextjs";
151
+
152
+ Sentry.init({
153
+ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
154
+ integrations: [Sentry.browserTracingIntegration(), Sentry.browserProfilingIntegration()],
155
+ tracesSampleRate: 1.0,
156
+ profileSessionSampleRate: 1.0,
157
+ // No profileLifecycle → defaults to manual mode
158
+ });
159
+
160
+ // Explicit start/stop around critical code:
161
+ Sentry.uiProfiler.startProfiler();
162
+ await heavyComputation();
163
+ Sentry.uiProfiler.stopProfiler();
164
+ ```
165
+
166
+ ---
167
+
168
+ ## Node.js Profiling
169
+
170
+ ### Installation
171
+
172
+ ```bash
173
+ npm install @sentry/profiling-node --save
174
+ ```
175
+
176
+ > ⚠️ **Version pinning is required.** `@sentry/profiling-node` must exactly match your
177
+ > `@sentry/nextjs` version.
178
+ > Mismatched versions cause silent failures.
179
+
180
+ ```bash
181
+ # Both should be the same version
182
+ npm install @sentry/nextjs@latest @sentry/profiling-node@latest
183
+ ```
184
+
185
+ ### SDK Configuration
186
+
187
+ ```typescript
188
+ // sentry.server.config.ts
189
+ import * as Sentry from "@sentry/nextjs";
190
+ import { nodeProfilingIntegration } from "@sentry/profiling-node";
191
+
192
+ Sentry.init({
193
+ dsn: process.env.SENTRY_DSN,
194
+
195
+ integrations: [
196
+ nodeProfilingIntegration(), // V8 CpuProfiler native add-on
197
+ ],
198
+
199
+ tracesSampleRate: 1.0,
200
+
201
+ // Session-level: decision made once at process startup
202
+ profileSessionSampleRate: process.env.NODE_ENV === "production" ? 0.1 : 1.0,
203
+
204
+ profileLifecycle: "trace", // auto-attach profiles to spans
205
+ });
206
+ ```
207
+
208
+ > ⚠️ **Do NOT add `nodeProfilingIntegration` to `sentry.edge.config.ts`.** The Edge
209
+ > runtime does not support native add-ons.
210
+
211
+ ### Manual Mode (Node.js)
212
+
213
+ ```typescript
214
+ // sentry.server.config.ts
215
+ Sentry.init({
216
+ integrations: [nodeProfilingIntegration()],
217
+ profileSessionSampleRate: 1.0,
218
+ profileLifecycle: "manual",
219
+ });
220
+
221
+ // Explicit start/stop:
222
+ Sentry.profiler.startProfiler();
223
+ await processHeavyJob();
224
+ Sentry.profiler.stopProfiler();
225
+ ```
226
+
227
+ ### Supported Platforms
228
+
229
+ Precompiled native binaries are available for:
230
+
231
+ | OS | Architecture | Node.js |
232
+ | ------------------- | ------------ | ------- |
233
+ | macOS | x64 | 18–24 |
234
+ | Linux (glibc) | x64 | 18–24 |
235
+ | Linux (musl/Alpine) | x64, ARM64 | 18–24 |
236
+ | Linux | ARM64 | 18–24 |
237
+ | Windows | x64 | 18–24 |
238
+
239
+ > ⚠️ **Deno and Bun are not supported.** The native add-on only works in Node.js.
240
+
241
+ ### Environment Variables
242
+
243
+ ```bash
244
+ # Override binary path (for custom builds)
245
+ SENTRY_PROFILER_BINARY_PATH=/custom/path/profiler.node
246
+
247
+ # Override binary directory
248
+ SENTRY_PROFILER_BINARY_DIR=/path/to/dir
249
+
250
+ # Profiler logging mode:
251
+ # "eager" (default) — faster startProfiler calls, slightly more CPU overhead
252
+ # "lazy" — lower CPU overhead, slightly slower startProfiler
253
+ SENTRY_PROFILER_LOGGING_MODE=lazy node server.js
254
+ ```
255
+
256
+ ---
257
+
258
+ ## Configuration Parameters Reference
259
+
260
+ | Parameter | Applies to | Description |
261
+ | ------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------- |
262
+ | `profileSessionSampleRate` | Browser + Node.js | 0.0–1.0; session-level sampling decision made once (at page load for browser, process start for server) |
263
+ | `profileLifecycle` | Browser + Node.js | `"trace"` = auto-attach to spans; omit for manual mode |
264
+ | `browserProfilingIntegration()` | Browser only | Enables JS Self-Profiling API (Chromium only); must come after `browserTracingIntegration()` |
265
+ | `nodeProfilingIntegration()` | Node.js only | Enables V8 CpuProfiler; must be in `integrations` array in `sentry.server.config.ts` |
266
+
267
+ ### `profileSessionSampleRate` Semantics
268
+
269
+ The profiling sampling decision is made **once per session**:
270
+
271
+ - **Browser:** at page load (`instrumentation-client.ts` init)
272
+ - **Server:** at process startup (`sentry.server.config.ts` init)
273
+
274
+ A “profiling session” either opts in or opts out for its entire lifetime.
275
+ Within a profiling session, every traced span gets a profile attached (in `trace` mode).
276
+
277
+ ### `profileLifecycle` Modes Comparison
278
+
279
+ | Mode | Trigger | Best for |
280
+ | -------------------- | ------------------------------------ | --------------------------------------------------- |
281
+ | `"trace"` | Auto-attached to every sampled span | Broad production coverage; no code changes |
282
+ | `"manual"` (default) | `startProfiler()` / `stopProfiler()` | Specific high-value flows (checkout, heavy renders) |
283
+
284
+ ---
285
+
286
+ ## Production vs Development Recommendations
287
+
288
+ ```typescript
289
+ // Browser (instrumentation-client.ts)
290
+ Sentry.init({
291
+ profileSessionSampleRate: process.env.NODE_ENV === "production" ? 0.1 : 1.0,
292
+ profileLifecycle: "trace",
293
+ });
294
+
295
+ // Server (sentry.server.config.ts)
296
+ Sentry.init({
297
+ integrations: [nodeProfilingIntegration()],
298
+ profileSessionSampleRate: process.env.NODE_ENV === "production" ? 0.1 : 1.0,
299
+ profileLifecycle: "trace",
300
+ });
301
+ ```
302
+
303
+ **Performance impact notes:**
304
+
305
+ - **Browser (100Hz sampling):** Low overhead; runs unobtrusively in production.
306
+ Chrome DevTools profiles at 1000Hz — use Sentry profiling for production coverage,
307
+ DevTools for local deep-dives.
308
+ - **Node.js (V8 CpuProfiler):** The native profiler adds CPU overhead.
309
+ Test with realistic load before deploying `profileSessionSampleRate: 1.0` to
310
+ high-traffic production.
311
+
312
+ > “For high-throughput environments, we recommend testing prior to deployment to ensure
313
+ > that your service’s performance characteristics maintain expectations.”
314
+ > — Sentry docs
315
+
316
+ ### Chrome DevTools Conflict
317
+
318
+ When `browserProfilingIntegration` is active, Chrome DevTools profiler shows Sentry’s
319
+ overhead mixed into rendering work.
320
+ Disable the integration when doing local DevTools profiling sessions.
321
+
322
+ ---
323
+
324
+ ## Complete Setup Example
325
+
326
+ ```typescript
327
+ // instrumentation-client.ts (Browser)
328
+ import * as Sentry from "@sentry/nextjs";
329
+
330
+ Sentry.init({
331
+ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
332
+ integrations: [Sentry.browserTracingIntegration(), Sentry.browserProfilingIntegration()],
333
+ tracesSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
334
+ profileSessionSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
335
+ profileLifecycle: "trace",
336
+ });
337
+ ```
338
+
339
+ ```typescript
340
+ // sentry.server.config.ts (Node.js)
341
+ import * as Sentry from "@sentry/nextjs";
342
+ import { nodeProfilingIntegration } from "@sentry/profiling-node";
343
+
344
+ Sentry.init({
345
+ dsn: process.env.SENTRY_DSN,
346
+ integrations: [nodeProfilingIntegration()],
347
+ tracesSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
348
+ profileSessionSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
349
+ profileLifecycle: "trace",
350
+ });
351
+ ```
352
+
353
+ ```typescript
354
+ // sentry.edge.config.ts (Edge — NO profiling)
355
+ import * as Sentry from "@sentry/nextjs";
356
+
357
+ Sentry.init({
358
+ dsn: process.env.SENTRY_DSN,
359
+ tracesSampleRate: 0.1,
360
+ // nodeProfilingIntegration NOT added — Edge runtime doesn't support native add-ons
361
+ });
362
+ ```
363
+
364
+ ```typescript
365
+ // next.config.ts — required Document-Policy header for browser profiling
366
+ import { withSentryConfig } from "@sentry/nextjs";
367
+
368
+ const nextConfig = {
369
+ async headers() {
370
+ return [
371
+ {
372
+ source: "/(.*)",
373
+ headers: [{ key: "Document-Policy", value: "js-profiling" }],
374
+ },
375
+ ];
376
+ },
377
+ };
378
+
379
+ export default withSentryConfig(nextConfig, {
380
+ org: process.env.SENTRY_ORG,
381
+ project: process.env.SENTRY_PROJECT,
382
+ authToken: process.env.SENTRY_AUTH_TOKEN,
383
+ tunnelRoute: "/monitoring",
384
+ });
385
+ ```
386
+
387
+ ---
388
+
389
+ ## Troubleshooting
390
+
391
+ | Issue | Solution |
392
+ | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
393
+ | No browser profiles appearing in Sentry | Verify `Document-Policy: js-profiling` is present on document responses (check Network tab in DevTools) |
394
+ | Browser profiles only from some users | Expected — only Chromium users are profiled; Firefox/Safari silently no-op |
395
+ | Chrome DevTools shows inflated rendering times | Disable `browserProfilingIntegration()` during local DevTools profiling sessions |
396
+ | `profileSessionSampleRate` has no effect (browser) | Ensure `browserProfilingIntegration()` is listed **after** `browserTracingIntegration()` in `integrations` |
397
+ | No server profiles appearing | Verify `@sentry/profiling-node` version exactly matches `@sentry/nextjs` version |
398
+ | `nodeProfilingIntegration` import error | Check `@sentry/profiling-node` is installed and versions match; don’t import it in `sentry.edge.config.ts` |
399
+ | Profiles not linked to spans | Confirm `profileLifecycle: "trace"` is set and `tracesSampleRate` > 0; both must be set |
400
+ | High CPU usage on server | Lower `profileSessionSampleRate` to 0.1 or 0.05; use `SENTRY_PROFILER_LOGGING_MODE=lazy` |
401
+ | Native add-on fails to load (Alpine/musl Linux) | Ensure the `@sentry/profiling-node` version supports your OS/arch — check the supported platforms table |
402
+ | Flame graphs show minified names | Upload source maps via `withSentryConfig` in `next.config.ts` with `authToken` and project credentials |
403
+ | Profiles on static host not working | Browser profiling requires the `Document-Policy` header — verify your host supports custom response headers |