@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,369 @@
1
+ # Session Replay — Sentry Svelte/SvelteKit SDK
2
+
3
+ > Minimum SDK: `@sentry/sveltekit` ≥7.27.0+ / `@sentry/svelte` ≥7.27.0+\
4
+ > `replayCanvasIntegration()`: requires `@sentry/sveltekit` ≥7.48.0+
5
+
6
+ > ⚠️ **Client-only feature.** Never add `replayIntegration()` to `hooks.server.ts` or
7
+ > `instrumentation.server.ts`.
8
+
9
+ ---
10
+
11
+ ## Setup
12
+
13
+ Session Replay is bundled in `@sentry/sveltekit` and `@sentry/svelte` — no separate
14
+ package needed.
15
+
16
+ ### SvelteKit — hooks.client.ts
17
+
18
+ ```typescript
19
+ import * as Sentry from "@sentry/sveltekit";
20
+
21
+ Sentry.init({
22
+ dsn: import.meta.env.PUBLIC_SENTRY_DSN ?? import.meta.env.VITE_SENTRY_DSN,
23
+
24
+ // Sample rates live on init, NOT on the integration
25
+ replaysSessionSampleRate: 0.1, // record 10% of all sessions
26
+ replaysOnErrorSampleRate: 1.0, // record 100% of sessions that encounter an error
27
+
28
+ integrations: [
29
+ Sentry.replayIntegration({
30
+ maskAllText: true, // default: true
31
+ blockAllMedia: true, // default: true
32
+ }),
33
+ ],
34
+ });
35
+
36
+ export const handleError = Sentry.handleErrorWithSentry();
37
+ ```
38
+
39
+ ### Standalone Svelte — main.ts
40
+
41
+ ```typescript
42
+ import * as Sentry from "@sentry/svelte";
43
+ import App from "./App.svelte";
44
+
45
+ Sentry.init({
46
+ dsn: import.meta.env.VITE_SENTRY_DSN,
47
+
48
+ replaysSessionSampleRate: 0.1,
49
+ replaysOnErrorSampleRate: 1.0,
50
+
51
+ integrations: [
52
+ Sentry.browserTracingIntegration(),
53
+ Sentry.replayIntegration({
54
+ maskAllText: true,
55
+ blockAllMedia: true,
56
+ }),
57
+ ],
58
+ });
59
+
60
+ const app = new App({ target: document.getElementById("app")! });
61
+ export default app;
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Sample Rates
67
+
68
+ | Option | Location | Behavior |
69
+ | -------------------------- | ----------------- | --------------------------------------------------------------------- |
70
+ | `replaysSessionSampleRate` | `Sentry.init({})` | Fraction of all sessions recorded from start |
71
+ | `replaysOnErrorSampleRate` | `Sentry.init({})` | Fraction of error sessions — includes ~60s of replay before the error |
72
+
73
+ Recommended values by traffic volume:
74
+
75
+ | Volume | `replaysSessionSampleRate` | `replaysOnErrorSampleRate` |
76
+ | ------------------------- | -------------------------- | -------------------------- |
77
+ | High (100k+ sessions/day) | `0.01` | `1.0` |
78
+ | Medium (10k–100k/day) | `0.1` | `1.0` |
79
+ | Low (<10k/day) | `0.25` | `1.0` |
80
+ | Errors-only strategy | `0` | `1.0` |
81
+
82
+ “Errors-only” (`replaysSessionSampleRate: 0`, `replaysOnErrorSampleRate: 1.0`) minimizes
83
+ overhead by not recording sessions unless an error occurs.
84
+
85
+ ---
86
+
87
+ ## Core `replayIntegration()` Options
88
+
89
+ ### Recording Control
90
+
91
+ | Option | Type | Default | Description |
92
+ | ------------------- | --------- | --------- | -------------------------------------------- |
93
+ | `stickySession` | `boolean` | `true` | Persist session across page refreshes |
94
+ | `minReplayDuration` | `number` | `5000` | Min ms before a session-based replay is sent |
95
+ | `maxReplayDuration` | `number` | `3600000` | Max replay length (1 hour hard cap) |
96
+ | `workerUrl` | `string` | — | Self-host the compression Web Worker |
97
+
98
+ ### Mutation Limits (DOM thrash protection)
99
+
100
+ | Option | Type | Default | Description |
101
+ | ------------------------- | -------- | ------- | ------------------------------------------- |
102
+ | `mutationLimit` | `number` | `10000` | Stop recording after N DOM mutations |
103
+ | `mutationBreadcrumbLimit` | `number` | `750` | Emit a warning breadcrumb after N mutations |
104
+
105
+ ```typescript
106
+ Sentry.replayIntegration({
107
+ mutationBreadcrumbLimit: 1000,
108
+ mutationLimit: 1500,
109
+ });
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Privacy and Masking
115
+
116
+ Replay defaults to **privacy-first**: all text is masked and all media is blocked before
117
+ a single line of config is written.
118
+
119
+ ### Default behavior
120
+
121
+ | Element type | Default action |
122
+ | ------------------------------------------------------------------- | --------------------------------------- |
123
+ | All text content | Replaced with `*` (length-preserving) |
124
+ | All inputs | Values replaced with `*` |
125
+ | `img`, `svg`, `video`, `audio`, `picture`, `embed`, `map`, `object` | Replaced with same-size placeholder box |
126
+
127
+ ### Global masking overrides
128
+
129
+ ```typescript
130
+ Sentry.replayIntegration({
131
+ maskAllText: true, // default: true — set false to unmask everything
132
+ maskAllInputs: true, // default: true
133
+ blockAllMedia: true, // default: true
134
+
135
+ // Custom masking function (override default * replacement)
136
+ maskFn: (text) => "█".repeat(text.length),
137
+ });
138
+ ```
139
+
140
+ ### Selector-based fine-grained control
141
+
142
+ ```typescript
143
+ Sentry.replayIntegration({
144
+ // Additional selectors to mask/block (additive to defaults)
145
+ mask: [".sensitive-field", "[data-pii]"],
146
+ block: [".payment-widget", "#credit-card-iframe"],
147
+ ignore: ["#search-input"], // ignore input value changes for this field
148
+
149
+ // UNBLOCK specific elements from maskAllText=true
150
+ unmask: [".username-display", ".public-label"],
151
+
152
+ // UNBLOCK specific elements from blockAllMedia=true
153
+ unblock: [".product-thumbnail", ".avatar-image"],
154
+ });
155
+ ```
156
+
157
+ ### HTML attribute approach (zero-config)
158
+
159
+ Apply directly in Svelte markup — no JS config change needed:
160
+
161
+ ```svelte
162
+ <!-- Mask text content -->
163
+ <p data-sentry-mask>Sensitive content</p>
164
+ <p class="sentry-mask">Also masked</p>
165
+
166
+ <!-- Block entire element (replaced with placeholder) -->
167
+ <div data-sentry-block>Payment widget</div>
168
+ <div class="sentry-block">Also blocked</div>
169
+
170
+ <!-- Ignore input value changes -->
171
+ <input data-sentry-ignore type="text" />
172
+ <input class="sentry-ignore" />
173
+ ```
174
+
175
+ Attribute selectors (`data-sentry-*`) are automatically recognized by the SDK. CSS
176
+ classes require these to be listed in the integration options for SDK v8+:
177
+
178
+ ```typescript
179
+ Sentry.replayIntegration({
180
+ unmask: [".sentry-unmask, [data-sentry-unmask]"],
181
+ unblock: [".sentry-unblock, [data-sentry-unblock]"],
182
+ });
183
+ ```
184
+
185
+ ---
186
+
187
+ ## Network Capture
188
+
189
+ By default, only URL, method, status code, and response size are recorded for network
190
+ requests. To capture headers and bodies, opt in per URL:
191
+
192
+ ```typescript
193
+ Sentry.replayIntegration({
194
+ networkDetailAllowUrls: [
195
+ window.location.origin, // same-origin requests
196
+ "api.example.com", // substring match
197
+ /^https:\/\/api\.example\.com/, // regex match
198
+ ],
199
+ networkDetailDenyUrls: [
200
+ "https://analytics.third-party.com", // takes precedence over allow
201
+ ],
202
+
203
+ networkCaptureBodies: true, // capture req/res bodies (default: true when URLs allowed)
204
+ networkRequestHeaders: ["Cache-Control", "X-Request-ID"],
205
+ networkResponseHeaders: ["Referrer-Policy", "X-Response-Time"],
206
+ });
207
+ ```
208
+
209
+ Constraints:
210
+
211
+ - Body truncation limit: **150,000 characters** max
212
+ - Default captured headers: `Content-Type`, `Content-Length`, `Accept`
213
+ - No bodies/extra headers captured unless URLs are in `networkDetailAllowUrls`
214
+
215
+ ---
216
+
217
+ ## Canvas Recording
218
+
219
+ Requires a second integration:
220
+
221
+ ```typescript
222
+ Sentry.init({
223
+ integrations: [Sentry.replayIntegration(), Sentry.replayCanvasIntegration()],
224
+ });
225
+ ```
226
+
227
+ ### Manual snapshot mode
228
+
229
+ Use when canvas content changes outside normal render cycles:
230
+
231
+ ```typescript
232
+ Sentry.init({
233
+ integrations: [
234
+ Sentry.replayIntegration(),
235
+ Sentry.replayCanvasIntegration({ enableManualSnapshot: true }),
236
+ ],
237
+ });
238
+
239
+ // Trigger snapshot manually when needed
240
+ const canvasIntegration = Sentry.getClient()?.getIntegrationByName("ReplayCanvas");
241
+ canvasIntegration?.snapshot(canvasElement);
242
+ ```
243
+
244
+ ---
245
+
246
+ ## Lazy Loading Replay
247
+
248
+ Defer loading the replay bundle to improve initial page load performance:
249
+
250
+ ```typescript
251
+ // Initialize without replay
252
+ Sentry.init({
253
+ dsn: import.meta.env.PUBLIC_SENTRY_DSN ?? import.meta.env.VITE_SENTRY_DSN,
254
+ integrations: [],
255
+ });
256
+
257
+ // Load on demand (e.g., after login, or on idle)
258
+ async function enableReplay() {
259
+ const { replayIntegration } = await import("@sentry/sveltekit");
260
+ Sentry.addIntegration(
261
+ replayIntegration({
262
+ maskAllText: true,
263
+ blockAllMedia: true,
264
+ }),
265
+ );
266
+ }
267
+ ```
268
+
269
+ ---
270
+
271
+ ## Event Filtering
272
+
273
+ ```typescript
274
+ Sentry.replayIntegration({
275
+ // Filter/drop individual recording events before they are buffered
276
+ beforeAddRecordingEvent: (event) => {
277
+ // Drop debug console entries from replay
278
+ if (event.data?.payload?.level === "debug") return null;
279
+ return event;
280
+ },
281
+
282
+ // Control which errors trigger error-rate sampling
283
+ beforeErrorSampling: (event) => {
284
+ // Don't start replay for NetworkErrors
285
+ return event.exception?.values?.[0]?.type !== "NetworkError";
286
+ },
287
+
288
+ // Disable slow/rage-click detection on noisy elements
289
+ slowClickIgnoreSelectors: [".loading-spinner", "#carousel"],
290
+ });
291
+ ```
292
+
293
+ ---
294
+
295
+ ## SvelteKit-Specific Considerations
296
+
297
+ | Topic | Note |
298
+ | --------------------- | -------------------------------------------------------------------------------- |
299
+ | Server-side rendering | Replay records the **browser DOM** after hydration, not the raw SSR HTML |
300
+ | Navigation tracking | SvelteKit client-side navigations are recorded as replay navigation breadcrumbs |
301
+ | `+error.svelte` pages | Errors triggering error pages are captured; replay buffers the preceding session |
302
+ | Ad-blocker bypass | Set `tunnel: "/sentry-tunnel"` to prevent replay data from being blocked |
303
+ | Cloudflare adapter | Replay is client-only; no adapter-specific concerns |
304
+
305
+ ---
306
+
307
+ ## CSP Requirements
308
+
309
+ If using a strict Content Security Policy, add:
310
+
311
+ ```
312
+ worker-src 'self' blob:;
313
+ child-src 'self' blob:;
314
+ ```
315
+
316
+ The SDK uses a Web Worker (`blob:` URL) for compression.
317
+
318
+ ### Self-hosting the worker
319
+
320
+ ```typescript
321
+ Sentry.replayIntegration({
322
+ workerUrl: "/assets/sentry-replay-worker.min.js",
323
+ });
324
+ ```
325
+
326
+ Download the worker from the `@sentry/replay` package `worker/` directory and serve it
327
+ from your own origin.
328
+
329
+ ---
330
+
331
+ ## Performance Considerations
332
+
333
+ - Compression runs in a **Web Worker** — minimal main-thread impact
334
+ - `mutationLimit` protects against DOM-heavy frameworks that trigger thousands of
335
+ mutations
336
+ - Network body capture is opt-in per URL — no performance cost without
337
+ `networkDetailAllowUrls`
338
+ - Lazy loading (`Sentry.addIntegration()`) reduces initial bundle size by ~50KB gzipped
339
+ - “Errors-only” strategy (`replaysSessionSampleRate: 0`) has near-zero overhead when no
340
+ error occurs
341
+
342
+ ---
343
+
344
+ ## Best Practices
345
+
346
+ - Keep `maskAllText: true` and `blockAllMedia: true` as defaults — opt individual
347
+ elements out via `unmask`/`unblock` or `data-sentry-unmask`/`data-sentry-unblock`
348
+ - Use `networkDetailAllowUrls` with your own API domains only — never include
349
+ third-party analytics or payment processors
350
+ - Set `replaysOnErrorSampleRate: 1.0` so you never miss replay for an error session
351
+ - Lazy-load replay for unauthenticated pages where user consent or performance is
352
+ critical
353
+ - Add `slowClickIgnoreSelectors` for loading states to avoid false rage-click detection
354
+
355
+ ---
356
+
357
+ ## Troubleshooting
358
+
359
+ | Issue | Solution |
360
+ | --------------------------------------- | --------------------------------------------------------------------------------------------- |
361
+ | Replay not recording | Confirm `replayIntegration()` is in `hooks.client.ts` — never in `hooks.server.ts` |
362
+ | All text shown as `*` | Expected with `maskAllText: true`; add `data-sentry-unmask` to elements that are safe to show |
363
+ | Replay missing after error | Check `replaysOnErrorSampleRate` is > 0; verify `replaysSessionSampleRate` is not overriding |
364
+ | Network requests missing in replay | Add your API domains to `networkDetailAllowUrls` |
365
+ | Worker CSP errors in browser console | Add `worker-src 'self' blob:;` to your CSP headers |
366
+ | Canvas not recording | Add `replayCanvasIntegration()` alongside `replayIntegration()` |
367
+ | High bandwidth usage | Lower `replaysSessionSampleRate`; enable `mutationLimit`; disable network body capture |
368
+ | Replay blocked by ad-blocker | Set `tunnel: "/sentry-tunnel"` in `Sentry.init()` and implement server relay |
369
+ | `beforeAddRecordingEvent` not filtering | Ensure the function returns `null` (not `undefined`) to drop events |