@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,411 @@
1
+ # Metrics — Sentry Next.js SDK
2
+
3
+ > Minimum SDK: `@sentry/nextjs` ≥10.25.0 (stable `Sentry.metrics.*` API)\
4
+ > `enableMetrics` top-level option: ≥10.24.0 (default: `true`)\
5
+ > `beforeSendMetric` hook: ≥10.24.0\
6
+ > Scope attributes on metrics: ≥10.33.0
7
+ >
8
+ > Available in **all three runtimes**: browser, Node.js server, and Edge.
9
+
10
+ ---
11
+
12
+ ## Overview
13
+
14
+ Sentry Metrics let you track counters, current values, and value distributions.
15
+ They appear in Sentry alongside related errors and can be correlated with traces.
16
+
17
+ Key characteristics:
18
+
19
+ - Metrics are **enabled by default** — no configuration required for basic use
20
+ - Work across all three Next.js runtimes: browser, Node.js server, and Edge
21
+ - Buffered in memory (max 1000 entries) and sent periodically
22
+ - High-cardinality attributes **degrade backend performance** — keep attribute
23
+ cardinality low
24
+ - Use `Sentry.logger.*` (not metrics) when you need per-user or per-request detail
25
+
26
+ ---
27
+
28
+ ## Initialization
29
+
30
+ Metrics are on by default in all three runtime config files.
31
+ No additional configuration is needed.
32
+ `enableMetrics`, `beforeSendMetric`, and all `Sentry.metrics.*` calls work identically
33
+ in every runtime.
34
+
35
+ **`instrumentation-client.ts` (browser runtime):**
36
+
37
+ ```typescript
38
+ import * as Sentry from "@sentry/nextjs";
39
+
40
+ Sentry.init({
41
+ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
42
+ // Metrics are enabled by default — no config needed
43
+
44
+ // To disable entirely:
45
+ // enableMetrics: false,
46
+
47
+ beforeSendMetric: (metric) => {
48
+ // optional filter/transform
49
+ if (metric.name === "debug_metric") return null;
50
+ return metric;
51
+ },
52
+ });
53
+ ```
54
+
55
+ **`sentry.server.config.ts` (Node.js runtime):**
56
+
57
+ ```typescript
58
+ import * as Sentry from "@sentry/nextjs";
59
+
60
+ Sentry.init({
61
+ dsn: process.env.SENTRY_DSN,
62
+ // Metrics are enabled by default
63
+ // enableMetrics, beforeSendMetric can be configured here too
64
+ });
65
+ ```
66
+
67
+ **`sentry.edge.config.ts` (Edge runtime):**
68
+
69
+ ```typescript
70
+ import * as Sentry from "@sentry/nextjs";
71
+
72
+ Sentry.init({
73
+ dsn: process.env.SENTRY_DSN,
74
+ // Metrics are enabled by default
75
+ // enableMetrics, beforeSendMetric can be configured here too
76
+ });
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Metrics API
82
+
83
+ Three methods. No `increment()` or `set()` — those do not exist in v10:
84
+
85
+ ```typescript
86
+ Sentry.metrics.count(name, value?, options?)
87
+ Sentry.metrics.gauge(name, value, options?)
88
+ Sentry.metrics.distribution(name, value, options?)
89
+ ```
90
+
91
+ **Full TypeScript signatures:**
92
+
93
+ ```typescript
94
+ interface MetricOptions {
95
+ unit?: string; // see unit table below
96
+ attributes?: Record<string, unknown>; // filterable dimensions
97
+ scope?: Scope; // optional scope override
98
+ }
99
+
100
+ function count(name: string, value?: number, options?: MetricOptions): void;
101
+ // value defaults to 1
102
+
103
+ function gauge(name: string, value: number, options?: MetricOptions): void;
104
+
105
+ function distribution(name: string, value: number, options?: MetricOptions): void;
106
+ ```
107
+
108
+ ---
109
+
110
+ ## Metric Types
111
+
112
+ | Method | Underlying Type | Use For |
113
+ | -------------- | --------------- | ----------------------------------------------- |
114
+ | `count` | counter | Event frequency — requests, errors, signups |
115
+ | `gauge` | gauge | Current snapshot value — queue depth, CPU % |
116
+ | `distribution` | distribution | Value histograms/ranges — latencies, file sizes |
117
+
118
+ ```typescript
119
+ // count — how many times something happened
120
+ Sentry.metrics.count("user.signups", 1);
121
+ Sentry.metrics.count("api.errors", 1, { attributes: { endpoint: "/checkout" } });
122
+
123
+ // gauge — what the current state is
124
+ Sentry.metrics.gauge("queue.depth", 42);
125
+ Sentry.metrics.gauge("memory.usage", 512, { unit: "megabyte" });
126
+
127
+ // distribution — spread of a measured value
128
+ Sentry.metrics.distribution("api.latency", 187.5, { unit: "millisecond" });
129
+ Sentry.metrics.distribution("payload.size", 1024, { unit: "byte" });
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Next.js Patterns
135
+
136
+ ### API Routes (App Router)
137
+
138
+ Track request timing and business events in route handlers:
139
+
140
+ **`app/api/orders/route.ts`**
141
+
142
+ ```typescript
143
+ import * as Sentry from "@sentry/nextjs";
144
+
145
+ export async function POST(request: Request) {
146
+ const start = Date.now();
147
+
148
+ try {
149
+ const order = await createOrder(request);
150
+
151
+ Sentry.metrics.count("orders_created", 1, {
152
+ attributes: { status: "success" },
153
+ });
154
+
155
+ return Response.json(order);
156
+ } catch (error) {
157
+ Sentry.metrics.count("orders_created", 1, {
158
+ attributes: { status: "failed" },
159
+ });
160
+ throw error;
161
+ } finally {
162
+ Sentry.metrics.distribution("order_latency", Date.now() - start, {
163
+ unit: "millisecond",
164
+ });
165
+ }
166
+ }
167
+ ```
168
+
169
+ ### Server Actions
170
+
171
+ Track form submissions and mutations:
172
+
173
+ **`app/actions.ts`**
174
+
175
+ ```typescript
176
+ "use server";
177
+
178
+ import * as Sentry from "@sentry/nextjs";
179
+
180
+ export async function submitCheckout(formData: FormData) {
181
+ Sentry.metrics.count("checkout_attempts", 1);
182
+
183
+ try {
184
+ const result = await processCheckout(formData);
185
+ Sentry.metrics.count("checkout_success", 1);
186
+ return result;
187
+ } catch (error) {
188
+ Sentry.metrics.count("checkout_failures", 1);
189
+ throw error;
190
+ }
191
+ }
192
+ ```
193
+
194
+ ### Proxy / Middleware
195
+
196
+ Track request patterns at the edge.
197
+ Next.js 16+ uses `proxy.ts`, while earlier versions use `middleware.ts`. The pattern is
198
+ the same:
199
+
200
+ **`proxy.ts`**
201
+
202
+ ```typescript
203
+ import { NextResponse } from "next/server";
204
+ import type { NextRequest } from "next/server";
205
+ import * as Sentry from "@sentry/nextjs";
206
+
207
+ export function proxy(request: NextRequest) {
208
+ // Use a bounded route pattern, not the raw pathname (which is high-cardinality)
209
+ const route = request.nextUrl.pathname.split("/").slice(0, 3).join("/"); // e.g. "/api/orders"
210
+
211
+ Sentry.metrics.count("requests", 1, {
212
+ attributes: {
213
+ route,
214
+ method: request.method,
215
+ },
216
+ });
217
+
218
+ return NextResponse.next();
219
+ }
220
+ ```
221
+
222
+ ---
223
+
224
+ ## Units
225
+
226
+ Pass a `unit` string in `MetricOptions`. Used for display formatting in Sentry.
227
+
228
+ | Category | Unit Values |
229
+ | --------- | ------------------------------------------------------------------------- |
230
+ | Time | `millisecond`, `second`, `minute`, `hour`, `day`, `week` |
231
+ | Storage | `bit`, `byte`, `kilobyte`, `megabyte`, `gigabyte`, `terabyte`, `petabyte` |
232
+ | Fractions | `ratio`, `percent` |
233
+ | None | `none` (or omit `unit`) |
234
+
235
+ ```typescript
236
+ Sentry.metrics.distribution("api.latency", 187.5, { unit: "millisecond" });
237
+ Sentry.metrics.distribution("job.duration", 3.2, { unit: "second" });
238
+ Sentry.metrics.gauge("memory.usage", 512, { unit: "megabyte" });
239
+ Sentry.metrics.gauge("cache.hit_rate", 0.87, { unit: "ratio" });
240
+ Sentry.metrics.gauge("disk.usage_pct", 72.4, { unit: "percent" });
241
+ Sentry.metrics.count("user.logins"); // omit unit for plain counts
242
+ ```
243
+
244
+ ---
245
+
246
+ ## Attributes (Tags)
247
+
248
+ Use `attributes` in `MetricOptions` to add filterable/groupable dimensions.
249
+
250
+ **Size limit:** 2 KB per metric envelope.
251
+ Metrics exceeding this are **dropped**.
252
+
253
+ ```typescript
254
+ Sentry.metrics.count("api.requests", 1, {
255
+ attributes: {
256
+ endpoint: "/api/orders",
257
+ method: "POST",
258
+ status_code: 200,
259
+ user_tier: "pro",
260
+ region: "us-west-2",
261
+ version: "v2",
262
+ },
263
+ });
264
+
265
+ Sentry.metrics.distribution("db.query_time", 45.3, {
266
+ unit: "millisecond",
267
+ attributes: {
268
+ table: "orders",
269
+ operation: "SELECT",
270
+ index_used: true,
271
+ rows_scanned: 1240,
272
+ },
273
+ });
274
+ ```
275
+
276
+ ---
277
+
278
+ ## Cardinality
279
+
280
+ Sentry’s Application Metrics are **trace-connected and high-cardinality by design**.
281
+ Unlike tags, metric `attributes` have no per-value restrictions, so high-cardinality
282
+ values such as per-user IDs or request UUIDs are valid attribute values — you do not
283
+ need to bucket them into bounded enums first.
284
+
285
+ ```typescript
286
+ Sentry.metrics.count("page.view", 1, {
287
+ attributes: {
288
+ user_id: "uuid-abc-123", // high-cardinality values are supported
289
+ page: "/dashboard",
290
+ user_tier: "pro",
291
+ region: "us-east-1",
292
+ },
293
+ });
294
+ ```
295
+
296
+ The practical limit is the **2 KB per-metric envelope size** (metrics exceeding it are
297
+ dropped — see above), not the cardinality of individual attribute values.
298
+
299
+ ---
300
+
301
+ ## Scope-Based Attributes (SDK ≥10.33.0)
302
+
303
+ Set attributes on a scope and they auto-attach to all metrics emitted within it:
304
+
305
+ ```typescript
306
+ // Global scope — applies to all metrics app-wide
307
+ Sentry.getGlobalScope().setAttributes({
308
+ service: "payments",
309
+ deploy_env: "production",
310
+ });
311
+
312
+ // Per-request scope
313
+ Sentry.withScope((scope) => {
314
+ scope.setAttribute("step", "checkout");
315
+ scope.setAttribute("user_tier", "enterprise");
316
+
317
+ // Both metrics inherit the scope attributes above
318
+ Sentry.metrics.count("checkout.attempts", 1);
319
+ Sentry.metrics.gauge("cart.value", 249.99);
320
+ });
321
+ ```
322
+
323
+ ---
324
+
325
+ ## Auto-Attached Default Attributes
326
+
327
+ | Attribute | Value | Context |
328
+ | ------------------------------------ | ----------------------------------- | ----------- |
329
+ | `sentry.environment` | From `Sentry.init({ environment })` | Always |
330
+ | `sentry.release` | From `Sentry.init({ release })` | Always |
331
+ | `sentry.sdk.name` | SDK identifier | Always |
332
+ | `sentry.sdk.version` | e.g., `"10.42.0"` | Always |
333
+ | `user.id`, `user.name`, `user.email` | If user is set in scope | When set |
334
+ | `browser.name`, `browser.version` | Browser info | Client-side |
335
+ | `sentry.replay_id` | Session replay ID | Client-side |
336
+ | `server.address` | Server hostname | Server-side |
337
+
338
+ ---
339
+
340
+ ## `beforeSendMetric` Hook
341
+
342
+ Filter or modify metrics before transmission.
343
+ Return `null` to drop.
344
+ Configure in any runtime config file (`instrumentation-client.ts`,
345
+ `sentry.server.config.ts`, or `sentry.edge.config.ts`):
346
+
347
+ **`sentry.server.config.ts`**
348
+
349
+ ```typescript
350
+ Sentry.init({
351
+ dsn: process.env.SENTRY_DSN,
352
+ beforeSendMetric: (metric) => {
353
+ // metric: { name, value, type, unit?, attributes? }
354
+
355
+ // Drop internal debug metrics
356
+ if (metric.name.startsWith("_internal.")) {
357
+ return null;
358
+ }
359
+
360
+ // Normalize metric names
361
+ metric.name = metric.name.toLowerCase().replace(/[^a-z0-9_.]/g, "_");
362
+
363
+ // Add global context
364
+ metric.attributes = {
365
+ ...metric.attributes,
366
+ deploy_id: process.env.DEPLOY_ID,
367
+ };
368
+
369
+ return metric;
370
+ },
371
+ });
372
+ ```
373
+
374
+ ---
375
+
376
+ ## Flushing
377
+
378
+ Metrics are buffered (up to 1000 entries) and flushed periodically.
379
+ In serverless or edge environments, the function may terminate before the buffer flushes
380
+ automatically. Use `flush()` to send pending metrics while keeping the client alive
381
+ (suitable for reusable function instances), or `close()` to flush and permanently shut
382
+ down the client:
383
+
384
+ ```typescript
385
+ await Sentry.flush(2000); // send pending data, keep client alive (use in serverless)
386
+ await Sentry.close(2000); // send pending data + tear down client (use on permanent shutdown)
387
+ ```
388
+
389
+ This is especially important for:
390
+
391
+ - **Serverless / Vercel API routes** — function instances may terminate or freeze before
392
+ the buffer auto-flushes
393
+ - **Edge runtime handlers** — short-lived execution contexts with no background flush
394
+ opportunity
395
+
396
+ ---
397
+
398
+ ## Troubleshooting
399
+
400
+ | Problem | Likely Cause | Fix |
401
+ | ----------------------------- | ---------------------------- | ------------------------------------------------------------------- |
402
+ | Metrics not appearing | SDK < 10.24.0 | Upgrade to ≥10.24.0 |
403
+ | `Sentry.metrics` is undefined | SDK < 10.25.0 | Upgrade to ≥10.25.0 |
404
+ | Metrics silently dropped | Attribute envelope > 2 KB | Reduce number or size of `attributes` |
405
+ | `increment()` not found | Renamed in v10 | Use `count()` instead |
406
+ | `set()` not found | Removed in v10 | No equivalent; use `count()` with bounded attributes |
407
+ | Scope attributes missing | SDK < 10.33.0 | Upgrade to ≥10.33.0 |
408
+ | Metrics lost in serverless | Buffer not flushed | Call `await Sentry.flush(2000)` before function returns |
409
+ | Metrics missing on edge | Edge runtime not initialized | Ensure `sentry.edge.config.ts` has `Sentry.init()` |
410
+ | High-cardinality issues | Unbounded attribute values | Keep attributes to bounded enums/sets |
411
+ | Metrics not in server actions | Server config missing | Verify `sentry.server.config.ts` is loaded via `instrumentation.ts` |