@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,714 @@
1
+ # Sentry Browser SDK
2
+
3
+ Opinionated wizard that scans your project and guides you through complete Sentry setup
4
+ for browser JavaScript — vanilla JS, jQuery, static sites, WordPress, and any JS project
5
+ without a framework-specific SDK.
6
+
7
+ > **Note:** SDK versions and APIs below reflect `@sentry/browser` ≥10.0.0. Always verify
8
+ > against
9
+ > [docs.sentry.io/platforms/javascript/](https://docs.sentry.io/platforms/javascript/)
10
+ > before implementing.
11
+
12
+ ---
13
+
14
+ ## Phase 1: Detect
15
+
16
+ **CRITICAL — Check for frameworks first.** Framework-specific SDKs provide significantly
17
+ better coverage and must be recommended before proceeding with `@sentry/browser`.
18
+
19
+ ### Step 1A: Framework Detection (Redirect If Found)
20
+
21
+ ```bash
22
+ # Check for React
23
+ cat package.json 2>/dev/null | grep -E '"react"'
24
+
25
+ # Check for Next.js
26
+ cat package.json 2>/dev/null | grep '"next"'
27
+
28
+ # Check for Vue
29
+ cat package.json 2>/dev/null | grep '"vue"'
30
+
31
+ # Check for Angular
32
+ cat package.json 2>/dev/null | grep '"@angular/core"'
33
+
34
+ # Check for Svelte / SvelteKit
35
+ cat package.json 2>/dev/null | grep -E '"svelte"|"@sveltejs/kit"'
36
+
37
+ # Check for Remix
38
+ cat package.json 2>/dev/null | grep -E '"@remix-run/react"|"@remix-run/node"'
39
+
40
+ # Check for Nuxt
41
+ cat package.json 2>/dev/null | grep '"nuxt"'
42
+
43
+ # Check for Astro
44
+ cat package.json 2>/dev/null | grep '"astro"'
45
+
46
+ # Check for Ember
47
+ cat package.json 2>/dev/null | grep '"ember-source"'
48
+
49
+ # Check for Node.js server frameworks (wrong SDK entirely)
50
+ cat package.json 2>/dev/null | grep -E '"express"|"fastify"|"@nestjs/core"|"koa"'
51
+ ```
52
+
53
+ **If a framework is detected, stop and redirect:**
54
+
55
+ | Framework detected | Redirect to |
56
+ | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
57
+ | `next` | Load [`nextjs`](../nextjs/index.md) skill — **do not proceed here** |
58
+ | `react` (without Next.js) | Load [`react`](../react/index.md) skill — **do not proceed here** |
59
+ | `vue` | Suggest `@sentry/vue` — see [docs.sentry.io/platforms/javascript/guides/vue/](https://docs.sentry.io/platforms/javascript/guides/vue/) |
60
+ | `@angular/core` | Suggest `@sentry/angular` — see [docs.sentry.io/platforms/javascript/guides/angular/](https://docs.sentry.io/platforms/javascript/guides/angular/) |
61
+ | `@sveltejs/kit` | Load [`svelte`](../svelte/index.md) skill — **do not proceed here** |
62
+ | `svelte` (SPA, no kit) | Suggest `@sentry/svelte` — see [docs.sentry.io/platforms/javascript/guides/svelte/](https://docs.sentry.io/platforms/javascript/guides/svelte/) |
63
+ | `@remix-run` | Suggest `@sentry/remix` — see [docs.sentry.io/platforms/javascript/guides/remix/](https://docs.sentry.io/platforms/javascript/guides/remix/) |
64
+ | `nuxt` | Suggest `@sentry/nuxt` — see [docs.sentry.io/platforms/javascript/guides/nuxt/](https://docs.sentry.io/platforms/javascript/guides/nuxt/) |
65
+ | `astro` | Suggest `@sentry/astro` — see [docs.sentry.io/platforms/javascript/guides/astro/](https://docs.sentry.io/platforms/javascript/guides/astro/) |
66
+ | `ember-source` | Suggest `@sentry/ember` — see [docs.sentry.io/platforms/javascript/guides/ember/](https://docs.sentry.io/platforms/javascript/guides/ember/) |
67
+ | `express` / `fastify` / `@nestjs/core` | This is a Node.js server — load [`node`](../node/index.md) or [`nestjs`](../nestjs/index.md) skill |
68
+
69
+ > **Why redirect matters:** Framework SDKs add router-aware transactions, error
70
+ > boundaries, component tracking, and often SSR coverage.
71
+ > Using `@sentry/browser` directly in a React or Next.js app loses all of that.
72
+
73
+ Only continue with `@sentry/browser` if **no framework is detected**.
74
+
75
+ ### Step 1B: Installation Method Detection
76
+
77
+ ```bash
78
+ # Check if there's a package.json at all (bundler environment)
79
+ ls package.json 2>/dev/null
80
+
81
+ # Check package manager
82
+ ls package-lock.json yarn.lock pnpm-lock.yaml bun.lockb 2>/dev/null
83
+
84
+ # Check build tool
85
+ ls vite.config.ts vite.config.js webpack.config.js rollup.config.js esbuild.config.js 2>/dev/null
86
+ cat package.json 2>/dev/null | grep -E '"vite"|"webpack"|"rollup"|"esbuild"'
87
+
88
+ # Check for CMS or static site indicators
89
+ ls wp-config.php wp-content/ 2>/dev/null # WordPress
90
+ ls _config.yml _config.yaml 2>/dev/null # Jekyll
91
+ ls config.toml 2>/dev/null # Hugo
92
+ ls .eleventy.js 2>/dev/null # Eleventy
93
+
94
+ # Check for existing Sentry
95
+ cat package.json 2>/dev/null | grep '"@sentry/'
96
+ grep -r "sentry-cdn.com\|js.sentry-cdn.com" . --include="*.html" -l 2>/dev/null | head -3
97
+ ```
98
+
99
+ **What to determine:**
100
+
101
+ | Question | Impact |
102
+ | ------------------------------------------------ | ------------------------------------------- |
103
+ | `package.json` exists + bundler? | → **Path A: npm install** |
104
+ | WordPress, Shopify, static HTML, no npm? | → **Path B: Loader Script** |
105
+ | Script tags only, no Loader Script access? | → **Path C: CDN bundle** |
106
+ | Already has `@sentry/browser`? | Skip install, go straight to feature config |
107
+ | Build tool is Vite / webpack / Rollup / esbuild? | Source maps plugin to configure |
108
+
109
+ ---
110
+
111
+ ## Phase 2: Recommend
112
+
113
+ Present a recommendation based on what you found.
114
+ Lead with a concrete proposal, don’t ask open-ended questions.
115
+
116
+ **Recommended (core coverage):**
117
+
118
+ - ✅ **Error Monitoring** — always; captures unhandled errors and promise rejections
119
+ - ✅ **Tracing** — recommended for any interactive site; tracks page load and user
120
+ interactions
121
+ - ✅ **Session Replay** — recommended for user-facing apps; records sessions around
122
+ errors
123
+
124
+ **Optional (enhanced observability):**
125
+
126
+ - ⚡ **User Feedback** — capture reports directly from users after errors
127
+ - ⚡ **Logging** — structured logs via `Sentry.logger.*`; requires npm or CDN logs bundle
128
+ (not available via Loader Script)
129
+ - ⚡ **Profiling** — JS Self-Profiling API; beta, Chromium-only, requires
130
+ `Document-Policy: js-profiling` response header
131
+
132
+ **Feature recommendation logic:**
133
+
134
+ | Feature | Recommend when … |
135
+ | ---------------- | ---------------------------------------------------------------------------------------- |
136
+ | Error Monitoring | **Always** — non-negotiable baseline |
137
+ | Tracing | **Always** for interactive pages — page load + navigation spans are high-value |
138
+ | Session Replay | User-facing app, support flows, or checkout pages |
139
+ | User Feedback | Support-focused app; want in-app bug reports with screenshots |
140
+ | Logging | Structured log search or log-to-trace correlation needed; **npm path only** |
141
+ | Profiling | Performance-critical, Chromium-only app; `Document-Policy: js-profiling` header required |
142
+
143
+ **Installation path recommendation:**
144
+
145
+ | Scenario | Recommended path |
146
+ | -------------------------------------------- | ------------------------------------------------------------------ |
147
+ | Project has `package.json` + bundler | **Path A (npm)** — full features, source maps, tree-shaking |
148
+ | WordPress, Shopify, Squarespace, static HTML | **Path B (Loader Script)** — zero build tooling, always up to date |
149
+ | Static HTML without Loader Script access | **Path C (CDN bundle)** — manual `<script>` tag |
150
+
151
+ Propose: _“I recommend setting up Error Monitoring + Tracing + Session Replay using Path
152
+ A (npm). Want me to also add Logging or User Feedback?”_
153
+
154
+ ---
155
+
156
+ ## Phase 3: Guide
157
+
158
+ ### Path A: npm / yarn / pnpm (Recommended — Bundler Projects)
159
+
160
+ #### Install
161
+
162
+ ```bash
163
+ npm install @sentry/browser --save
164
+ # or
165
+ yarn add @sentry/browser
166
+ # or
167
+ pnpm add @sentry/browser
168
+ ```
169
+
170
+ #### Create `src/instrument.ts`
171
+
172
+ Sentry must initialize **before any other code runs**. Put `Sentry.init()` in a
173
+ dedicated sidecar file:
174
+
175
+ ```typescript
176
+ import * as Sentry from "@sentry/browser";
177
+
178
+ Sentry.init({
179
+ dsn: import.meta.env.VITE_SENTRY_DSN, // Adjust per build tool (see table below)
180
+ environment: import.meta.env.MODE,
181
+ release: import.meta.env.VITE_APP_VERSION, // inject at build time
182
+
183
+ dataCollection: {
184
+ // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
185
+ // https://docs.sentry.io/platforms/javascript/configuration/options/#dataCollection
186
+ // userInfo: false,
187
+ // httpBodies: [],
188
+ },
189
+
190
+ integrations: [
191
+ Sentry.browserTracingIntegration(),
192
+ Sentry.replayIntegration({
193
+ maskAllText: true,
194
+ blockAllMedia: true,
195
+ }),
196
+ ],
197
+
198
+ // Tracing
199
+ tracesSampleRate: 1.0, // lower to 0.1–0.2 in production
200
+ tracePropagationTargets: ["localhost", /^https:\/\/yourapi\.io/],
201
+
202
+ // Session Replay
203
+ replaysSessionSampleRate: 0.1,
204
+ replaysOnErrorSampleRate: 1.0,
205
+
206
+ enableLogs: true,
207
+ });
208
+ ```
209
+
210
+ **DSN environment variable by build tool:**
211
+
212
+ | Build Tool | Variable Name | Access in code |
213
+ | -------------- | ----------------- | --------------------------------- |
214
+ | Vite | `VITE_SENTRY_DSN` | `import.meta.env.VITE_SENTRY_DSN` |
215
+ | Custom webpack | `SENTRY_DSN` | `process.env.SENTRY_DSN` |
216
+ | esbuild | `SENTRY_DSN` | `process.env.SENTRY_DSN` |
217
+ | Rollup | `SENTRY_DSN` | `process.env.SENTRY_DSN` |
218
+
219
+ #### Entry Point Setup
220
+
221
+ Import `instrument.ts` as the **very first import** in your entry file:
222
+
223
+ ```typescript
224
+ // src/main.ts or src/index.ts
225
+ import "./instrument"; // ← MUST be first
226
+
227
+ // ... rest of your app
228
+ ```
229
+
230
+ #### Source Maps Setup (Strongly Recommended)
231
+
232
+ Without source maps, stack traces show minified code.
233
+ Set up the build plugin to upload source maps automatically:
234
+
235
+ > **No dedicated browser wizard:** There is no `npx @sentry/wizard -i browser` flag.
236
+ > The closest is `npx @sentry/wizard@latest -i sourcemaps` which configures source map
237
+ > upload only for an already-initialized SDK.
238
+
239
+ **Vite (`vite.config.ts`):**
240
+
241
+ ```typescript
242
+ import { defineConfig } from "vite";
243
+ import { sentryVitePlugin } from "@sentry/vite-plugin";
244
+
245
+ export default defineConfig({
246
+ build: { sourcemap: "hidden" },
247
+ plugins: [
248
+ // sentryVitePlugin MUST be last
249
+ sentryVitePlugin({
250
+ org: process.env.SENTRY_ORG,
251
+ project: process.env.SENTRY_PROJECT,
252
+ authToken: process.env.SENTRY_AUTH_TOKEN,
253
+ }),
254
+ ],
255
+ });
256
+ ```
257
+
258
+ **webpack (`webpack.config.js`):**
259
+
260
+ ```javascript
261
+ const { sentryWebpackPlugin } = require("@sentry/webpack-plugin");
262
+
263
+ module.exports = {
264
+ devtool: "hidden-source-map",
265
+ plugins: [
266
+ sentryWebpackPlugin({
267
+ org: process.env.SENTRY_ORG,
268
+ project: process.env.SENTRY_PROJECT,
269
+ authToken: process.env.SENTRY_AUTH_TOKEN,
270
+ }),
271
+ ],
272
+ };
273
+ ```
274
+
275
+ **Rollup (`rollup.config.js`):**
276
+
277
+ ```javascript
278
+ import { sentryRollupPlugin } from "@sentry/rollup-plugin";
279
+
280
+ export default {
281
+ output: { sourcemap: "hidden" },
282
+ plugins: [
283
+ sentryRollupPlugin({
284
+ org: process.env.SENTRY_ORG,
285
+ project: process.env.SENTRY_PROJECT,
286
+ authToken: process.env.SENTRY_AUTH_TOKEN,
287
+ }),
288
+ ],
289
+ };
290
+ ```
291
+
292
+ **esbuild (`build.js`):**
293
+
294
+ ```javascript
295
+ const { sentryEsbuildPlugin } = require("@sentry/esbuild-plugin");
296
+
297
+ require("esbuild").build({
298
+ entryPoints: ["src/index.ts"],
299
+ bundle: true,
300
+ sourcemap: "hidden",
301
+ plugins: [
302
+ sentryEsbuildPlugin({
303
+ org: process.env.SENTRY_ORG,
304
+ project: process.env.SENTRY_PROJECT,
305
+ authToken: process.env.SENTRY_AUTH_TOKEN,
306
+ }),
307
+ ],
308
+ });
309
+ ```
310
+
311
+ > ⚠️ esbuild plugin does **not** fully support `splitting: true`. Use `sentry-cli`
312
+ > instead if code splitting is enabled.
313
+
314
+ **Using `sentry-cli` (any toolchain / CI):**
315
+
316
+ ```bash
317
+ # After your build step:
318
+ npx @sentry/cli sourcemaps inject ./dist
319
+ npx @sentry/cli sourcemaps upload ./dist
320
+ ```
321
+
322
+ Add `.env` for auth (never commit):
323
+
324
+ ```bash
325
+ SENTRY_AUTH_TOKEN=sntrys_...
326
+ SENTRY_ORG=my-org-slug
327
+ SENTRY_PROJECT=my-project-slug
328
+ ```
329
+
330
+ ---
331
+
332
+ ### Path B: Loader Script (WordPress, Static Sites, Shopify, Squarespace)
333
+
334
+ **Best for:** Sites without a build system.
335
+ The Loader Script is a single `<script>` tag that lazily loads the full SDK, always
336
+ stays up to date via Sentry’s CDN, and buffers errors before the SDK loads.
337
+
338
+ **Get the Loader Script:** Sentry UI → **Settings → Projects → (your project) → SDK
339
+ Setup → Loader Script**
340
+
341
+ Copy the generated tag and place it as the **first script on every page**:
342
+
343
+ ```html
344
+ <!DOCTYPE html>
345
+ <html>
346
+ <head>
347
+ <!-- Configure BEFORE the loader tag -->
348
+ <script>
349
+ window.sentryOnLoad = function () {
350
+ Sentry.init({
351
+ // DSN is already configured in the loader URL
352
+ tracesSampleRate: 1.0,
353
+ replaysSessionSampleRate: 0.1,
354
+ replaysOnErrorSampleRate: 1.0,
355
+ });
356
+ };
357
+ </script>
358
+
359
+ <!-- Loader Script FIRST — before all other scripts -->
360
+ <script src="https://js.sentry-cdn.com/YOUR_PUBLIC_KEY.min.js" crossorigin="anonymous"></script>
361
+ </head>
362
+ ...
363
+ </html>
364
+ ```
365
+
366
+ **Loader loading modes:**
367
+
368
+ | Mode | How | When SDK loads |
369
+ | ------------------ | ---------------------------------- | ------------------------------------ |
370
+ | **Lazy (default)** | Nothing extra | On first error or manual Sentry call |
371
+ | **Eager** | Add `data-lazy="no"` to `<script>` | After all page scripts finish |
372
+ | **Manual** | Call `Sentry.forceLoad()` | Whenever you call it |
373
+
374
+ **Safe to call before SDK loads (buffered):**
375
+
376
+ - `Sentry.captureException()`
377
+ - `Sentry.captureMessage()`
378
+ - `Sentry.captureEvent()`
379
+ - `Sentry.addBreadcrumb()`
380
+ - `Sentry.withScope()`
381
+
382
+ **For other methods, use `Sentry.onLoad()`:**
383
+
384
+ ```html
385
+ <script>
386
+ window.Sentry &&
387
+ Sentry.onLoad(function () {
388
+ Sentry.setUser({ id: "123" });
389
+ });
390
+ </script>
391
+ ```
392
+
393
+ **Set release via global (optional):**
394
+
395
+ ```html
396
+ <script>
397
+ window.SENTRY_RELEASE = { id: "my-app@1.0.0" };
398
+ </script>
399
+ ```
400
+
401
+ **Loader Script limitations:**
402
+
403
+ - ❌ No `Sentry.logger.*` (logging) — npm path only
404
+ - ❌ No framework-specific features (React ErrorBoundary, Vue Router tracking, etc.)
405
+ - ❌ Tracing headers only added to fetch calls made after SDK loads
406
+ - ❌ Version changes take a few minutes to propagate via CDN cache
407
+ - ⚠️ Use `defer` (not `async`) on all other scripts when using the loader
408
+
409
+ **CSP requirements:**
410
+
411
+ ```
412
+ script-src: https://browser.sentry-cdn.com https://js.sentry-cdn.com
413
+ connect-src: *.sentry.io
414
+ ```
415
+
416
+ ---
417
+
418
+ ### Path C: CDN Bundles (Manual Script Tags)
419
+
420
+ **Best for:** Pages that can’t use the Loader Script but need synchronous loading.
421
+
422
+ Pick the bundle that matches your feature needs and place it **before all other
423
+ scripts**:
424
+
425
+ **Errors only (minimal footprint):**
426
+
427
+ ```html
428
+ <script
429
+ src="https://browser.sentry-cdn.com/10.42.0/bundle.min.js"
430
+ integrity="sha384-L/HYBH2QCeLyXhcZ0hPTxWMnyMJburPJyVoBmRk4OoilqrOWq5kU4PNTLFYrCYPr"
431
+ crossorigin="anonymous"
432
+ ></script>
433
+ ```
434
+
435
+ **Errors + Tracing:**
436
+
437
+ ```html
438
+ <script
439
+ src="https://browser.sentry-cdn.com/10.42.0/bundle.tracing.min.js"
440
+ integrity="sha384-DIqcfVcfIewrWiNWfVZcGWExO5v673hkkC5ixJnmAprAfJajpUDEAL35QgkOB5gw"
441
+ crossorigin="anonymous"
442
+ ></script>
443
+ ```
444
+
445
+ **Errors + Session Replay:**
446
+
447
+ ```html
448
+ <script
449
+ src="https://browser.sentry-cdn.com/10.42.0/bundle.replay.min.js"
450
+ integrity="sha384-sbojwIJFpv9duIzsI9FRm87g7pB15s4QwJS1m1xMSOdV1CF3pwgrPPEu38Em7M9+"
451
+ crossorigin="anonymous"
452
+ ></script>
453
+ ```
454
+
455
+ **Errors + Tracing + Replay (recommended full setup):**
456
+
457
+ ```html
458
+ <script
459
+ src="https://browser.sentry-cdn.com/10.42.0/bundle.tracing.replay.min.js"
460
+ integrity="sha384-oo2U4zsTxaHSPXJEnXtaQPeS4Z/qbTqoBL9xFgGxvjJHKQjIrB+VRlu97/iXBtzw"
461
+ crossorigin="anonymous"
462
+ ></script>
463
+ ```
464
+
465
+ **Errors + Tracing + Replay + User Feedback:**
466
+
467
+ ```html
468
+ <script
469
+ src="https://browser.sentry-cdn.com/10.42.0/bundle.tracing.replay.feedback.min.js"
470
+ integrity="sha384-SmHU39Qs9cua0KLtq3A6gis1/cqM1nZ6fnGzlvWAPiwhBDO5SmwFQV65BBpJnB3n"
471
+ crossorigin="anonymous"
472
+ ></script>
473
+ ```
474
+
475
+ **Full bundle (all features):**
476
+
477
+ ```html
478
+ <script
479
+ src="https://browser.sentry-cdn.com/10.42.0/bundle.tracing.replay.feedback.logs.metrics.min.js"
480
+ integrity="sha384-gOjSzRxwpXpy0FlT6lg/AVhagqrsUrOWUO7jm6TJwuZ9YVHtYK0MBA2hW2FGrIGl"
481
+ crossorigin="anonymous"
482
+ ></script>
483
+ ```
484
+
485
+ **CDN bundle variants summary:**
486
+
487
+ | Bundle | Features | When to use |
488
+ | ---------------------------------------------------- | ------------------ | -------------------------- |
489
+ | `bundle.min.js` | Errors only | Absolute minimum footprint |
490
+ | `bundle.tracing.min.js` | + Tracing | Performance monitoring |
491
+ | `bundle.replay.min.js` | + Replay | Session recording |
492
+ | `bundle.tracing.replay.min.js` | + Tracing + Replay | Full observability |
493
+ | `bundle.tracing.replay.feedback.min.js` | + User Feedback | + in-app feedback widget |
494
+ | `bundle.logs.metrics.min.js` | + Logs + Metrics | Structured logs (CDN) |
495
+ | `bundle.tracing.replay.feedback.logs.metrics.min.js` | Everything | Max coverage |
496
+
497
+ **Initialize after the script tag:**
498
+
499
+ ```html
500
+ <script>
501
+ Sentry.init({
502
+ dsn: "https://YOUR_KEY@o0.ingest.sentry.io/YOUR_PROJECT",
503
+ environment: "production",
504
+ release: "my-app@1.0.0",
505
+ integrations: [
506
+ Sentry.browserTracingIntegration(),
507
+ Sentry.replayIntegration({
508
+ maskAllText: true,
509
+ blockAllMedia: true,
510
+ }),
511
+ ],
512
+ tracesSampleRate: 1.0,
513
+ tracePropagationTargets: ["localhost", /^https:\/\/yourapi\.io/],
514
+ replaysSessionSampleRate: 0.1,
515
+ replaysOnErrorSampleRate: 1.0,
516
+ });
517
+ </script>
518
+ ```
519
+
520
+ **CDN CSP requirements:**
521
+
522
+ ```
523
+ script-src: https://browser.sentry-cdn.com https://js.sentry-cdn.com
524
+ connect-src: *.sentry.io
525
+ ```
526
+
527
+ ---
528
+
529
+ ### For Each Agreed Feature
530
+
531
+ Walk through features one at a time.
532
+ Load the reference file, follow its steps, verify before moving on:
533
+
534
+ | Feature | Reference | Load when … |
535
+ | ---------------- | ----------------------- | ----------------------------------------------------------------- |
536
+ | Error Monitoring | `./error-monitoring.md` | Always (baseline) |
537
+ | Tracing | `./tracing.md` | Page load / API call tracing |
538
+ | Session Replay | `./session-replay.md` | User-facing app |
539
+ | Logging | `./logging.md` | Structured log search; npm or CDN logs bundle (not Loader Script) |
540
+ | Profiling | `./profiling.md` | Performance-critical, Chromium-only |
541
+ | User Feedback | `./user-feedback.md` | Capture user reports after errors |
542
+
543
+ For each feature: `Read ./<feature>.md`, follow steps exactly, verify it works.
544
+
545
+ ---
546
+
547
+ ## Configuration Reference
548
+
549
+ ### Key `Sentry.init()` Options
550
+
551
+ | Option | Type | Default | Notes |
552
+ | -------------------------- | -------------------- | -------------- | ------------------------------------------------------------------------------------------------------- |
553
+ | `dsn` | `string` | — | **Required.** SDK disabled when empty |
554
+ | `environment` | `string` | `"production"` | e.g., `"staging"`, `"development"` |
555
+ | `release` | `string` | — | e.g., `"my-app@1.0.0"` or git SHA — links errors to releases |
556
+ | `sendDefaultPii` | `boolean` | `false` | Includes IP addresses and request headers. **Will be deprecated in v11** — use `dataCollection` instead |
557
+ | `dataCollection` | `object` | — | Fine-grained control over collected data (v10.54+). See table below |
558
+ | `tracesSampleRate` | `number` | — | 0–1; `1.0` in dev, `0.1–0.2` in prod |
559
+ | `tracesSampler` | `function` | — | Per-transaction sampling; overrides rate |
560
+ | `tracePropagationTargets` | `(string\|RegExp)[]` | same-origin | Outgoing URLs that receive distributed tracing headers |
561
+ | `replaysSessionSampleRate` | `number` | — | Fraction of all sessions recorded |
562
+ | `replaysOnErrorSampleRate` | `number` | — | Fraction of error sessions recorded |
563
+ | `enableLogs` | `boolean` | `false` | Enable `Sentry.logger.*` API (npm or CDN logs bundle; not Loader Script) |
564
+ | `attachStackTrace` | `boolean` | `false` | Stack traces on `captureMessage()` calls |
565
+ | `maxBreadcrumbs` | `number` | `100` | Breadcrumbs stored per event |
566
+ | `debug` | `boolean` | `false` | Verbose SDK output to console |
567
+ | `tunnel` | `string` | — | Proxy URL to bypass ad blockers |
568
+ | `ignoreErrors` | `(string\|RegExp)[]` | `[]` | Drop errors matching these patterns |
569
+ | `denyUrls` | `(string\|RegExp)[]` | `[]` | Drop errors from scripts at these URLs |
570
+ | `allowUrls` | `(string\|RegExp)[]` | `[]` | Only capture errors from these script URLs |
571
+ | `spotlight` | `boolean\|string` | `false` | Forward events to Spotlight local dev overlay |
572
+
573
+ ### Browser-Specific Options
574
+
575
+ | Option | Type | Default | Notes |
576
+ | --------------------------- | --------- | ------- | ---------------------------------------- |
577
+ | `cdnBaseUrl` | `string` | — | Base URL for lazy-loading integrations |
578
+ | `skipBrowserExtensionCheck` | `boolean` | `false` | Skip check for browser extension context |
579
+
580
+ ### `dataCollection` Option (v10.54+)
581
+
582
+ Fine-grained control over what data the SDK collects.
583
+ Replaces the simple `sendDefaultPii` boolean with granular settings.
584
+ When omitted, falls back to `sendDefaultPii` for backwards compatibility.
585
+
586
+ | Field | Type | Default | Notes |
587
+ | --------------------- | ------------------------------------------------------ | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
588
+ | `userInfo` | `boolean` | `true` | Auto-populate `user.*` fields from instrumentation |
589
+ | `cookies` | `boolean \| { allow: string[] } \| { deny: string[] }` | `true` | Cookie collection; `true` = all (filtered), `false` = none, `allow`/`deny` = specific keys |
590
+ | `httpHeaders` | `{ request?, response? }` | `{ request: true, response: true }` | HTTP header collection; each can be `boolean` or `allow`/`deny` object |
591
+ | `httpBodies` | `string[]` | `["incomingRequest", "outgoingRequest", "incomingResponse", "outgoingResponse"]` | HTTP body types to collect (when `dataCollection` is explicitly set) |
592
+ | `queryParams` | `boolean \| { allow: string[] } \| { deny: string[] }` | `true` | Query parameter collection with sensitive value filtering |
593
+ | `genAI` | `{ inputs?, outputs? }` | `{ inputs: true, outputs: true }` | Generative AI input/output recording |
594
+ | `stackFrameVariables` | `boolean` | `true` | Capture local variable values in stack frames |
595
+ | `frameContextLines` | `number` | `5` | Source code context lines around stack frames |
596
+
597
+ **Example:**
598
+
599
+ ```typescript
600
+ Sentry.init({
601
+ dsn: "...",
602
+ dataCollection: {
603
+ userInfo: true,
604
+ cookies: { deny: ["session_id", "auth_token"] },
605
+ httpHeaders: {
606
+ request: { deny: ["authorization", "cookie"] },
607
+ response: true,
608
+ },
609
+ queryParams: { allow: ["utm_source", "utm_campaign"] },
610
+ },
611
+ });
612
+ ```
613
+
614
+ ### `window.SENTRY_RELEASE` Global (CDN / Loader Path)
615
+
616
+ Set the release version before the SDK loads:
617
+
618
+ ```html
619
+ <script>
620
+ window.SENTRY_RELEASE = { id: "my-app@1.0.0" };
621
+ </script>
622
+ ```
623
+
624
+ ---
625
+
626
+ ## Verification
627
+
628
+ Trigger test events to confirm Sentry is receiving data:
629
+
630
+ **npm / CDN path:**
631
+
632
+ ```html
633
+ <!-- Add temporarily to your page -->
634
+ <button onclick="throw new Error('Sentry Browser Test Error')">Test Error</button>
635
+ ```
636
+
637
+ **Performance verification (npm path):**
638
+
639
+ ```javascript
640
+ import * as Sentry from "@sentry/browser";
641
+
642
+ Sentry.startSpan({ name: "Test Span", op: "test" }, () => {
643
+ // your operation
644
+ });
645
+ ```
646
+
647
+ **Manual capture:**
648
+
649
+ ```javascript
650
+ Sentry.captureException(new Error("Manual test"));
651
+ Sentry.captureMessage("Manual test message", "info");
652
+ ```
653
+
654
+ Check the Sentry dashboard:
655
+
656
+ - **Issues** → error appears within seconds
657
+ - **Traces** → page load transaction visible
658
+ - **Replays** → session recording visible after page interaction
659
+ - **Logs** → structured log entries if logging enabled (npm or CDN logs bundle)
660
+
661
+ Set `debug: true` in `Sentry.init()` and check the browser console if nothing appears.
662
+
663
+ ---
664
+
665
+ ## Phase 4: Cross-Link
666
+
667
+ After completing browser setup, check for a companion backend missing Sentry coverage:
668
+
669
+ ```bash
670
+ ls ../backend ../server ../api ../go ../python 2>/dev/null
671
+ cat ../go.mod 2>/dev/null | head -3
672
+ cat ../requirements.txt ../pyproject.toml 2>/dev/null | head -3
673
+ cat ../Gemfile 2>/dev/null | head -3
674
+ cat ../pom.xml 2>/dev/null | grep '<artifactId>' | head -3
675
+ cat ../composer.json 2>/dev/null | head -3
676
+ ```
677
+
678
+ If a backend exists without Sentry configured, suggest the matching skill:
679
+
680
+ | Backend detected | Suggest skill |
681
+ | --------------------------------------------- | ---------------------------------------------------------------------------- |
682
+ | Go (`go.mod`) | [`go`](../go/index.md) |
683
+ | Python (`requirements.txt`, `pyproject.toml`) | [`python`](../python/index.md) |
684
+ | Ruby (`Gemfile`) | [`ruby`](../ruby/index.md) |
685
+ | PHP (`composer.json`) | [`php`](../php/index.md) |
686
+ | .NET (`*.csproj`, `*.sln`) | [`dotnet`](../dotnet/index.md) |
687
+ | Java (`pom.xml`, `build.gradle`) | See [docs.sentry.io/platforms/java/](https://docs.sentry.io/platforms/java/) |
688
+ | Node.js (Express, Fastify) | [`node`](../node/index.md) |
689
+ | NestJS (`@nestjs/core`) | [`nestjs`](../nestjs/index.md) |
690
+
691
+ ---
692
+
693
+ ## Troubleshooting
694
+
695
+ | Issue | Solution |
696
+ | -------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
697
+ | Events not appearing | Set `debug: true`, check DSN, open browser console for SDK errors |
698
+ | Source maps not working | Build in production mode (`npm run build`); verify `SENTRY_AUTH_TOKEN` is set |
699
+ | Minified stack traces | Source maps not uploading — check build plugin config; run `npx @sentry/wizard@latest -i sourcemaps` |
700
+ | CDN bundle not found | Check version number in URL; see [browser.sentry-cdn.com](https://browser.sentry-cdn.com/) for latest |
701
+ | SRI integrity error | Hash mismatch — re-copy the full `<script>` tag including `integrity` attribute from this skill |
702
+ | Loader Script not firing | Verify it’s the **first** `<script>` on the page; check for CSP errors in console |
703
+ | Tracing not working with Loader | Fetch calls before SDK loads won’t be traced — wrap early calls in `Sentry.onLoad()` |
704
+ | `sentryOnLoad` not called | Must define `window.sentryOnLoad` **before** the loader `<script>` tag |
705
+ | Logging not available | `Sentry.logger.*` requires npm or a CDN bundle with `.logs.` in its name — not supported via Loader Script |
706
+ | Profiling not working | Verify `Document-Policy: js-profiling` header on document responses; Chromium-only |
707
+ | Ad blockers dropping events | Set `tunnel: "/sentry-tunnel"` and add a server-side relay endpoint |
708
+ | Session replay not recording | Confirm `replayIntegration()` is in init; check `replaysSessionSampleRate` > 0 |
709
+ | Replay CSP errors | Add `worker-src 'self' blob:` and `child-src 'self' blob:` to your CSP |
710
+ | `tracePropagationTargets` not matching | Check regex escaping; default is same-origin only |
711
+ | Events blocked by browser extension | Add `denyUrls: [/chrome-extension:\/\//]` to filter extension errors |
712
+ | High event volume | Lower `sampleRate` (errors) and `tracesSampleRate` from `1.0` in production |
713
+ | Source maps uploaded after deploy | Source maps must be uploaded **before** errors occur — integrate into CI/CD |
714
+ | esbuild splitting conflict | `sentryEsbuildPlugin` doesn’t support `splitting: true` — use `sentry-cli` instead |