@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,315 @@
1
+ # Logging — Sentry Browser SDK
2
+
3
+ > Minimum SDK: `@sentry/browser` ≥9.41.0 for `Sentry.logger` API and `enableLogs`\
4
+ > `consoleLoggingIntegration()`: requires ≥10.13.0+\
5
+ > Scope-based attributes (`getGlobalScope`, `getIsolationScope`): requires ≥10.32.0+
6
+
7
+ > ⚠️ **NPM or CDN logs bundle required** — Sentry logging is **not available** via the
8
+ > Loader Script. Use npm/yarn/pnpm (`@sentry/browser`) or a CDN bundle with `.logs.` in
9
+ > its name (e.g., `bundle.logs.metrics.min.js`).
10
+
11
+ ---
12
+
13
+ ## Enabling Logs
14
+
15
+ `enableLogs` is opt-in and must be explicitly set in `Sentry.init()`:
16
+
17
+ ```javascript
18
+ import * as Sentry from "@sentry/browser";
19
+
20
+ Sentry.init({
21
+ dsn: "___PUBLIC_DSN___",
22
+ enableLogs: true, // Required — logging is disabled by default
23
+ });
24
+ ```
25
+
26
+ Without `enableLogs: true`, all `Sentry.logger.*` calls are silently no-ops and nothing
27
+ is sent to Sentry.
28
+
29
+ ---
30
+
31
+ ## Logger API — Six Levels
32
+
33
+ ```javascript
34
+ import * as Sentry from "@sentry/browser";
35
+
36
+ Sentry.logger.trace("Entering processOrder", { fn: "processOrder", orderId: "ord_1" });
37
+ Sentry.logger.debug("Cache lookup", { key: "user:123", hit: false });
38
+ Sentry.logger.info("Order created", { orderId: "order_456", total: 99.99 });
39
+ Sentry.logger.warn("Rate limit approaching", { current: 95, max: 100 });
40
+ Sentry.logger.error("Payment failed", { reason: "card_declined", userId: "u_1" });
41
+ Sentry.logger.fatal("Database unavailable", { host: "db-primary" });
42
+ ```
43
+
44
+ | Level | Method | Typical Use |
45
+ | ------- | ----------------------- | ----------------------------------------------------------------------------------- |
46
+ | `trace` | `Sentry.logger.trace()` | Ultra-granular function entry/exit; high-volume — filter aggressively in production |
47
+ | `debug` | `Sentry.logger.debug()` | Development diagnostics, cache hits/misses, local state changes |
48
+ | `info` | `Sentry.logger.info()` | Normal business milestones, confirmations |
49
+ | `warn` | `Sentry.logger.warn()` | Degraded state, approaching limits, recoverable issues |
50
+ | `error` | `Sentry.logger.error()` | Failures requiring attention |
51
+ | `fatal` | `Sentry.logger.fatal()` | Critical failures, system unavailable |
52
+
53
+ **Attribute value types:** `string`, `number`, `boolean` only — `undefined`, arrays, and
54
+ objects are not accepted.
55
+
56
+ ---
57
+
58
+ ## Parameterized Messages — `Sentry.logger.fmt`
59
+
60
+ The `fmt` tagged template literal binds each interpolated variable as a **structured,
61
+ searchable attribute** in Sentry:
62
+
63
+ ```javascript
64
+ const userId = "user_123";
65
+ const productName = "Widget Pro";
66
+ const amount = 49.99;
67
+
68
+ Sentry.logger.info(Sentry.logger.fmt`User ${userId} purchased ${productName} for $${amount}`);
69
+ ```
70
+
71
+ This produces:
72
+
73
+ ```
74
+ message.template: "User %s purchased %s for $%s"
75
+ message.parameter.0: "user_123"
76
+ message.parameter.1: "Widget Pro"
77
+ message.parameter.2: 49.99
78
+ ```
79
+
80
+ Each parameter is independently searchable in Sentry’s log explorer.
81
+ You can filter by `message.parameter.0 = "user_123"` without matching the full message
82
+ string.
83
+
84
+ > ⚠️ `logger.fmt` must be used as a **tagged template literal** — not as a function
85
+ > call. `Sentry.logger.fmt("text")` will not produce structured parameters.
86
+
87
+ ### When to use `fmt` vs plain attributes
88
+
89
+ | Approach | Use When |
90
+ | --------------------------------------------------------------- | -------------------------------------------------------- |
91
+ | `Sentry.logger.info(msg, { key: val })` | Variables belong as separate searchable attributes |
92
+ | `Sentry.logger.info` with a `Sentry.logger.fmt` tagged template | Variable is a meaningful part of the message text itself |
93
+
94
+ ---
95
+
96
+ ## Console Integration (`consoleLoggingIntegration`) — SDK ≥10.13.0
97
+
98
+ Capture `console.log`, `console.warn`, `console.error`, and other console calls as
99
+ Sentry logs automatically:
100
+
101
+ ```javascript
102
+ import * as Sentry from "@sentry/browser";
103
+
104
+ Sentry.init({
105
+ dsn: "___PUBLIC_DSN___",
106
+ enableLogs: true,
107
+ integrations: [Sentry.consoleLoggingIntegration({ levels: ["log", "warn", "error"] })],
108
+ });
109
+
110
+ // These are now automatically sent to Sentry
111
+ console.log("User logged in", { userId: 123 });
112
+ console.warn("Slow network detected");
113
+ console.error("API request failed");
114
+ ```
115
+
116
+ The integration intercepts `console.*` calls and converts them to structured Sentry
117
+ logs. Interpolated values are extracted as `message.parameter.N` attributes.
118
+
119
+ **Available levels:** `"log"`, `"info"`, `"warn"`, `"error"`, `"debug"`, `"trace"`.
120
+
121
+ ---
122
+
123
+ ## Filtering Logs (`beforeSendLog`)
124
+
125
+ Filter or modify logs before they are sent to Sentry:
126
+
127
+ ```javascript
128
+ Sentry.init({
129
+ dsn: "___PUBLIC_DSN___",
130
+ enableLogs: true,
131
+ beforeSendLog: (log) => {
132
+ // Drop debug logs in production
133
+ if (log.level === "debug" || log.level === "trace") {
134
+ return null;
135
+ }
136
+
137
+ // Scrub sensitive attributes
138
+ if (log.attributes?.password) {
139
+ delete log.attributes.password;
140
+ }
141
+
142
+ if (log.attributes?.credit_card) {
143
+ log.attributes.credit_card = "[REDACTED]";
144
+ }
145
+
146
+ return log;
147
+ },
148
+ });
149
+ ```
150
+
151
+ ### The `log` object shape
152
+
153
+ | Field | Type | Description |
154
+ | ------------ | -------- | ------------------------------------------------------------------------ |
155
+ | `level` | `string` | `"trace"` \| `"debug"` \| `"info"` \| `"warn"` \| `"error"` \| `"fatal"` |
156
+ | `message` | `string` | The log message text |
157
+ | `timestamp` | `number` | Unix timestamp |
158
+ | `attributes` | `object` | Key/value pairs attached to this log |
159
+
160
+ Return `null` to drop the log.
161
+ Return the (optionally modified) `log` object to send it.
162
+
163
+ ---
164
+
165
+ ## Structured Attributes
166
+
167
+ Every `Sentry.logger.*` call accepts an attributes object as its second argument:
168
+
169
+ ```javascript
170
+ Sentry.logger.info("Checkout completed", {
171
+ orderId: "ord_789",
172
+ userId: "usr_123",
173
+ cartValue: 149.99,
174
+ itemCount: 3,
175
+ paymentMethod: "stripe",
176
+ });
177
+ ```
178
+
179
+ Attributes become **searchable and filterable** in Sentry’s log explorer.
180
+ Prefer one comprehensive log with all relevant context over many small scattered logs.
181
+
182
+ ---
183
+
184
+ ## Scope-Based Automatic Attributes (SDK ≥10.32.0)
185
+
186
+ Attributes set on scopes are automatically added to all logs emitted within that scope.
187
+
188
+ ### Global scope — entire session
189
+
190
+ ```javascript
191
+ // Set once at app startup — persists for the lifetime of the page
192
+ Sentry.getGlobalScope().setAttributes({
193
+ service: "checkout",
194
+ version: "2.1.0",
195
+ region: "us-east-1",
196
+ });
197
+ ```
198
+
199
+ ### Isolation scope — logical session context
200
+
201
+ ```javascript
202
+ // Set after user authenticates
203
+ Sentry.getIsolationScope().setAttributes({
204
+ org_id: user.orgId,
205
+ user_tier: user.tier,
206
+ });
207
+ ```
208
+
209
+ ### Current scope — single operation
210
+
211
+ ```javascript
212
+ Sentry.withScope((scope) => {
213
+ scope.setAttribute("order_id", "ord_789");
214
+ Sentry.logger.info("Processing payment", { amount: 49.99 });
215
+ // order_id is included on this log only
216
+ });
217
+ ```
218
+
219
+ **Constraint:** Scope attributes accept only `string`, `number`, and `boolean` values.
220
+
221
+ ---
222
+
223
+ ## Auto-Generated Attributes
224
+
225
+ These are added by the SDK to every log without any developer configuration:
226
+
227
+ | Attribute | Source | Notes |
228
+ | ------------------------------------ | -------------------------------- | -------------------------------- |
229
+ | `sentry.environment` | `environment` in `Sentry.init()` | — |
230
+ | `sentry.release` | `release` in `Sentry.init()` | — |
231
+ | `sentry.sdk.name` | SDK internals | `"sentry.javascript.browser"` |
232
+ | `sentry.sdk.version` | SDK internals | — |
233
+ | `browser.name` | User-Agent parsing | e.g., `"Chrome"` |
234
+ | `browser.version` | User-Agent parsing | e.g., `"121.0.0"` |
235
+ | `user.id`, `user.name`, `user.email` | `Sentry.setUser()` | Requires `sendDefaultPii: true` |
236
+ | `sentry.trace.parent_span_id` | Active tracing span | Enables log ↔ trace correlation |
237
+ | `sentry.replay_id` | Active Session Replay session | Enables log ↔ replay correlation |
238
+ | `message.template` | `logger.fmt` usage | The template string |
239
+ | `message.parameter.N` | `logger.fmt` usage | Each interpolated value |
240
+
241
+ ---
242
+
243
+ ## Log-to-Trace Correlation
244
+
245
+ When tracing is enabled, logs are **automatically linked** to the active span:
246
+
247
+ ```javascript
248
+ Sentry.init({
249
+ dsn: "___PUBLIC_DSN___",
250
+ enableLogs: true,
251
+ tracesSampleRate: 1.0,
252
+ integrations: [Sentry.browserTracingIntegration()],
253
+ });
254
+
255
+ // Logs emitted inside a span are linked to it automatically
256
+ await Sentry.startSpan({ name: "checkout-flow", op: "ui.action" }, async () => {
257
+ Sentry.logger.info("Validating cart", { cartId: "cart_abc" });
258
+ await validateCart();
259
+ Sentry.logger.info("Initiating payment", { gateway: "stripe" });
260
+ await initiatePayment();
261
+ });
262
+ // Both logs above have sentry.trace.parent_span_id set to the checkout-flow span ID
263
+ ```
264
+
265
+ In the Sentry UI:
266
+
267
+ - **From a log** → click the trace link to jump to the parent span and full trace
268
+ - **From a trace span** → click “Logs” to see all logs emitted during that span
269
+ - **From a replay** → logs are shown inline with the user session recording
270
+
271
+ ---
272
+
273
+ ## When to Use Each API
274
+
275
+ | Scenario | Recommended API |
276
+ | --------------------------------------- | --------------------------------------------------------------- |
277
+ | Business event with structured data | `Sentry.logger.info(msg, { ...attrs })` |
278
+ | Message with embedded variables | `Sentry.logger.info` with a `Sentry.logger.fmt` tagged template |
279
+ | Capture an unexpected exception | `Sentry.captureException(err)` |
280
+ | Send an informational string event | `Sentry.captureMessage(msg, "info")` |
281
+ | Auto-capture existing `console.*` calls | `consoleLoggingIntegration({ levels: [...] })` |
282
+
283
+ Use `Sentry.logger.*` for **structured, searchable observability data**. Use
284
+ `captureException` for actual errors that need issue grouping and stack traces.
285
+
286
+ ---
287
+
288
+ ## Log Level Guide
289
+
290
+ | Level | When to use | Production volume |
291
+ | ------- | -------------------------------------------- | -------------------------- |
292
+ | `trace` | Function entry/exit, loop iterations | Filter out in production |
293
+ | `debug` | Variable values, code paths taken | Filter out in production |
294
+ | `info` | User actions, business milestones, API calls | Keep — low/medium volume |
295
+ | `warn` | Degraded paths, retries, near-limits | Keep — low volume |
296
+ | `error` | Failures that need investigation | Keep — should be rare |
297
+ | `fatal` | System-down, unrecoverable state | Keep — should be very rare |
298
+
299
+ ---
300
+
301
+ ## Troubleshooting
302
+
303
+ | Issue | Solution |
304
+ | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
305
+ | Logs not appearing in Sentry | Verify `enableLogs: true` in `Sentry.init()`; requires SDK ≥9.41.0 |
306
+ | “Not available via CDN/Loader Script” | Install via npm: `npm install @sentry/browser` — logging requires the npm package |
307
+ | `logger.fmt` not creating `message.parameter.*` | Use it as a tagged template literal — not as the function call `Sentry.logger.fmt("text", var)` |
308
+ | Logs not linked to traces | Ensure `browserTracingIntegration()` is added and `tracesSampleRate > 0`; logs must be emitted inside an active span |
309
+ | `consoleLoggingIntegration` not available | Upgrade to `@sentry/browser` ≥10.13.0 |
310
+ | Scope attributes not appearing on logs | Upgrade to `@sentry/browser` ≥10.32.0 for `getGlobalScope`/`getIsolationScope` APIs |
311
+ | Too many logs / high volume | Use `beforeSendLog` to drop `trace` and `debug` levels in production |
312
+ | Log attributes contain `undefined` | Only `string`, `number`, `boolean` are accepted — filter undefined values before passing |
313
+ | `beforeSendLog` not firing | Confirm `enableLogs: true` is set; without it, no logs are sent and no hook is called |
314
+ | Sensitive data appearing in logs | Add filtering in `beforeSendLog`; avoid logging sensitive data at the call site |
315
+ | Logs appear but have no user context | Call `Sentry.setUser({ id, email })` after authentication; set `sendDefaultPii: true` |
@@ -0,0 +1,236 @@
1
+ # Browser Profiling — Sentry Browser SDK
2
+
3
+ > Minimum SDK: `@sentry/browser` ≥10.27.0 (Beta)
4
+
5
+ > ⚠️ **Beta status** — breaking changes may occur.
6
+ > Browser support is limited to **Chromium-based browsers only** (Chrome, Edge).
7
+ > Firefox and Safari are not supported.
8
+
9
+ ---
10
+
11
+ ## What Browser Profiling Captures
12
+
13
+ Sentry’s browser profiler uses the
14
+ [JS Self-Profiling API](https://wicg.github.io/js-self-profiling/) to capture:
15
+
16
+ - **JavaScript call stacks** — function names and source file locations (deobfuscated
17
+ via source maps)
18
+ - **CPU time per function** — how much time is spent in each function
19
+ - **Flame graphs** — aggregated across real user sessions, not just local dev
20
+ - **Linked profiles** — every profile is attached to a trace, enabling navigation from
21
+ span → flame graph in Sentry
22
+
23
+ Sampling rate: **100Hz (10ms intervals)** — runs unobtrusively in production.
24
+
25
+ ---
26
+
27
+ ## Browser Compatibility
28
+
29
+ | Browser | Supported | Notes |
30
+ | ------------------- | --------- | ------------------------------------- |
31
+ | Chrome / Chromium | ✅ Yes | Primary support target |
32
+ | Edge (Chromium) | ✅ Yes | Same engine as Chrome |
33
+ | Firefox | ❌ No | JS Self-Profiling API not implemented |
34
+ | Safari / iOS Safari | ❌ No | JS Self-Profiling API not implemented |
35
+
36
+ > ⚠️ **Sampling bias:** Profile data is collected **only** from Chromium users.
37
+ > Firefox and Safari sessions are silently excluded — no error is thrown, no overhead is
38
+ > added.
39
+
40
+ ---
41
+
42
+ ## Required HTTP Header
43
+
44
+ Every document response **must** include this header or profiling silently fails:
45
+
46
+ ```
47
+ Document-Policy: js-profiling
48
+ ```
49
+
50
+ Without this header, the JS Self-Profiling API is blocked by the browser and no profiles
51
+ are collected.
52
+
53
+ ### Platform-Specific Header Setup
54
+
55
+ **Vercel (`vercel.json`):**
56
+
57
+ ```json
58
+ {
59
+ "headers": [
60
+ {
61
+ "source": "/(.*)",
62
+ "headers": [{ "key": "Document-Policy", "value": "js-profiling" }]
63
+ }
64
+ ]
65
+ }
66
+ ```
67
+
68
+ **Netlify (`netlify.toml`):**
69
+
70
+ ```toml
71
+ [[headers]]
72
+ for = "/*"
73
+ [headers.values]
74
+ Document-Policy = "js-profiling"
75
+ ```
76
+
77
+ **Netlify (`_headers` file):**
78
+
79
+ ```
80
+ /*
81
+ Document-Policy: js-profiling
82
+ ```
83
+
84
+ **Express / Node.js:**
85
+
86
+ ```javascript
87
+ app.use((req, res, next) => {
88
+ res.set("Document-Policy", "js-profiling");
89
+ next();
90
+ });
91
+ ```
92
+
93
+ **Nginx:**
94
+
95
+ ```nginx
96
+ add_header Document-Policy "js-profiling";
97
+ ```
98
+
99
+ ---
100
+
101
+ ## Basic Setup
102
+
103
+ ```javascript
104
+ import * as Sentry from "@sentry/browser";
105
+
106
+ Sentry.init({
107
+ dsn: "___PUBLIC_DSN___",
108
+ integrations: [Sentry.browserTracingIntegration(), Sentry.browserProfilingIntegration()],
109
+ tracesSampleRate: 1.0,
110
+ profileSessionSampleRate: 1.0, // Profile 100% of sessions (lower in production)
111
+ });
112
+ ```
113
+
114
+ > Profiling requires tracing to be active.
115
+ > `browserTracingIntegration()` and a `tracesSampleRate` > 0 are both required.
116
+
117
+ ---
118
+
119
+ ## Configuration Options
120
+
121
+ | Option | Type | Default | Description |
122
+ | -------------------------- | ----------------------- | ---------- | ----------------------------------------------------------------------------------- |
123
+ | `profileSessionSampleRate` | `number` (0–1) | — | Fraction of sessions to profile. Evaluated **once** per page load. |
124
+ | `profileLifecycle` | `'manual'` \| `'trace'` | `'manual'` | Controls when profiling starts and stops (see [Profiling Modes](#profiling-modes)). |
125
+
126
+ ### `profilesSampleRate` vs `profileSessionSampleRate`
127
+
128
+ | Option | SDK Version | Description |
129
+ | -------------------------- | ------------------- | ------------------------------------------------------------------------------ |
130
+ | `profilesSampleRate` | Legacy (< 10.27.0) | Transaction-based — tied to individual transaction sampling. **Deprecated.** |
131
+ | `profileSessionSampleRate` | Current (≥ 10.27.0) | Session-based — evaluated once per page load. **Use this for all new setups.** |
132
+
133
+ ---
134
+
135
+ ## Profiling Modes
136
+
137
+ ### Trace Mode (Automatic)
138
+
139
+ Profiler starts and stops automatically in sync with every active root span (trace).
140
+ Recommended for general-purpose production profiling.
141
+
142
+ ```javascript
143
+ Sentry.init({
144
+ dsn: "___PUBLIC_DSN___",
145
+ integrations: [Sentry.browserTracingIntegration(), Sentry.browserProfilingIntegration()],
146
+ tracesSampleRate: 1.0,
147
+ profileSessionSampleRate: 0.1, // Profile 10% of sessions
148
+ profileLifecycle: "trace", // Profile automatically with each trace
149
+ });
150
+ ```
151
+
152
+ ### Manual Mode (Default)
153
+
154
+ Start and stop the profiler explicitly around specific code you want to measure.
155
+
156
+ ```javascript
157
+ Sentry.init({
158
+ dsn: "___PUBLIC_DSN___",
159
+ integrations: [Sentry.browserTracingIntegration(), Sentry.browserProfilingIntegration()],
160
+ tracesSampleRate: 1.0,
161
+ profileSessionSampleRate: 1.0,
162
+ profileLifecycle: "manual", // default
163
+ });
164
+
165
+ // Somewhere in your application
166
+ Sentry.uiProfiler.startProfiler();
167
+
168
+ doExpensiveWork();
169
+ renderComplexChart();
170
+
171
+ Sentry.uiProfiler.stopProfiler();
172
+ ```
173
+
174
+ Use manual mode when you know exactly which operations to measure and want to avoid
175
+ profiling overhead during unrelated work.
176
+
177
+ ---
178
+
179
+ ## Production Sampling Strategy
180
+
181
+ Profiling adds CPU overhead.
182
+ Use conservative rates in production:
183
+
184
+ ```javascript
185
+ Sentry.init({
186
+ dsn: "___PUBLIC_DSN___",
187
+ integrations: [Sentry.browserTracingIntegration(), Sentry.browserProfilingIntegration()],
188
+ tracesSampleRate: 0.2, // Sample 20% of traces
189
+ profileSessionSampleRate: 0.1, // Profile 10% of sessions
190
+ profileLifecycle: "trace",
191
+ });
192
+ ```
193
+
194
+ `profileSessionSampleRate` is evaluated **once per session** (page load), not per trace.
195
+ A session either profiles all its traces or none of them.
196
+
197
+ ---
198
+
199
+ ## Best Practices
200
+
201
+ - **Start with `profileLifecycle: "trace"`** — automatic profiling with traces requires
202
+ no extra instrumentation
203
+ - **Set `profileSessionSampleRate` to 0.1–0.2** in production to limit overhead
204
+ - **Upload source maps** — profiling data shows minified names without source maps; the
205
+ flame graph is much more useful with them
206
+ - **Use manual mode** when investigating a specific known bottleneck (e.g., a slow chart
207
+ render or complex animation)
208
+ - **Combine with tracing** — profiles are always linked to a trace, so you can navigate
209
+ from a slow span to its flame graph
210
+ - **Don’t profile static hosts without header support** — GitHub Pages and some CDNs
211
+ cannot serve custom HTTP response headers; profiling will silently not work
212
+
213
+ ---
214
+
215
+ ## Known Limitations
216
+
217
+ | Limitation | Details |
218
+ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
219
+ | Chromium-only | Firefox and Safari do not implement the JS Self-Profiling API. Profile data represents only Chromium users. |
220
+ | `Document-Policy` header required | Every served document must include the header. Static hosts that can’t set custom headers cannot enable profiling. |
221
+ | Chrome DevTools conflict | With `browserProfilingIntegration` active, Chrome DevTools may display SDK activity as “profiling overhead” in the Performance panel. This is cosmetic. |
222
+ | Beta status | The API may change between minor releases. |
223
+
224
+ ---
225
+
226
+ ## Troubleshooting
227
+
228
+ | Symptom | Cause | Fix |
229
+ | --------------------------------------- | ------------------------------------------------- | ------------------------------------------------------------------ |
230
+ | No profiles in Sentry | Missing `Document-Policy: js-profiling` header | Add the header to all document responses |
231
+ | No profiles in Sentry | `browserTracingIntegration()` not added | Profiling requires tracing — add it and set `tracesSampleRate > 0` |
232
+ | No profiles in Sentry | `profileSessionSampleRate` not set | Set it (e.g., `1.0` for dev, `0.1` for production) |
233
+ | Profiles appear with minified names | Source maps not uploaded | Upload source maps to Sentry via the build plugin |
234
+ | No profiles for Firefox/Safari users | Expected — those browsers don’t support the API | No fix needed; this is by design |
235
+ | Chrome DevTools shows extra overhead | False positive from profiling integration | Expected; ignore in DevTools, check Sentry instead |
236
+ | `uiProfiler.startProfiler` is undefined | SDK version < 10.27.0 or wrong `profileLifecycle` | Upgrade SDK; `uiProfiler` is only available in manual mode |