@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,381 @@
1
+ # Logging — Sentry Next.js SDK
2
+
3
+ > Minimum SDK: `@sentry/nextjs` ≥9.41.0+ for `Sentry.logger` API and `enableLogs`\
4
+ > `consoleLoggingIntegration()` multi-arg parsing: requires ≥10.13.0+\
5
+ > Scope-based attributes (`getGlobalScope`, `getIsolationScope`): requires ≥10.32.0+
6
+
7
+ > ⚠️ **Not available via CDN/loader snippet** — NPM install required.
8
+
9
+ ---
10
+
11
+ ## Enabling Logs
12
+
13
+ `enableLogs` must be set in **all three** Next.js runtime config files:
14
+
15
+ ```typescript
16
+ // instrumentation-client.ts → use NEXT_PUBLIC_SENTRY_DSN
17
+ // sentry.server.config.ts → use SENTRY_DSN
18
+ // sentry.edge.config.ts → use SENTRY_DSN
19
+ import * as Sentry from "@sentry/nextjs";
20
+
21
+ Sentry.init({
22
+ dsn: process.env.SENTRY_DSN, // use NEXT_PUBLIC_SENTRY_DSN in client config
23
+ enableLogs: true, // Required — logging is disabled by default
24
+ });
25
+ ```
26
+
27
+ Without `enableLogs: true`, all `Sentry.logger.*` calls are silently no-ops.
28
+
29
+ ---
30
+
31
+ ## Logger API — Six Levels
32
+
33
+ ```typescript
34
+ import * as Sentry from "@sentry/nextjs";
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 out in production |
47
+ | `debug` | `Sentry.logger.debug()` | Development diagnostics, cache hits/misses |
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
+ ```typescript
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
+
82
+ > ⚠️ `logger.fmt` must be used as a **tagged template literal** — not a function call.
83
+ > `Sentry.logger.fmt("text")` will not produce structured parameters.
84
+
85
+ ### When to use `fmt` vs plain attributes
86
+
87
+ | Approach | Use when |
88
+ | --------------------------------------------------------------- | ------------------------------------------------------ |
89
+ | `Sentry.logger.info(msg, { key: val })` | Variables are logically distinct attributes with names |
90
+ | `Sentry.logger.info` with a `Sentry.logger.fmt` tagged template | Variables are part of a human-readable sentence |
91
+
92
+ ---
93
+
94
+ ## Console Capture — `consoleLoggingIntegration`
95
+
96
+ Automatically forwards `console.*` calls to Sentry as structured logs:
97
+
98
+ ```typescript
99
+ Sentry.init({
100
+ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
101
+ enableLogs: true,
102
+ integrations: [
103
+ Sentry.consoleLoggingIntegration({
104
+ levels: ["log", "warn", "error"], // which console methods to forward
105
+ }),
106
+ ],
107
+ });
108
+ ```
109
+
110
+ Multiple arguments are mapped to positional parameters (requires SDK ≥10.13.0):
111
+
112
+ ```
113
+ console.log("User action recorded", userId, success)
114
+ → message.parameter.0 = <userId value>
115
+ → message.parameter.1 = <success value>
116
+ ```
117
+
118
+ | Console method | Sentry log level |
119
+ | -------------------------- | ---------------- |
120
+ | `console.log` | `info` |
121
+ | `console.info` | `info` |
122
+ | `console.warn` | `warn` |
123
+ | `console.error` | `error` |
124
+ | `console.debug` | `debug` |
125
+ | `console.assert` (failing) | `error` |
126
+
127
+ ---
128
+
129
+ ## Log Filtering — `beforeSendLog`
130
+
131
+ Use `beforeSendLog` to drop, modify, or scrub logs before they are sent.
132
+ Return `null` to discard:
133
+
134
+ ```typescript
135
+ Sentry.init({
136
+ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
137
+ enableLogs: true,
138
+ beforeSendLog: (log) => {
139
+ // Drop debug and trace logs in production
140
+ if (log.level === "debug" || log.level === "trace") {
141
+ return null;
142
+ }
143
+
144
+ // Scrub sensitive attribute keys
145
+ if (log.attributes?.password) {
146
+ delete log.attributes.password;
147
+ }
148
+ if (log.attributes?.["credit_card"]) {
149
+ log.attributes["credit_card"] = "[REDACTED]";
150
+ }
151
+
152
+ // Drop noisy health-check logs by message content
153
+ if (log.message?.includes("/health")) {
154
+ return null;
155
+ }
156
+
157
+ return log; // send the (possibly modified) log
158
+ },
159
+ });
160
+ ```
161
+
162
+ ### The `log` object shape
163
+
164
+ | Field | Type | Description |
165
+ | ------------ | -------- | ------------------------------------------------------------------------ |
166
+ | `level` | `string` | `"trace"` \| `"debug"` \| `"info"` \| `"warn"` \| `"error"` \| `"fatal"` |
167
+ | `message` | `string` | The log message text |
168
+ | `timestamp` | `number` | Unix timestamp |
169
+ | `attributes` | `object` | Key/value pairs attached to this log |
170
+
171
+ ---
172
+
173
+ ## Scope-Based Automatic Attributes (SDK ≥10.32.0)
174
+
175
+ Attributes set on scopes are automatically added to all logs emitted within that scope.
176
+
177
+ ```typescript
178
+ // Global scope — shared across the entire app lifetime
179
+ Sentry.getGlobalScope().setAttributes({
180
+ service: "checkout",
181
+ version: "2.1.0",
182
+ });
183
+
184
+ // Isolation scope — unique per request
185
+ // ⚠️ CRITICAL for Next.js server-side: use isolation scope (not global)
186
+ // to prevent attributes from one request leaking into another
187
+ Sentry.getIsolationScope().setAttributes({
188
+ org_id: user.orgId,
189
+ user_tier: user.tier,
190
+ });
191
+
192
+ // Current scope — wraps a single operation
193
+ Sentry.withScope((scope) => {
194
+ scope.setAttribute("request_id", req.id);
195
+ Sentry.logger.info("Processing order"); // gets request_id attribute
196
+ });
197
+ ```
198
+
199
+ > ⚠️ **Next.js server-side isolation:** Always use `getIsolationScope()` for per-request
200
+ > data on the server. The isolation scope is unique per request, preventing attributes
201
+ > from one user’s request from bleeding into another’s concurrent request.
202
+
203
+ ---
204
+
205
+ ## Third-Party Logger Integrations
206
+
207
+ ### Pino (SDK ≥10.18.0)
208
+
209
+ ```typescript
210
+ // sentry.server.config.ts — Pino is a Node.js integration (server-side only)
211
+ Sentry.init({
212
+ dsn: process.env.SENTRY_DSN,
213
+ enableLogs: true,
214
+ integrations: [Sentry.pinoIntegration()],
215
+ });
216
+ // No changes needed to your pino logger — it auto-captures logs
217
+ ```
218
+
219
+ ### Consola (SDK ≥10.12.0)
220
+
221
+ ```typescript
222
+ import { consola } from "consola";
223
+
224
+ const sentryReporter = Sentry.createConsolaReporter({
225
+ levels: ["error", "warn"], // optional: only forward these levels
226
+ });
227
+
228
+ consola.addReporter(sentryReporter);
229
+ ```
230
+
231
+ ### Winston (SDK ≥9.13.0)
232
+
233
+ ```typescript
234
+ import winston from "winston";
235
+ import Transport from "winston-transport";
236
+
237
+ const SentryTransport = Sentry.createSentryWinstonTransport(Transport, {
238
+ levels: ["error", "warn"],
239
+ });
240
+
241
+ const logger = winston.createLogger({
242
+ transports: [new SentryTransport()],
243
+ });
244
+ ```
245
+
246
+ ---
247
+
248
+ ## Auto-Generated Attributes
249
+
250
+ These are added by the SDK to every log without any developer configuration:
251
+
252
+ | Attribute | Notes |
253
+ | ------------------------------------ | ----------------------------------------------------------------- |
254
+ | `sentry.environment` | Always present |
255
+ | `sentry.release` | Always present |
256
+ | `sentry.sdk.name` | e.g., `"sentry.javascript.nextjs"` |
257
+ | `sentry.sdk.version` | Always present |
258
+ | `browser.name`, `browser.version` | Client-side only |
259
+ | `user.id`, `user.name`, `user.email` | When `Sentry.setUser()` is called (`userInfo` defaults to `true`) |
260
+ | `sentry.trace.parent_span_id` | When inside an active span (enables log ↔ trace correlation) |
261
+ | `sentry.replay_id` | Client-side with Replay enabled |
262
+ | `server.address` | Server-side only |
263
+ | `message.template` | When using `logger.fmt` |
264
+ | `message.parameter.N` | When using `logger.fmt` or `consoleLoggingIntegration` |
265
+
266
+ ---
267
+
268
+ ## Next.js-Specific: Three-Runtime Configuration
269
+
270
+ For consistency across all runtimes, enable logging in all three config files:
271
+
272
+ ```typescript
273
+ // instrumentation-client.ts
274
+ import * as Sentry from "@sentry/nextjs";
275
+ Sentry.init({
276
+ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
277
+ enableLogs: true,
278
+ integrations: [Sentry.consoleLoggingIntegration({ levels: ["warn", "error"] })],
279
+ });
280
+
281
+ // sentry.server.config.ts
282
+ import * as Sentry from "@sentry/nextjs";
283
+ Sentry.init({
284
+ dsn: process.env.SENTRY_DSN,
285
+ enableLogs: true,
286
+ integrations: [Sentry.pinoIntegration()], // or consoleLoggingIntegration
287
+ });
288
+
289
+ // sentry.edge.config.ts
290
+ import * as Sentry from "@sentry/nextjs";
291
+ Sentry.init({
292
+ dsn: process.env.SENTRY_DSN,
293
+ enableLogs: true,
294
+ });
295
+ ```
296
+
297
+ ### Server Action Logging Example
298
+
299
+ ```typescript
300
+ // app/actions/order.ts
301
+ "use server";
302
+ import * as Sentry from "@sentry/nextjs";
303
+
304
+ export async function createOrder(formData: FormData) {
305
+ // Use isolation scope for per-request context on the server
306
+ Sentry.getIsolationScope().setAttributes({
307
+ action: "createOrder",
308
+ userId: formData.get("userId") as string,
309
+ });
310
+
311
+ Sentry.logger.info("Order creation started", {
312
+ productId: formData.get("productId") as string,
313
+ });
314
+
315
+ try {
316
+ const order = await db.orders.create(/* ... */);
317
+ Sentry.logger.info("Order created successfully", { orderId: order.id });
318
+ return order;
319
+ } catch (err) {
320
+ Sentry.logger.error("Order creation failed", {
321
+ reason: (err as Error).message,
322
+ });
323
+ throw err;
324
+ }
325
+ }
326
+ ```
327
+
328
+ ---
329
+
330
+ ## Best Practice: Wide Events
331
+
332
+ Prefer **one comprehensive log with all context** over many fragmented logs:
333
+
334
+ ```typescript
335
+ // ✅ Preferred — one wide log with full context
336
+ Sentry.logger.info("Checkout completed", {
337
+ orderId: order.id,
338
+ userId: user.id,
339
+ cartValue: cart.total,
340
+ itemCount: cart.items.length,
341
+ paymentMethod: "stripe",
342
+ userTier: user.tier,
343
+ durationMs: Date.now() - startTime,
344
+ });
345
+
346
+ // ❌ Avoid — fragmented logs that are hard to correlate
347
+ Sentry.logger.info("Cart validated");
348
+ Sentry.logger.info("Payment processed");
349
+ Sentry.logger.info("Checkout done");
350
+ ```
351
+
352
+ ---
353
+
354
+ ## SDK Version Matrix
355
+
356
+ | Feature | Min SDK Version |
357
+ | ------------------------------------- | --------------- |
358
+ | `enableLogs` / `Sentry.logger.*` | **9.41.0** |
359
+ | Winston transport | 9.13.0 |
360
+ | Consola reporter | 10.12.0 |
361
+ | Console integration multi-arg parsing | 10.13.0 |
362
+ | Pino integration | 10.18.0 |
363
+ | Scope attributes (`setAttributes`) | **10.32.0** |
364
+
365
+ ---
366
+
367
+ ## Troubleshooting
368
+
369
+ | Issue | Solution |
370
+ | ----------------------------------------------- | ------------------------------------------------------------------------------------------------- |
371
+ | Logs not appearing in Sentry | Verify `enableLogs: true` in `Sentry.init()`; check all three config files (client, server, edge) |
372
+ | `logger.fmt` not creating `message.parameter.*` | Use it as a tagged template literal — not as the function call `Sentry.logger.fmt("text", var)` |
373
+ | Logs not linked to traces | Ensure `tracesSampleRate` > 0 and the log is emitted inside an active span |
374
+ | `consoleLoggingIntegration` not available | Upgrade to ≥10.13.0 |
375
+ | Scope attributes not appearing | Upgrade to ≥10.32.0; use `getIsolationScope()` (not `getGlobalScope()`) for server request data |
376
+ | Cross-request attribute leakage on server | Replace `getGlobalScope()` with `getIsolationScope()` for per-request data |
377
+ | Too many logs / high volume | Use `beforeSendLog` to drop `trace` and `debug` levels in production |
378
+ | Log attributes contain `undefined` | Only `string`, `number`, `boolean` are accepted — filter out undefined values |
379
+ | `beforeSendLog` not firing | Confirm `enableLogs: true` is set — without it, no logs are processed |
380
+ | Sensitive data appearing in logs | Add filtering in `beforeSendLog`; better yet, avoid logging sensitive data at the call site |
381
+ | Edge runtime logs missing | Add `enableLogs: true` to `sentry.edge.config.ts` |