@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,456 @@
1
+ # Error Monitoring — Sentry Svelte/SvelteKit SDK
2
+
3
+ > Minimum SDK: `@sentry/sveltekit` ≥7.0.0+ / `@sentry/svelte` ≥7.0.0+
4
+
5
+ ---
6
+
7
+ ## How Automatic Capture Works
8
+
9
+ | Layer | Mechanism | Fires when … |
10
+ | ---------------------- | ---------------------------------------------- | ------------------------------------------------------------------------ |
11
+ | **Client (both)** | `globalHandlersIntegration` | `window.onerror`, unhandled `Promise` rejections |
12
+ | **Client (both)** | `browserApiErrorsIntegration` | Errors thrown in `setTimeout`, `setInterval`, `requestAnimationFrame` |
13
+ | **Server (SvelteKit)** | `handleErrorWithSentry()` in `hooks.server.ts` | Any unhandled error in a server hook, load function, or route handler |
14
+ | **Server (SvelteKit)** | `sentryHandle()` | Instruments incoming requests; captures errors from the request pipeline |
15
+ | **Client (SvelteKit)** | `handleErrorWithSentry()` in `hooks.client.ts` | Any unhandled navigation or client-side error SvelteKit surfaces |
16
+
17
+ No configuration beyond the `Sentry.init()` call is required for baseline error capture.
18
+
19
+ ---
20
+
21
+ ## SvelteKit Error Hooks
22
+
23
+ ### `hooks.client.ts`
24
+
25
+ ```typescript
26
+ import * as Sentry from "@sentry/sveltekit";
27
+
28
+ Sentry.init({
29
+ dsn: import.meta.env.PUBLIC_SENTRY_DSN ?? import.meta.env.VITE_SENTRY_DSN,
30
+ dataCollection: {
31
+ // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit:
32
+ // https://docs.sentry.io/platforms/javascript/guides/sveltekit/configuration/options/#dataCollection
33
+ // userInfo: false,
34
+ // httpBodies: [],
35
+ },
36
+ });
37
+
38
+ // Sentry captures first; your handler runs after
39
+ const myErrorHandler = ({ error, event }: { error: unknown; event: unknown }) => {
40
+ console.error("Client error:", error);
41
+ };
42
+
43
+ export const handleError = Sentry.handleErrorWithSentry(myErrorHandler);
44
+
45
+ // Works with no argument too:
46
+ // export const handleError = Sentry.handleErrorWithSentry();
47
+ ```
48
+
49
+ ### `hooks.server.ts`
50
+
51
+ ```typescript
52
+ import * as Sentry from "@sentry/sveltekit";
53
+ import { sequence } from "@sveltejs/kit/hooks";
54
+
55
+ // Sentry.init() is in instrumentation.server.ts (modern) or here (legacy)
56
+
57
+ const myErrorHandler = ({ error, event }: { error: unknown; event: unknown }) => {
58
+ console.error("Server error:", error);
59
+ };
60
+
61
+ export const handleError = Sentry.handleErrorWithSentry(myErrorHandler);
62
+
63
+ // sentryHandle() instruments requests and creates root spans
64
+ export const handle = Sentry.sentryHandle();
65
+
66
+ // Composing multiple handles:
67
+ // export const handle = sequence(Sentry.sentryHandle(), authHandle, logHandle);
68
+ ```
69
+
70
+ ### `handleErrorWithSentry()` callback signature
71
+
72
+ ```typescript
73
+ export const handleError = Sentry.handleErrorWithSentry(
74
+ (input: {
75
+ error: unknown;
76
+ event: RequestEvent | NavigationEvent;
77
+ status?: number;
78
+ message?: string;
79
+ }) => {
80
+ // Your logic runs AFTER Sentry has already captured the error
81
+ },
82
+ );
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Manual Error Capture
88
+
89
+ ```typescript
90
+ import * as Sentry from "@sentry/sveltekit"; // or "@sentry/svelte"
91
+
92
+ // Capture an Error object
93
+ try {
94
+ await riskyOperation();
95
+ } catch (err) {
96
+ Sentry.captureException(err);
97
+ }
98
+
99
+ // Capture with extra context
100
+ try {
101
+ await riskyOperation();
102
+ } catch (err) {
103
+ Sentry.captureException(err, {
104
+ tags: { feature: "checkout", region: "eu" },
105
+ extra: { cartId: "abc-123", itemCount: 3 },
106
+ level: "error", // "fatal" | "error" | "warning" | "info" | "debug"
107
+ });
108
+ }
109
+
110
+ // Plain message (not tied to an exception)
111
+ Sentry.captureMessage("User exceeded rate limit", "warning");
112
+
113
+ // Isolated scope — doesn't pollute global state
114
+ Sentry.withScope((scope) => {
115
+ scope.setTag("component", "PaymentForm");
116
+ scope.setUser({ id: "42", email: "user@example.com" });
117
+ Sentry.captureException(new Error("Payment failed"));
118
+ });
119
+ ```
120
+
121
+ ---
122
+
123
+ ## Context Enrichment
124
+
125
+ ### User Context
126
+
127
+ ```typescript
128
+ // Set globally — persists until cleared
129
+ Sentry.setUser({
130
+ id: "user-123",
131
+ email: "jane@example.com",
132
+ username: "jdoe",
133
+ ip_address: "{{ auto }}", // auto-infer from request
134
+ plan: "enterprise", // custom fields accepted
135
+ });
136
+
137
+ // Clear on logout
138
+ Sentry.setUser(null);
139
+ ```
140
+
141
+ ### Tags (searchable, indexed)
142
+
143
+ ```typescript
144
+ Sentry.setTag("release.channel", "beta");
145
+ Sentry.setTags({
146
+ "feature.flag": "new-checkout",
147
+ region: "us-east-1",
148
+ version: "2.1.0",
149
+ });
150
+ ```
151
+
152
+ Key constraints: ≤32 chars, alphanumeric + `_`, `.`, `:`, `-`. Value: ≤200 chars, no
153
+ newlines.
154
+
155
+ ### Context Objects (structured, non-indexed)
156
+
157
+ ```typescript
158
+ Sentry.setContext("cart", {
159
+ itemCount: 3,
160
+ totalAmount: 99.99,
161
+ promoCode: "SAVE20",
162
+ });
163
+
164
+ // Clear context
165
+ Sentry.setContext("cart", null);
166
+ ```
167
+
168
+ ### Extra Data (simple key-value)
169
+
170
+ ```typescript
171
+ Sentry.setExtra("requestBody", { amount: 99.99, currency: "USD" });
172
+ Sentry.setExtras({ cartItems: 3, promoCode: "SAVE20" });
173
+ ```
174
+
175
+ ### `initialScope` (set once at init)
176
+
177
+ ```typescript
178
+ Sentry.init({
179
+ dsn: "...",
180
+ initialScope: {
181
+ tags: { appVersion: "1.0.0", deploymentId: "abc123" },
182
+ user: { id: "anonymous" },
183
+ },
184
+ // Or as a callback:
185
+ // initialScope: (scope) => { scope.setTag("buildId", BUILD_ID); return scope; },
186
+ });
187
+ ```
188
+
189
+ ---
190
+
191
+ ## Breadcrumbs
192
+
193
+ ```typescript
194
+ // Manual breadcrumb
195
+ Sentry.addBreadcrumb({
196
+ message: "User submitted checkout form",
197
+ category: "ui.click",
198
+ level: "info", // "fatal"|"error"|"warning"|"log"|"info"|"debug"
199
+ type: "user", // "default"|"debug"|"error"|"info"|"navigation"|"http"|"query"|"ui"|"user"
200
+ data: { formId: "checkout-v2", itemCount: 3 },
201
+ });
202
+
203
+ // Auth breadcrumb
204
+ Sentry.addBreadcrumb({
205
+ category: "auth",
206
+ message: "Authenticated user " + user.email,
207
+ level: "info",
208
+ });
209
+ ```
210
+
211
+ **Auto-captured breadcrumbs (browser):** DOM clicks, keyboard events, XHR/fetch
212
+ requests, console calls, navigation changes.
213
+
214
+ ### Filter breadcrumbs with `beforeBreadcrumb`
215
+
216
+ ```typescript
217
+ Sentry.init({
218
+ beforeBreadcrumb(breadcrumb, hint) {
219
+ // Drop verbose console breadcrumbs
220
+ if (breadcrumb.category === "console") return null;
221
+ // Sanitize navigation data
222
+ if (breadcrumb.category === "navigation" && breadcrumb.data?.to) {
223
+ breadcrumb.data.to = breadcrumb.data.to.replace(/\/user\/\d+/, "/user/[id]");
224
+ }
225
+ return breadcrumb;
226
+ },
227
+ });
228
+ ```
229
+
230
+ ---
231
+
232
+ ## `beforeSend` — Filter and Scrub Events
233
+
234
+ ```typescript
235
+ Sentry.init({
236
+ // Drop known noise
237
+ ignoreErrors: ["ResizeObserver loop limit exceeded", /^Network Error$/, /ChunkLoadError/],
238
+
239
+ // Only capture errors from your own scripts
240
+ allowUrls: [/https:\/\/myapp\.com/],
241
+
242
+ // Scrub PII, drop by condition
243
+ beforeSend(event, hint) {
244
+ // Drop non-Error objects
245
+ if (hint.originalException && !(hint.originalException instanceof Error)) {
246
+ return null;
247
+ }
248
+ // Scrub email from user context
249
+ if (event.user?.email) {
250
+ event.user.email = "[filtered]";
251
+ }
252
+ // Drop 404 errors
253
+ if (event.tags?.statusCode === "404") {
254
+ return null;
255
+ }
256
+ return event;
257
+ },
258
+ });
259
+ ```
260
+
261
+ ---
262
+
263
+ ## Svelte Component Tracking (`@sentry/svelte` only)
264
+
265
+ Component tracking wraps Svelte’s lifecycle hooks and emits spans for each component’s
266
+ `init` and `update` phases.
267
+
268
+ ### Automatic (preprocessor — all components)
269
+
270
+ ```javascript
271
+ // svelte.config.js
272
+ import { withSentryConfig } from "@sentry/svelte";
273
+
274
+ export default withSentryConfig(
275
+ { compilerOptions: {} },
276
+ {
277
+ componentTracking: {
278
+ trackComponents: true, // true = all, or array: ["Navbar", "LoginForm"]
279
+ trackInit: true, // emit ui.svelte.init spans
280
+ trackUpdates: true, // emit ui.svelte.update spans
281
+ },
282
+ },
283
+ );
284
+ ```
285
+
286
+ Spans emitted:
287
+
288
+ - `ui.svelte.init` — component instantiation → `onMount`
289
+ - `ui.svelte.update` — `beforeUpdate` → `afterUpdate`
290
+
291
+ ### Manual (per-component)
292
+
293
+ ```svelte
294
+ <script>
295
+ import * as Sentry from "@sentry/svelte";
296
+
297
+ Sentry.trackComponent({
298
+ trackInit: true,
299
+ trackUpdates: false,
300
+ componentName: "PaymentForm", // optional; auto-detected if omitted
301
+ });
302
+ </script>
303
+ ```
304
+
305
+ ---
306
+
307
+ ## SvelteKit `+error.svelte` Integration
308
+
309
+ SvelteKit renders `+error.svelte` for handled errors.
310
+ You can surface the Sentry event ID in the error page for user feedback:
311
+
312
+ ```svelte
313
+ <!-- src/routes/+error.svelte -->
314
+ <script>
315
+ import { page } from "$app/stores";
316
+ import * as Sentry from "@sentry/sveltekit";
317
+
318
+ // Show user feedback dialog tied to the last captured event
319
+ function showFeedback() {
320
+ const eventId = Sentry.lastEventId();
321
+ if (eventId) {
322
+ Sentry.showReportDialog({ eventId });
323
+ }
324
+ }
325
+ </script>
326
+
327
+ <h1>{$page.status}: {$page.error?.message}</h1>
328
+ <button onclick={showFeedback}>Report this issue</button>
329
+ ```
330
+
331
+ ---
332
+
333
+ ## Error Boundaries (Svelte 5+)
334
+
335
+ > Requires Svelte 5 + `@sveltejs/kit` ≥2.x. Catches errors thrown in child components
336
+ > before they propagate to the page.
337
+
338
+ `<svelte:boundary>` prevents a component subtree from crashing the whole page and lets
339
+ you report the error to Sentry and optionally display a fallback UI:
340
+
341
+ ```svelte
342
+ <script>
343
+ import * as Sentry from "@sentry/sveltekit";
344
+ </script>
345
+
346
+ <svelte:boundary onerror={(error, reset) => {
347
+ Sentry.captureException(error);
348
+ }}>
349
+ <RiskyComponent />
350
+
351
+ {#snippet failed(error, reset)}
352
+ <p>Something went wrong.</p>
353
+ <button onclick={reset}>Try again</button>
354
+ {/snippet}
355
+ </svelte:boundary>
356
+ ```
357
+
358
+ **Tips:**
359
+
360
+ - `onerror` fires synchronously before Svelte tears down the subtree — safe to call
361
+ `captureException` here
362
+ - `reset` re-mounts the boundary subtree; pair it with `Sentry.lastEventId()` +
363
+ `Sentry.showReportDialog()` for user feedback
364
+ - Nest multiple boundaries to isolate independent widgets — a failure in one won’t
365
+ affect others
366
+ - Works in both client and server-rendered pages; server-side errors are still captured
367
+ via `hooks.server.ts`
368
+
369
+ ```svelte
370
+ <!-- With user feedback dialog on reset -->
371
+ <svelte:boundary onerror={(error) => {
372
+ Sentry.captureException(error);
373
+ }}>
374
+ <DataWidget />
375
+
376
+ {#snippet failed(error, reset)}
377
+ <button onclick={() => {
378
+ const eventId = Sentry.lastEventId();
379
+ if (eventId) Sentry.showReportDialog({ eventId });
380
+ reset();
381
+ }}>Report &amp; retry</button>
382
+ {/snippet}
383
+ </svelte:boundary>
384
+ ```
385
+
386
+ ---
387
+
388
+ ## Scopes: `withScope` vs Persistent Context
389
+
390
+ > Minimum SDK: `@sentry/sveltekit` ≥8.0.0 for isolation scopes; ≥10.32.0 for
391
+ > `getGlobalScope`/`getIsolationScope`
392
+
393
+ | API | Lifetime | Use case |
394
+ | ---------------------------- | ------------------------------ | ---------------------------------------- |
395
+ | `Sentry.withScope(fn)` | Isolated to callback | One-off context for a single capture |
396
+ | `Sentry.getIsolationScope()` | Per-request (SvelteKit server) | Persistent context scoped to one request |
397
+ | `Sentry.getGlobalScope()` | Entire process lifetime | App-wide context (version tags, env) |
398
+
399
+ > **Note:** `Sentry.configureScope()` is deprecated since SDK v8. Use
400
+ > `getIsolationScope()` or `getGlobalScope()` instead.
401
+
402
+ ```typescript
403
+ // withScope — temporary, doesn't affect subsequent events
404
+ Sentry.withScope((scope) => {
405
+ scope.setTag("component", "checkout");
406
+ Sentry.captureException(err); // only this event gets the tag
407
+ });
408
+
409
+ // Set persistent scope data (per-request in SvelteKit server)
410
+ const scope = Sentry.getIsolationScope();
411
+ scope.setTag("tenant", session.tenantId);
412
+ scope.setUser({ id: session.userId });
413
+
414
+ // App-wide context (set once at startup)
415
+ const globalScope = Sentry.getGlobalScope();
416
+ globalScope.setTag("app.version", "1.0.0");
417
+ ```
418
+
419
+ ---
420
+
421
+ ## Svelte vs SvelteKit: Key Differences
422
+
423
+ | Concern | Standalone Svelte | SvelteKit |
424
+ | ------------------ | --------------------------------------- | --------------------------------------- |
425
+ | Error hook files | None — errors via `window.onerror` only | `hooks.client.ts` + `hooks.server.ts` |
426
+ | Server-side errors | N/A (client-only) | Auto via `handleErrorWithSentry()` |
427
+ | Component errors | `window.onerror` catches uncaught ones | Same + SvelteKit route error handling |
428
+ | `+error.svelte` | N/A | Add `Sentry.lastEventId()` for feedback |
429
+ | Scope per request | N/A | SvelteKit isolation scope per request |
430
+
431
+ ---
432
+
433
+ ## Best Practices
434
+
435
+ - Export `handleError = Sentry.handleErrorWithSentry()` from **both** hook files in
436
+ SvelteKit — server errors are missed if only one is set
437
+ - User context is auto-populated by default via `dataCollection.userInfo` (SDK ≥10.57.0)
438
+ - Use `Sentry.withScope()` for one-off context, `Sentry.getIsolationScope()` /
439
+ `Sentry.getGlobalScope()` for persistent context
440
+ - Scrub PII in `beforeSend` or use `dataCollection` options to control what data is
441
+ collected
442
+ - Set `debug: true` during development to verify events are being captured
443
+
444
+ ---
445
+
446
+ ## Troubleshooting
447
+
448
+ | Issue | Solution |
449
+ | --------------------------------------------------- | ------------------------------------------------------------------------------------------ |
450
+ | Server errors not appearing | Confirm `handleErrorWithSentry()` is exported from `hooks.server.ts` |
451
+ | Client errors not appearing | Confirm `handleErrorWithSentry()` is exported from `hooks.client.ts` |
452
+ | `ignoreErrors` patterns not working | Use `RegExp` for patterns with special chars; string values are treated as regex |
453
+ | `beforeSend` returning `null` but events still sent | Check that `beforeSendTransaction` is not what fires (different hook) |
454
+ | Component tracking not emitting spans | Ensure `withSentryConfig` wraps the config in `svelte.config.js`; requires tracing enabled |
455
+ | `Sentry.lastEventId()` returns undefined | Only populated after `captureException`/`captureMessage` or automatic capture |
456
+ | Events appear without user context | Call `Sentry.setUser()` after authentication, not inside `Sentry.init()` |