@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,248 @@
1
+ # Error Monitoring — Sentry Ruby SDK
2
+
3
+ > Minimum SDK: `sentry-ruby` gem 5.0.0+
4
+
5
+ ## Contents
6
+
7
+ - [Configuration](#configuration)
8
+ - [Code Examples](#code-examples)
9
+ - [Scope API Reference](#scope-api-reference)
10
+ - [Best Practices](#best-practices)
11
+ - [Troubleshooting](#troubleshooting)
12
+
13
+ ## Configuration
14
+
15
+ Key `Sentry.init` options for error monitoring:
16
+
17
+ | Option | Type | Default | Purpose |
18
+ | ------------------------- | --------- | ---------- | --------------------------------------------- |
19
+ | `send_default_pii` | `Boolean` | `false` | Include request headers, IP addresses |
20
+ | `sample_rate` | `Float` | `1.0` | Error event sample rate (0.0–1.0) |
21
+ | `excluded_exceptions` | `Array` | common 4xx | Exception classes to ignore |
22
+ | `include_local_variables` | `Boolean` | `false` | Capture local variables from exception frames |
23
+ | `max_breadcrumbs` | `Integer` | `100` | Max breadcrumbs per event |
24
+ | `before_send` | `Lambda` | `nil` | Mutate or drop error events before sending |
25
+ | `before_breadcrumb` | `Lambda` | `nil` | Mutate or drop breadcrumbs |
26
+
27
+ ## Code Examples
28
+
29
+ ### Automatic capture
30
+
31
+ **Rails** (`sentry-rails`): exceptions in controllers, background jobs, and mailers are
32
+ captured automatically — no extra code needed.
33
+
34
+ **Rack / Sinatra**: register the middleware once and all unhandled exceptions are
35
+ captured:
36
+
37
+ ```ruby
38
+ use Sentry::Rack::CaptureExceptions
39
+ ```
40
+
41
+ ### Manual capture
42
+
43
+ ```ruby
44
+ # Capture any exception
45
+ begin
46
+ risky_operation
47
+ rescue => e
48
+ Sentry.capture_exception(e)
49
+ raise # re-raise if you want normal error handling to continue
50
+ end
51
+
52
+ # Capture a plain message (no exception)
53
+ Sentry.capture_message("payment gateway unreachable", level: :warning)
54
+ ```
55
+
56
+ ### User identification
57
+
58
+ ```ruby
59
+ # Set user context — call in a Rails before_action or Rack middleware
60
+ Sentry.set_user(
61
+ id: current_user.id,
62
+ email: current_user.email,
63
+ username: current_user.username
64
+ )
65
+
66
+ # Clear the user (e.g., on sign-out)
67
+ Sentry.set_user({})
68
+ ```
69
+
70
+ ### Tags, context, and extras
71
+
72
+ ```ruby
73
+ # Tags — indexed, filterable in Sentry search
74
+ Sentry.set_tags(region: "us-east-1", plan: "enterprise")
75
+
76
+ # Context — structured data attached to events (not indexed)
77
+ Sentry.set_context("order", { id: order.id, total: order.total, currency: "USD" })
78
+
79
+ # Extras — deprecated; prefer set_context for structured data
80
+ Sentry.set_extras(raw_payload: payload.inspect)
81
+ ```
82
+
83
+ ### Isolated scope with `with_scope`
84
+
85
+ Changes inside `with_scope` are discarded after the block — ideal for one-off enrichment
86
+ without polluting subsequent events:
87
+
88
+ ```ruby
89
+ Sentry.with_scope do |scope|
90
+ scope.set_tags(component: "checkout", payment_provider: "stripe")
91
+ scope.set_user(id: order.user_id)
92
+ Sentry.capture_exception(e)
93
+ end
94
+ # ← scope changes above do NOT affect subsequent events
95
+ ```
96
+
97
+ ### Persistent scope with `configure_scope`
98
+
99
+ ```ruby
100
+ Sentry.configure_scope do |scope|
101
+ scope.set_tags(app_version: APP_VERSION)
102
+ scope.set_user(id: current_user.id)
103
+ end
104
+ # These values apply to all subsequent events in this request/fiber
105
+ ```
106
+
107
+ ### Rails: per-request context via `before_action`
108
+
109
+ ```ruby
110
+ class ApplicationController < ActionController::Base
111
+ before_action :set_sentry_context
112
+
113
+ private
114
+
115
+ def set_sentry_context
116
+ return unless current_user
117
+ Sentry.set_user(id: current_user.id, email: current_user.email)
118
+ Sentry.set_tags(tenant: current_user.account.slug)
119
+ end
120
+ end
121
+ ```
122
+
123
+ ### Breadcrumbs
124
+
125
+ ```ruby
126
+ crumb = Sentry::Breadcrumb.new(
127
+ category: "auth",
128
+ message: "User #{user.email} authenticated",
129
+ level: "info"
130
+ )
131
+ Sentry.add_breadcrumb(crumb)
132
+ ```
133
+
134
+ Automatic breadcrumbs are recorded when `breadcrumbs_logger` is configured:
135
+
136
+ ```ruby
137
+ config.breadcrumbs_logger = [:active_support_logger, :http_logger, :redis_logger]
138
+ ```
139
+
140
+ | Logger | Captures |
141
+ | ------------------------ | ---------------------------------------------------- |
142
+ | `:active_support_logger` | Rails controller actions, SQL queries, mailer events |
143
+ | `:http_logger` | Outbound Net::HTTP requests |
144
+ | `:redis_logger` | Redis commands |
145
+ | `:sentry_logger` | Ruby `Logger` writes |
146
+
147
+ ### `before_send` hook
148
+
149
+ ```ruby
150
+ Sentry.init do |config|
151
+ config.before_send = lambda do |event, hint|
152
+ # Drop ZeroDivisionError
153
+ if hint[:exception].is_a?(ZeroDivisionError)
154
+ next nil # return nil to discard the event
155
+ end
156
+
157
+ # Custom fingerprint for database errors
158
+ if hint[:exception].is_a?(ActiveRecord::StatementInvalid)
159
+ event.fingerprint = ["database-error", hint[:exception].message.split("\n").first]
160
+ end
161
+
162
+ # Scrub sensitive fields from the request body
163
+ event.request&.data&.delete("credit_card_number")
164
+
165
+ event
166
+ end
167
+ end
168
+ ```
169
+
170
+ ### Exception filters
171
+
172
+ ```ruby
173
+ config.excluded_exceptions += [
174
+ "ActionController::RoutingError",
175
+ "ActiveRecord::RecordNotFound",
176
+ "Rack::QueryParser::InvalidParameterError"
177
+ ]
178
+ ```
179
+
180
+ ### Local variable capture
181
+
182
+ ```ruby
183
+ config.include_local_variables = true
184
+ ```
185
+
186
+ Captures local variables from the frames in the exception backtrace.
187
+ Useful for debugging hard-to-reproduce errors.
188
+ Evaluate privacy implications before enabling in production.
189
+
190
+ ### Custom fingerprinting
191
+
192
+ ```ruby
193
+ # One-off — override grouping for a specific capture
194
+ Sentry.with_scope do |scope|
195
+ scope.set_fingerprint(["database-connection-error"])
196
+ Sentry.capture_exception(e)
197
+ end
198
+
199
+ # Extend default grouping in before_send
200
+ config.before_send = lambda do |event, hint|
201
+ if hint[:exception].is_a?(MyWorker::JobError)
202
+ event.fingerprint = ["{{ default }}", hint[:exception].job_class]
203
+ end
204
+ event
205
+ end
206
+ ```
207
+
208
+ ## Scope API Reference
209
+
210
+ ```ruby
211
+ # Shorthand module methods (operate on current scope)
212
+ Sentry.set_user(id:, email:, username:, ip_address:)
213
+ Sentry.set_tags(key: "value")
214
+ Sentry.set_context("key", { field: "value" })
215
+ Sentry.set_extras(key: "value") # deprecated — prefer set_context
216
+
217
+ # Scope instance methods (inside with_scope / configure_scope blocks)
218
+ scope.set_tags(key: "value")
219
+ scope.set_user(id: "42", email: "user@example.com")
220
+ scope.set_context("key", { field: "value" })
221
+ scope.set_level(:error) # :debug | :info | :warning | :error | :fatal
222
+ scope.set_fingerprint(["my-group"])
223
+ scope.clear
224
+ ```
225
+
226
+ ## Best Practices
227
+
228
+ - Call `Sentry.init` in `config/initializers/sentry.rb` (Rails) or at the top of
229
+ `config.ru` before any middleware
230
+ - Use `Sentry.with_scope` for one-off context; use `configure_scope` for persistent
231
+ request context
232
+ - Set user in a Rails `before_action` so every exception in that request includes user
233
+ info
234
+ - Use `excluded_exceptions` to filter out expected 4xx errors and keep signal-to-noise
235
+ high
236
+ - Enable `include_local_variables` in development/staging; evaluate privacy implications
237
+ for production
238
+
239
+ ## Troubleshooting
240
+
241
+ | Issue | Solution |
242
+ | ----------------------------------------- | -------------------------------------------------------------------------------------------- |
243
+ | Events not appearing | Set `config.debug = true`; check DSN; ensure `Sentry.init` is called before exceptions occur |
244
+ | Rails exceptions missing | Use `sentry-rails` gem — `sentry-ruby` alone does not hook Rails error handlers |
245
+ | Missing request context | Set `config.send_default_pii = true` |
246
+ | `before_send` not called for transactions | Use `before_send_transaction` for performance events |
247
+ | Error captured but wrong user | Ensure `set_user` runs in a `before_action` before the exception is raised |
248
+ | Noise from routing errors | Add `"ActionController::RoutingError"` to `excluded_exceptions` |
@@ -0,0 +1,297 @@
1
+ # Sentry Ruby SDK
2
+
3
+ Opinionated wizard that scans the project and guides through complete Sentry setup.
4
+
5
+ > **Note:** SDK APIs below reflect sentry-ruby v6.6.2. Always verify against
6
+ > [docs.sentry.io/platforms/ruby/](https://docs.sentry.io/platforms/ruby/) before
7
+ > implementing.
8
+
9
+ ---
10
+
11
+ ## Phase 1: Detect
12
+
13
+ ```bash
14
+ # Existing Sentry gems
15
+ grep -i sentry Gemfile 2>/dev/null
16
+
17
+ # Framework
18
+ grep -iE '\brails\b|\bsinatra\b' Gemfile 2>/dev/null
19
+
20
+ # Web server — Puma triggers queue time guidance
21
+ grep -iE '\bpuma\b' Gemfile 2>/dev/null
22
+
23
+ # Background jobs
24
+ grep -iE '\bsidekiq\b|\bresque\b|\bdelayed_job\b' Gemfile 2>/dev/null
25
+
26
+ # Yabeda metrics framework
27
+ grep -iE '\byabeda\b' Gemfile 2>/dev/null
28
+
29
+ # Competitor monitoring tools — triggers migration path if found
30
+ grep -iE '\bappsignal\b|\bhoneybadger\b|\bbugsnag\b|\brollbar\b|\bairbrake\b' Gemfile 2>/dev/null
31
+
32
+ # Scheduled jobs — triggers Crons recommendation
33
+ grep -iE '\bsidekiq-cron\b|\bclockwork\b|\bwhenever\b|\brufus-scheduler\b' Gemfile 2>/dev/null
34
+ grep -rn "Sidekiq::Cron\|Clockwork\|every.*do" config/ lib/ --include="*.rb" 2>/dev/null | head -10
35
+
36
+ # OpenTelemetry tracing — check for SDK + instrumentations
37
+ grep -iE '\bopentelemetry-sdk\b|\bopentelemetry-instrumentation\b' Gemfile 2>/dev/null
38
+ grep -rn "OpenTelemetry::SDK\.configure\|\.use_all\|\.in_span" config/ lib/ app/ --include="*.rb" 2>/dev/null | head -5
39
+
40
+ # Existing metric patterns (StatsD, Datadog, Prometheus)
41
+ grep -rE "(statsd|dogstatsd|prometheus|\.gauge|\.histogram|\.increment|\.timing)" \
42
+ app/ lib/ --include="*.rb" 2>/dev/null | grep -v "_spec\|_test" | head -20
43
+
44
+ # Companion frontend
45
+ cat package.json frontend/package.json web/package.json 2>/dev/null | grep -E '"@sentry|"sentry-'
46
+ ```
47
+
48
+ **Route from what you find:**
49
+
50
+ - **Competitor detected** (`appsignal`, `honeybadger`, `bugsnag`, `rollbar`, `airbrake`)
51
+ → load `./migration.md` first; **delete the competitor initializer** as part of
52
+ migration
53
+ - **Sentry already present** → skip to Phase 2 to configure features
54
+ - **Rails** → use `sentry-rails` + `config/initializers/sentry.rb`
55
+ - **Rack/Sinatra** → `sentry-ruby` + `Sentry::Rack::CaptureExceptions` middleware
56
+ - **Sidekiq** → add `sentry-sidekiq`; recommend Metrics if existing metric patterns
57
+ found
58
+ - **Yabeda detected** → add `sentry-yabeda`; routes Yabeda metrics to Sentry metrics
59
+ - **Puma detected** → queue time capture is automatic (v6.4.0+), but the reverse proxy
60
+ must set `X-Request-Start` header; see `./tracing.md` → “Request Queue Time”
61
+ - **OTel tracing detected** (`opentelemetry-sdk` + instrumentations in Gemfile, or
62
+ `OpenTelemetry::SDK.configure` in source) → use OTLP path:
63
+ `config.otlp.enabled = true`; do **not** set `traces_sample_rate`; Sentry links errors
64
+ to OTel traces automatically
65
+
66
+ ---
67
+
68
+ ## Phase 2: Recommend
69
+
70
+ Lead with a concrete proposal — don’t ask open-ended questions:
71
+
72
+ | Feature | Recommend when … |
73
+ | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
74
+ | Error Monitoring | **Always** |
75
+ | OTLP Integration | OTel tracing detected — **replaces** native Tracing |
76
+ | Tracing | Rails / Sinatra / Rack / any HTTP framework; **skip if OTel tracing detected** |
77
+ | Logging | **Always** — `enable_logs: true` costs nothing |
78
+ | Metrics | Sidekiq present; existing metric lib (StatsD, Prometheus) detected |
79
+ | Profiling | ⚠️ Beta — performance profiling requested; requires `stackprof` or `vernier` gem; **skip if OTel tracing detected** (requires `traces_sample_rate`, incompatible with OTLP) |
80
+ | Crons | Scheduled jobs detected (ActiveJob, Sidekiq-Cron, Clockwork, Whenever) |
81
+
82
+ **OTel tracing detected:** _“I see OpenTelemetry tracing in the project.
83
+ I recommend Sentry’s OTLP integration for tracing (via your existing OTel setup) + Error
84
+ Monitoring + Sentry Logging [+ Metrics/Crons if applicable]. Shall I proceed?”_
85
+
86
+ **No OTel:** _“I recommend Error Monitoring + Tracing + Logging
87
+ [+ Metrics if applicable]. Shall I proceed?”_
88
+
89
+ ---
90
+
91
+ ## Phase 3: Guide
92
+
93
+ ### Install
94
+
95
+ **Rails:**
96
+
97
+ ```ruby
98
+ # Gemfile
99
+ gem "sentry-ruby"
100
+ gem "sentry-rails"
101
+ gem "sentry-sidekiq" # if using Sidekiq
102
+ gem "sentry-resque" # if using Resque
103
+ gem "sentry-delayed_job" # if using DelayedJob
104
+ gem "sentry-yabeda" # if using Yabeda metrics framework
105
+ ```
106
+
107
+ **Rack / Sinatra / plain Ruby:**
108
+
109
+ ```ruby
110
+ gem "sentry-ruby"
111
+ ```
112
+
113
+ Run `bundle install`.
114
+
115
+ ### Framework Integration
116
+
117
+ | Framework / Runtime | Gem | Init location | Auto-instruments |
118
+ | ------------------- | -------------------- | ------------------------------------ | ----------------------------------------------------------- |
119
+ | Rails | `sentry-rails` | `config/initializers/sentry.rb` | Controllers, ActiveRecord, ActiveJob, ActionMailer |
120
+ | Rack / Sinatra | `sentry-ruby` | Top of `config.ru` | Requests (via `Sentry::Rack::CaptureExceptions` middleware) |
121
+ | Sidekiq | `sentry-sidekiq` | Sentry initializer or Sidekiq config | Worker execution → transactions |
122
+ | Resque | `sentry-resque` | Sentry initializer | Worker execution → transactions |
123
+ | DelayedJob | `sentry-delayed_job` | Sentry initializer | Job execution → transactions |
124
+ | Yabeda metrics | `sentry-yabeda` | Sentry initializer | Yabeda metric events → Sentry metrics |
125
+
126
+ ### Init — Rails (`config/initializers/sentry.rb`)
127
+
128
+ ```ruby
129
+ Sentry.init do |config|
130
+ config.dsn = ENV["SENTRY_DSN"]
131
+ config.spotlight = Rails.env.development? # local Spotlight UI; no DSN needed in dev
132
+ config.breadcrumbs_logger = [:active_support_logger, :http_logger]
133
+ config.send_default_pii = true
134
+ config.traces_sample_rate = 1.0 # lower to 0.05–0.2 in production
135
+ config.enable_logs = true
136
+ # Metrics on by default; disable with: config.enable_metrics = false
137
+ end
138
+ ```
139
+
140
+ `sentry-rails` auto-instruments ActionController, ActiveRecord, ActiveJob, ActionMailer.
141
+
142
+ ### Init — Rack / Sinatra
143
+
144
+ ```ruby
145
+ require "sentry-ruby"
146
+
147
+ Sentry.init do |config|
148
+ config.dsn = ENV["SENTRY_DSN"]
149
+ config.spotlight = ENV["RACK_ENV"] == "development"
150
+ config.breadcrumbs_logger = [:sentry_logger, :http_logger]
151
+ config.send_default_pii = true
152
+ config.traces_sample_rate = 1.0
153
+ config.enable_logs = true
154
+ end
155
+
156
+ use Sentry::Rack::CaptureExceptions # in config.ru, before app middleware
157
+ ```
158
+
159
+ ### Init — Sidekiq standalone
160
+
161
+ ```ruby
162
+ require "sentry-ruby"
163
+ require "sentry-sidekiq"
164
+
165
+ Sentry.init do |config|
166
+ config.dsn = ENV["SENTRY_DSN"]
167
+ config.spotlight = ENV.fetch("RAILS_ENV", "development") == "development"
168
+ config.breadcrumbs_logger = [:sentry_logger]
169
+ config.traces_sample_rate = 1.0
170
+ config.enable_logs = true
171
+ end
172
+ ```
173
+
174
+ ### Environment variables
175
+
176
+ ```bash
177
+ SENTRY_DSN=https://xxx@oYYY.ingest.sentry.io/ZZZ
178
+ SENTRY_ENVIRONMENT=production # overrides RAILS_ENV / RACK_ENV
179
+ SENTRY_RELEASE=my-app@1.0.0
180
+ ```
181
+
182
+ ### Feature reference files
183
+
184
+ Walk through features one at a time.
185
+ Load the reference file for each, follow its steps, and verify before moving to the
186
+ next:
187
+
188
+ | Feature | Reference file | Load when … |
189
+ | ---------------- | ----------------------- | -------------------------------------------------------- |
190
+ | Migration | `./migration.md` | Competitor gem found — load **before** installing Sentry |
191
+ | Error Monitoring | `./error-monitoring.md` | Always |
192
+ | Tracing | `./tracing.md` | HTTP handlers / distributed tracing |
193
+ | Logging | `./logging.md` | Structured log capture |
194
+ | Metrics | `./metrics.md` | Sidekiq present; existing metric patterns |
195
+ | Profiling | `./profiling.md` | Performance profiling requested (beta) |
196
+ | Crons | `./crons.md` | Scheduled jobs detected or requested |
197
+
198
+ For each feature: `Read ./<feature>.md`, follow steps exactly, verify it works.
199
+
200
+ ---
201
+
202
+ ## Configuration Reference
203
+
204
+ ### Key `Sentry.init` Options
205
+
206
+ | Option | Type | Default | Purpose |
207
+ | --------------------------- | ------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
208
+ | `dsn` | String | `nil` | SDK disabled if empty; env: `SENTRY_DSN` |
209
+ | `environment` | String | `nil` | e.g., `"production"`; env: `SENTRY_ENVIRONMENT` |
210
+ | `release` | String | `nil` | e.g., `"myapp@1.0.0"`; env: `SENTRY_RELEASE` |
211
+ | `spotlight` | Boolean | `false` | Send events to Spotlight sidecar (local dev, no DSN needed) |
212
+ | `send_default_pii` | Boolean | `false` | Include IP addresses and request headers |
213
+ | `sample_rate` | Float | `1.0` | Error event sample rate (0.0–1.0) |
214
+ | `traces_sample_rate` | Float | `nil` | Transaction sample rate; `nil` disables tracing |
215
+ | `profiles_sample_rate` | Float | `nil` | Profiling rate relative to `traces_sample_rate`; requires `stackprof` or `vernier` |
216
+ | `enable_logs` | Boolean | `false` | Enable Sentry structured Logs |
217
+ | `enable_metrics` | Boolean | `true` | Enable custom metrics (on by default) |
218
+ | `breadcrumbs_logger` | Array | `[]` | Loggers for automatic breadcrumbs (see logging reference) |
219
+ | `max_breadcrumbs` | Integer | `100` | Max breadcrumbs per event |
220
+ | `debug` | Boolean | `false` | Verbose SDK output to stdout |
221
+ | `capture_queue_time` | Boolean | `true` | Record request queue time from `X-Request-Start` header (v6.4.0+, Rails fixed in v6.4.1) |
222
+ | `otlp.enabled` | Boolean | `false` | Route OTel spans to Sentry via OTLP; **do not combine with** `traces_sample_rate` |
223
+ | `otlp.collector_url` | String | `nil` | OTLP HTTP endpoint of an OTel Collector (e.g., `http://localhost:4318/v1/traces`); when set, spans are sent to the collector instead of directly to Sentry |
224
+ | `org_id` | String | `nil` | Explicit org ID; overrides DSN-extracted value; useful for self-hosted/Relay setups (v6.5.0+) |
225
+ | `strict_trace_continuation` | Boolean | `false` | Only continue incoming traces when `sentry-org_id` baggage matches SDK’s org ID; prevents trace stitching from third-party services (v6.5.0+) |
226
+ | `before_send` | Lambda | `nil` | Mutate or drop error events before sending |
227
+ | `before_send_transaction` | Lambda | `nil` | Mutate or drop transaction events before sending |
228
+ | `before_send_log` | Lambda | `nil` | Mutate or drop log events before sending |
229
+
230
+ ### Environment Variables
231
+
232
+ | Variable | Maps to | Purpose |
233
+ | -------------------- | ------------- | ---------------------------------- |
234
+ | `SENTRY_DSN` | `dsn` | Data Source Name |
235
+ | `SENTRY_RELEASE` | `release` | App version (e.g., `my-app@1.0.0`) |
236
+ | `SENTRY_ENVIRONMENT` | `environment` | Deployment environment |
237
+
238
+ Options set in `Sentry.init` override environment variables.
239
+
240
+ ---
241
+
242
+ ## Verification
243
+
244
+ **Local dev (no DSN needed) — Spotlight:**
245
+
246
+ ```bash
247
+ npx @spotlightjs/spotlight # browser UI at http://localhost:8969
248
+ # or stream events to terminal:
249
+ npx @spotlightjs/spotlight tail traces --format json
250
+ ```
251
+
252
+ `config.spotlight = Rails.env.development?` (already in the init block above) routes
253
+ events to the local sidecar automatically.
254
+
255
+ **With a real DSN:**
256
+
257
+ ```ruby
258
+ Sentry.capture_message("Sentry Ruby SDK test")
259
+ ```
260
+
261
+ Nothing appears? Set `config.debug = true` and check stdout.
262
+ Verify DSN format: `https://<key>@o<org>.ingest.sentry.io/<project>`.
263
+
264
+ ---
265
+
266
+ ## Phase 4: Cross-Link
267
+
268
+ ```bash
269
+ cat package.json frontend/package.json web/package.json 2>/dev/null | grep -E '"@sentry|"sentry-'
270
+ ```
271
+
272
+ | Frontend detected | Suggest |
273
+ | ------------------ | -------------------------------------------------------------------------------------------------------------------------- |
274
+ | React / Next.js | [`react`](../react/index.md) |
275
+ | Svelte / SvelteKit | [`svelte`](../svelte/index.md) |
276
+ | Vue | `@sentry/vue` — [docs.sentry.io/platforms/javascript/guides/vue/](https://docs.sentry.io/platforms/javascript/guides/vue/) |
277
+
278
+ For trace stitching between Ruby backend and JS frontend, see `./tracing.md` → “Frontend
279
+ trace stitching”.
280
+
281
+ ---
282
+
283
+ ## Troubleshooting
284
+
285
+ | Issue | Solution |
286
+ | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
287
+ | Events not appearing | `config.debug = true`; verify DSN; ensure `Sentry.init` before first request |
288
+ | Rails exceptions missing | Must use `sentry-rails` — `sentry-ruby` alone doesn’t hook Rails error handlers |
289
+ | No traces (native) | Set `traces_sample_rate > 0`; ensure `sentry-rails` or `Sentry::Rack::CaptureExceptions` |
290
+ | No traces (OTLP) | Verify `opentelemetry-exporter-otlp` gem is installed; do **not** set `traces_sample_rate` when using `otlp.enabled = true` |
291
+ | Sidekiq jobs not traced | Add `sentry-sidekiq` gem |
292
+ | Missing request context | Set `config.send_default_pii = true` |
293
+ | Logs not appearing | Set `config.enable_logs = true`; sentry-ruby ≥ 5.27.0 required |
294
+ | Metrics not appearing | Check `enable_metrics` is not `false`; verify DSN |
295
+ | Events lost on shutdown | `Process.exit!` skips `at_exit` hooks — call `Sentry.flush` explicitly before forced exits |
296
+ | Forking server loses events | Puma/Unicorn fork workers — re-initialize in `on_worker_boot` or `after_fork`; without this, the background worker thread dies in child processes |
297
+ | DSN rejected / events not delivered | Verify DSN format: `https://<key>@o<org>.ingest.sentry.io/<project>`; set `config.debug = true` to see transport errors |