@danieljvdm/dev-kit 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/README.md +6 -6
  2. package/package.json +1 -1
  3. package/skill-sources.jsonc +6 -29
  4. package/skill-sources.lock.json +23 -109
  5. package/skills/animate/LICENSE +21 -0
  6. package/skills/animate/NOTICE +10 -0
  7. package/skills/animate/SKILL.md +34 -0
  8. package/skills/animate/references/gestures.md +27 -0
  9. package/skills/animate/references/glossary.md +136 -0
  10. package/skills/animate/references/implementation.md +22 -0
  11. package/skills/animate/references/opportunities.md +18 -0
  12. package/skills/animate/references/principles.md +48 -0
  13. package/skills/animate/references/review.md +19 -0
  14. package/skills/cloudflare-workers/LICENSE +202 -0
  15. package/skills/cloudflare-workers/NOTICE +9 -0
  16. package/skills/cloudflare-workers/SKILL.md +26 -0
  17. package/skills/cloudflare-workers/references/durable-objects.md +68 -0
  18. package/skills/cloudflare-workers/references/sandbox.md +48 -0
  19. package/skills/cloudflare-workers/references/workers.md +63 -0
  20. package/skills/cloudflare-workers/references/wrangler.md +56 -0
  21. package/skills/design-ui/LICENSE +21 -0
  22. package/skills/design-ui/NOTICE +8 -0
  23. package/skills/design-ui/SKILL.md +29 -0
  24. package/skills/design-ui/references/appearance.md +22 -0
  25. package/skills/design-ui/references/components.md +33 -0
  26. package/skills/design-ui/references/exploration.md +50 -0
  27. package/skills/design-ui/references/libraries.md +39 -0
  28. package/skills/design-ui/references/themes.md +23 -0
  29. package/skills/dev-kit/SKILL.md +19 -38
  30. package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
  31. package/skills/dev-kit/references/skills.md +2 -2
  32. package/skills/effect-development/SKILL.md +27 -0
  33. package/skills/effect-development/agents/openai.yaml +4 -0
  34. package/skills/effect-development/references/api/index.md +32 -0
  35. package/skills/effect-development/references/api/schema-codecs.md +15 -0
  36. package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
  37. package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
  38. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
  39. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
  40. package/skills/effect-development/references/atom/index.md +40 -0
  41. package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
  42. package/skills/effect-development/references/cli/index.md +39 -0
  43. package/skills/effect-development/references/setup.md +15 -0
  44. package/skills/open-pull-request/SKILL.md +11 -115
  45. package/skills/open-pull-request/agents/openai.yaml +3 -3
  46. package/skills/open-pull-request/references/evidence.md +22 -0
  47. package/skills/open-pull-request/references/explanation.md +21 -0
  48. package/skills/open-pull-request/references/publication.md +21 -0
  49. package/skills/sentry/LICENSE +202 -0
  50. package/skills/sentry/LICENSE-UPSTREAM +21 -0
  51. package/skills/sentry/NOTICE +14 -0
  52. package/skills/sentry/SKILL.md +33 -0
  53. package/skills/sentry/references/alert-payloads.md +105 -0
  54. package/skills/sentry/references/alerts.md +17 -0
  55. package/skills/sentry/references/artifacts.md +25 -0
  56. package/skills/sentry/references/auth-token.md +65 -0
  57. package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
  58. package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
  59. package/skills/sentry/references/concepts/crons.md +50 -0
  60. package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
  61. package/skills/sentry/references/concepts/errors.md +40 -0
  62. package/skills/sentry/references/concepts/logging.md +85 -0
  63. package/skills/sentry/references/concepts/metrics.md +49 -0
  64. package/skills/sentry/references/concepts/monitors.md +78 -0
  65. package/skills/sentry/references/concepts/profiling.md +38 -0
  66. package/skills/sentry/references/concepts/reduce-volume.md +49 -0
  67. package/skills/sentry/references/concepts/releases.md +43 -0
  68. package/skills/sentry/references/concepts/session-replay.md +35 -0
  69. package/skills/sentry/references/concepts/tracing.md +54 -0
  70. package/skills/sentry/references/concepts/user-feedback.md +36 -0
  71. package/skills/sentry/references/debug-artifacts/android.md +68 -0
  72. package/skills/sentry/references/debug-artifacts/apple.md +96 -0
  73. package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
  74. package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
  75. package/skills/sentry/references/debug-artifacts/index.md +75 -0
  76. package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
  77. package/skills/sentry/references/debug-artifacts/matching.md +73 -0
  78. package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
  79. package/skills/sentry/references/first-error-setup.md +25 -0
  80. package/skills/sentry/references/instrumentation.md +30 -0
  81. package/skills/sentry/references/issues.md +32 -0
  82. package/skills/sentry/references/new-project.md +17 -0
  83. package/skills/sentry/references/otel-exporter.md +30 -0
  84. package/skills/sentry/references/release-workflow.md +31 -0
  85. package/skills/sentry/references/releases/ci-pipeline.md +214 -0
  86. package/skills/sentry/references/releases/index.md +93 -0
  87. package/skills/sentry/references/releases/suspect-commits.md +155 -0
  88. package/skills/sentry/references/releases/tagging.md +131 -0
  89. package/skills/sentry/references/releases/troubleshooting.md +67 -0
  90. package/skills/sentry/references/sdks/android/crons.md +305 -0
  91. package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
  92. package/skills/sentry/references/sdks/android/index.md +748 -0
  93. package/skills/sentry/references/sdks/android/integrations.md +48 -0
  94. package/skills/sentry/references/sdks/android/logging.md +374 -0
  95. package/skills/sentry/references/sdks/android/metrics.md +288 -0
  96. package/skills/sentry/references/sdks/android/profiling.md +397 -0
  97. package/skills/sentry/references/sdks/android/session-replay.md +406 -0
  98. package/skills/sentry/references/sdks/android/tracing.md +861 -0
  99. package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
  100. package/skills/sentry/references/sdks/browser/index.md +714 -0
  101. package/skills/sentry/references/sdks/browser/logging.md +315 -0
  102. package/skills/sentry/references/sdks/browser/profiling.md +236 -0
  103. package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
  104. package/skills/sentry/references/sdks/browser/tracing.md +561 -0
  105. package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
  106. package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
  107. package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
  108. package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
  109. package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
  110. package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
  111. package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
  112. package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
  113. package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
  114. package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
  115. package/skills/sentry/references/sdks/cocoa/index.md +497 -0
  116. package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
  117. package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
  118. package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
  119. package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
  120. package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
  121. package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
  122. package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
  123. package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
  124. package/skills/sentry/references/sdks/dotnet/index.md +614 -0
  125. package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
  126. package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
  127. package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
  128. package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
  129. package/skills/sentry/references/sdks/elixir/crons.md +371 -0
  130. package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
  131. package/skills/sentry/references/sdks/elixir/index.md +383 -0
  132. package/skills/sentry/references/sdks/elixir/logging.md +239 -0
  133. package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
  134. package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
  135. package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
  136. package/skills/sentry/references/sdks/flutter/index.md +728 -0
  137. package/skills/sentry/references/sdks/flutter/logging.md +387 -0
  138. package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
  139. package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
  140. package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
  141. package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
  142. package/skills/sentry/references/sdks/go/crons.md +270 -0
  143. package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
  144. package/skills/sentry/references/sdks/go/index.md +324 -0
  145. package/skills/sentry/references/sdks/go/logging.md +354 -0
  146. package/skills/sentry/references/sdks/go/metrics.md +273 -0
  147. package/skills/sentry/references/sdks/go/profiling.md +46 -0
  148. package/skills/sentry/references/sdks/go/tracing.md +366 -0
  149. package/skills/sentry/references/sdks/index.md +41 -0
  150. package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
  151. package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
  152. package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
  153. package/skills/sentry/references/sdks/nestjs/index.md +699 -0
  154. package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
  155. package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
  156. package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
  157. package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
  158. package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
  159. package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
  160. package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
  161. package/skills/sentry/references/sdks/nextjs/index.md +491 -0
  162. package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
  163. package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
  164. package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
  165. package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
  166. package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
  167. package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
  168. package/skills/sentry/references/sdks/node/crons.md +432 -0
  169. package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
  170. package/skills/sentry/references/sdks/node/index.md +942 -0
  171. package/skills/sentry/references/sdks/node/logging.md +380 -0
  172. package/skills/sentry/references/sdks/node/metrics.md +278 -0
  173. package/skills/sentry/references/sdks/node/profiling.md +373 -0
  174. package/skills/sentry/references/sdks/node/tracing.md +878 -0
  175. package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
  176. package/skills/sentry/references/sdks/php/crons.md +265 -0
  177. package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
  178. package/skills/sentry/references/sdks/php/index.md +362 -0
  179. package/skills/sentry/references/sdks/php/laravel.md +542 -0
  180. package/skills/sentry/references/sdks/php/logging.md +242 -0
  181. package/skills/sentry/references/sdks/php/metrics.md +193 -0
  182. package/skills/sentry/references/sdks/php/profiling.md +115 -0
  183. package/skills/sentry/references/sdks/php/symfony.md +552 -0
  184. package/skills/sentry/references/sdks/php/tracing.md +516 -0
  185. package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
  186. package/skills/sentry/references/sdks/python/crons.md +218 -0
  187. package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
  188. package/skills/sentry/references/sdks/python/index.md +361 -0
  189. package/skills/sentry/references/sdks/python/logging.md +234 -0
  190. package/skills/sentry/references/sdks/python/metrics.md +154 -0
  191. package/skills/sentry/references/sdks/python/profiling.md +120 -0
  192. package/skills/sentry/references/sdks/python/tracing.md +364 -0
  193. package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
  194. package/skills/sentry/references/sdks/react/index.md +492 -0
  195. package/skills/sentry/references/sdks/react/logging.md +364 -0
  196. package/skills/sentry/references/sdks/react/profiling.md +322 -0
  197. package/skills/sentry/references/sdks/react/react-features.md +1272 -0
  198. package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
  199. package/skills/sentry/references/sdks/react/tracing.md +1415 -0
  200. package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
  201. package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
  202. package/skills/sentry/references/sdks/react-native/index.md +1030 -0
  203. package/skills/sentry/references/sdks/react-native/logging.md +444 -0
  204. package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
  205. package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
  206. package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
  207. package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
  208. package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
  209. package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
  210. package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
  211. package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
  212. package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
  213. package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
  214. package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
  215. package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
  216. package/skills/sentry/references/sdks/ruby/crons.md +184 -0
  217. package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
  218. package/skills/sentry/references/sdks/ruby/index.md +297 -0
  219. package/skills/sentry/references/sdks/ruby/logging.md +168 -0
  220. package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
  221. package/skills/sentry/references/sdks/ruby/migration.md +321 -0
  222. package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
  223. package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
  224. package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
  225. package/skills/sentry/references/sdks/svelte/index.md +467 -0
  226. package/skills/sentry/references/sdks/svelte/logging.md +344 -0
  227. package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
  228. package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
  229. package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
  230. package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
  231. package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
  232. package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
  233. package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
  234. package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
  235. package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
  236. package/skills/sentry/references/search-query-language.md +226 -0
  237. package/skills/sentry/references/semantics/angular.md +7 -0
  238. package/skills/sentry/references/semantics/app.md +28 -0
  239. package/skills/sentry/references/semantics/art.md +17 -0
  240. package/skills/sentry/references/semantics/aws.md +43 -0
  241. package/skills/sentry/references/semantics/browser.md +34 -0
  242. package/skills/sentry/references/semantics/cache.md +12 -0
  243. package/skills/sentry/references/semantics/client.md +8 -0
  244. package/skills/sentry/references/semantics/cloud.md +12 -0
  245. package/skills/sentry/references/semantics/cloudflare.md +23 -0
  246. package/skills/sentry/references/semantics/code.md +11 -0
  247. package/skills/sentry/references/semantics/culture.md +11 -0
  248. package/skills/sentry/references/semantics/db.md +21 -0
  249. package/skills/sentry/references/semantics/device.md +43 -0
  250. package/skills/sentry/references/semantics/error.md +7 -0
  251. package/skills/sentry/references/semantics/event.md +8 -0
  252. package/skills/sentry/references/semantics/exception.md +10 -0
  253. package/skills/sentry/references/semantics/faas.md +19 -0
  254. package/skills/sentry/references/semantics/file.md +8 -0
  255. package/skills/sentry/references/semantics/flag.md +7 -0
  256. package/skills/sentry/references/semantics/gcp.md +16 -0
  257. package/skills/sentry/references/semantics/gen_ai.md +53 -0
  258. package/skills/sentry/references/semantics/general.md +11 -0
  259. package/skills/sentry/references/semantics/graphql.md +9 -0
  260. package/skills/sentry/references/semantics/grpc.md +19 -0
  261. package/skills/sentry/references/semantics/http.md +34 -0
  262. package/skills/sentry/references/semantics/index.md +63 -0
  263. package/skills/sentry/references/semantics/jsonrpc.md +8 -0
  264. package/skills/sentry/references/semantics/jvm.md +12 -0
  265. package/skills/sentry/references/semantics/koa.md +7 -0
  266. package/skills/sentry/references/semantics/logger.md +7 -0
  267. package/skills/sentry/references/semantics/mcp.md +37 -0
  268. package/skills/sentry/references/semantics/mdc.md +7 -0
  269. package/skills/sentry/references/semantics/messaging.md +23 -0
  270. package/skills/sentry/references/semantics/middleware.md +7 -0
  271. package/skills/sentry/references/semantics/navigation.md +9 -0
  272. package/skills/sentry/references/semantics/nel.md +11 -0
  273. package/skills/sentry/references/semantics/network.md +17 -0
  274. package/skills/sentry/references/semantics/os.md +15 -0
  275. package/skills/sentry/references/semantics/otel.md +10 -0
  276. package/skills/sentry/references/semantics/params.md +7 -0
  277. package/skills/sentry/references/semantics/process.md +14 -0
  278. package/skills/sentry/references/semantics/react.md +7 -0
  279. package/skills/sentry/references/semantics/remix.md +7 -0
  280. package/skills/sentry/references/semantics/resource.md +7 -0
  281. package/skills/sentry/references/semantics/rpc.md +10 -0
  282. package/skills/sentry/references/semantics/score.md +10 -0
  283. package/skills/sentry/references/semantics/sentry.md +69 -0
  284. package/skills/sentry/references/semantics/server.md +8 -0
  285. package/skills/sentry/references/semantics/service.md +8 -0
  286. package/skills/sentry/references/semantics/session.md +7 -0
  287. package/skills/sentry/references/semantics/state.md +7 -0
  288. package/skills/sentry/references/semantics/thread.md +8 -0
  289. package/skills/sentry/references/semantics/timber.md +7 -0
  290. package/skills/sentry/references/semantics/trpc.md +8 -0
  291. package/skills/sentry/references/semantics/ui.md +18 -0
  292. package/skills/sentry/references/semantics/url.md +15 -0
  293. package/skills/sentry/references/semantics/user.md +17 -0
  294. package/skills/sentry/references/semantics/user_agent.md +7 -0
  295. package/skills/sentry/references/semantics/vercel.md +42 -0
  296. package/skills/sentry/references/setup-verification.md +39 -0
  297. package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
  298. package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
  299. package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
  300. package/skills/sentry/references/snapshots/index.md +19 -0
  301. package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
  302. package/skills/sentry/references/snapshots/snapshots.md +123 -0
  303. package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
  304. package/skills/testing/LICENSE +21 -0
  305. package/skills/testing/NOTICE +7 -0
  306. package/skills/testing/SKILL.md +13 -19
  307. package/skills/testing/agents/openai.yaml +1 -2
  308. package/skills/testing/references/selection.md +23 -0
  309. package/skills/testing/references/tdd.md +19 -0
  310. package/skills/testing/references/test-design.md +17 -0
  311. package/src/catalog.ts +1 -7
  312. package/skills/build-effect-apis/SKILL.md +0 -81
  313. package/skills/build-effect-apis/agents/openai.yaml +0 -4
  314. package/skills/build-effect-clis/SKILL.md +0 -92
  315. package/skills/build-effect-clis/agents/openai.yaml +0 -4
  316. package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
  317. package/skills/effect-atom-state/SKILL.md +0 -97
  318. package/skills/effect-atom-state/agents/openai.yaml +0 -4
  319. package/skills/effect-ts/SKILL.md +0 -35
  320. package/skills/effect-ts/agents/openai.yaml +0 -4
  321. /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
  322. /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
  323. /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
  324. /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
  325. /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
  326. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
  327. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
  328. /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
  329. /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
  330. /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
@@ -0,0 +1,556 @@
1
+ # Logging — Sentry .NET SDK
2
+
3
+ > **Minimum SDK: `Sentry` ≥ 6.0.0** for the stable native `SentrySdk.Logger` +
4
+ > `EnableLogs` (shipped experimental behind `options.Experimental` in 5.14.0–5.x)\
5
+ > Integration packages (`Sentry.Extensions.Logging`, `Sentry.Serilog`, `Sentry.NLog`,
6
+ > `Sentry.Log4Net`) are long-established\
7
+ > Native structured logs forwarded through integrations: requires SDK ≥ 6.0.0, and only
8
+ > for `Sentry.Extensions.Logging`, `Sentry.AspNetCore`, `Sentry.Maui`,
9
+ > `Sentry.Google.Cloud.Functions`, and `Sentry.Serilog` (NLog and log4net do **not**
10
+ > forward structured logs)
11
+
12
+ ---
13
+
14
+ ## Enabling Native Structured Logs
15
+
16
+ `EnableLogs` must be set to `true` — logging is **disabled by default**:
17
+
18
+ ```csharp
19
+ SentrySdk.Init(options =>
20
+ {
21
+ options.Dsn = "https://examplePublicKey@o0.ingest.sentry.io/0";
22
+ options.EnableLogs = true; // Required — logs are silently no-ops without this
23
+ });
24
+ ```
25
+
26
+ Without `EnableLogs = true`, all `SentrySdk.Logger.*` calls are silently discarded.
27
+
28
+ ---
29
+
30
+ ## Native Logger API — Six Levels
31
+
32
+ The native logger type is `SentryStructuredLogger`, accessed via `SentrySdk.Logger`:
33
+
34
+ ```csharp
35
+ SentrySdk.Logger.LogTrace("Entering method Foo");
36
+ SentrySdk.Logger.LogDebug("Loaded {0} items", itemCount);
37
+ SentrySdk.Logger.LogInfo("Order created successfully");
38
+ SentrySdk.Logger.LogWarning("Cache miss for key {0}", cacheKey);
39
+ SentrySdk.Logger.LogError("A {0} error occurred", "critical");
40
+ SentrySdk.Logger.LogFatal("Unrecoverable error — shutting down");
41
+ ```
42
+
43
+ | Level | Method | Typical Use |
44
+ | --------- | -------------- | -------------------------------------------------------------------- |
45
+ | `Trace` | `LogTrace()` | Ultra-granular method entry/exit; high-volume — filter in production |
46
+ | `Debug` | `LogDebug()` | Development diagnostics, cache hits/misses |
47
+ | `Info` | `LogInfo()` | Normal business milestones, confirmations |
48
+ | `Warning` | `LogWarning()` | Degraded state, approaching limits, recoverable issues |
49
+ | `Error` | `LogError()` | Failures requiring attention |
50
+ | `Fatal` | `LogFatal()` | Critical failures, system unavailable |
51
+
52
+ ### Attaching Custom Attributes
53
+
54
+ Use the lambda overload to attach typed key-value attributes to a log entry:
55
+
56
+ ```csharp
57
+ SentrySdk.Logger.LogWarning(static log =>
58
+ {
59
+ log.SetAttribute("request.id", 12345);
60
+ log.SetAttribute("user.tier", "premium");
61
+ log.SetAttribute("is.retried", true);
62
+ }, "Payment declined for order {0}", orderId);
63
+ ```
64
+
65
+ ### Supported Attribute Value Types
66
+
67
+ | Category | Types |
68
+ | -------------- | ----------------------------------------------------------------- |
69
+ | Textual | `string`, `char` |
70
+ | Logical | `bool` |
71
+ | Integral | `sbyte`, `byte`, `short`, `ushort`, `int`, `uint`, `long`, `nint` |
72
+ | Floating-point | `float`, `double` |
73
+ | Other | Any type via `ToString()` fallback |
74
+
75
+ ---
76
+
77
+ ## Log Filtering — `SetBeforeSendLog`
78
+
79
+ Use `SetBeforeSendLog` to modify or drop logs before transmission.
80
+ Return `null` to discard:
81
+
82
+ ```csharp
83
+ SentrySdk.Init(options =>
84
+ {
85
+ options.Dsn = "https://...@sentry.io/...";
86
+ options.EnableLogs = true;
87
+
88
+ options.SetBeforeSendLog(static log =>
89
+ {
90
+ // Drop all Info and Trace logs in production
91
+ if (log.Level is SentryLogLevel.Info or SentryLogLevel.Trace)
92
+ return null;
93
+
94
+ // Drop noisy health-check messages
95
+ if (log.Message?.Contains("/health") == true)
96
+ return null;
97
+
98
+ // Enrich surviving logs
99
+ log.SetAttribute("app.version", "2.1.0");
100
+
101
+ return log;
102
+ });
103
+ });
104
+ ```
105
+
106
+ ### The `SentryLog` Object
107
+
108
+ | Member | Type | Description |
109
+ | ------------------- | ---------------- | ----------------------------------------- |
110
+ | `Timestamp` | `DateTimeOffset` | When the log was created |
111
+ | `TraceId` | `SentryId` | Active trace ID — links log to a trace |
112
+ | `SpanId` | `SpanId?` | Active span ID — links log to a span |
113
+ | `Level` | `SentryLogLevel` | Trace, Debug, Info, Warning, Error, Fatal |
114
+ | `Message` | `string` | Formatted log message |
115
+ | `Template` | `string?` | Original message template (if structured) |
116
+ | `Parameters` | `ImmutableArray` | Template parameters |
117
+ | `TryGetAttribute()` | method | Read an attribute |
118
+ | `SetAttribute()` | method | Write/modify an attribute |
119
+
120
+ ---
121
+
122
+ ## Automatically Attached Attributes
123
+
124
+ These are added by the SDK to every log without any configuration:
125
+
126
+ | Attribute Key | Source |
127
+ | ------------------------------------ | ------------------------------------------------------------------------ |
128
+ | `environment` | SDK config |
129
+ | `release` | SDK config |
130
+ | `sdk.name`, `sdk.version` | SDK internals |
131
+ | `message.template` | Message template |
132
+ | `message.parameter.0`, `.1`, … | Template parameters |
133
+ | `server.address` | Host info (requires `SendDefaultPii = true` or an explicit `ServerName`) |
134
+ | `user.id`, `user.name`, `user.email` | Active scope user (attached whenever the scope’s `User` has values) |
135
+ | `origin` | Integration that created the log |
136
+
137
+ ---
138
+
139
+ ## Integration: Microsoft.Extensions.Logging (ILogger)
140
+
141
+ ### Install
142
+
143
+ ```shell
144
+ dotnet add package Sentry.Extensions.Logging
145
+ ```
146
+
147
+ ### What it does
148
+
149
+ The MEL integration provides **three capabilities** simultaneously:
150
+
151
+ 1. Stores log messages as **breadcrumbs** (attached to the next error event as context)
152
+ 2. Sends logs at or above the event threshold as **Sentry error events**
153
+ 3. Forwards logs as **native Sentry structured logs** (SDK ≥ 6.0.0)
154
+
155
+ ### ASP.NET Core / Generic Host Setup (Recommended)
156
+
157
+ ```csharp
158
+ // Program.cs
159
+ var builder = WebApplication.CreateBuilder(args);
160
+
161
+ builder.Logging.AddSentry(o =>
162
+ {
163
+ o.Dsn = "https://...@sentry.io/...";
164
+ o.MinimumBreadcrumbLevel = LogLevel.Debug; // default: Information
165
+ o.MinimumEventLevel = LogLevel.Error; // default: Error
166
+ o.InitializeSdk = true; // set false if using SentrySdk.Init elsewhere
167
+ });
168
+ ```
169
+
170
+ Or configure via `appsettings.json`:
171
+
172
+ ```json
173
+ {
174
+ "Sentry": {
175
+ "Dsn": "https://...@sentry.io/...",
176
+ "MinimumBreadcrumbLevel": "Information",
177
+ "MinimumEventLevel": "Error",
178
+ "SendDefaultPii": true,
179
+ "MaxBreadcrumbs": 100
180
+ }
181
+ }
182
+ ```
183
+
184
+ ```csharp
185
+ builder.Logging.AddSentry(); // reads Sentry section from appsettings.json
186
+ ```
187
+
188
+ ### Direct Setup (no DI)
189
+
190
+ ```csharp
191
+ var loggerFactory = LoggerFactory.Create(logging =>
192
+ {
193
+ logging.AddSentry(o => o.Dsn = "https://...@sentry.io/...");
194
+ });
195
+ ILogger logger = loggerFactory.CreateLogger<MyClass>();
196
+ ```
197
+
198
+ ### Usage
199
+
200
+ Once configured, use standard `ILogger<T>` — no Sentry-specific code required:
201
+
202
+ ```csharp
203
+ public class OrderService
204
+ {
205
+ private readonly ILogger<OrderService> _logger;
206
+
207
+ public OrderService(ILogger<OrderService> logger) => _logger = logger;
208
+
209
+ public async Task ProcessOrderAsync(int orderId)
210
+ {
211
+ _logger.LogInformation("Processing order {OrderId}", orderId); // → breadcrumb
212
+
213
+ try
214
+ {
215
+ await _paymentService.ChargeAsync(orderId);
216
+ _logger.LogInformation("Order {OrderId} paid successfully", orderId);
217
+ }
218
+ catch (Exception ex)
219
+ {
220
+ _logger.LogError(ex, "Failed to process order {OrderId}", orderId); // → Sentry event
221
+ throw;
222
+ }
223
+ }
224
+ }
225
+ ```
226
+
227
+ ### Configuration Options
228
+
229
+ | Option | Type | Default | Description |
230
+ | ------------------------ | ---------------------- | ------------- | --------------------------------------------------------------------------------------------------- |
231
+ | `MinimumBreadcrumbLevel` | `LogLevel` | `Information` | Threshold for breadcrumb storage |
232
+ | `MinimumEventLevel` | `LogLevel` | `Error` | Threshold for sending Sentry error events |
233
+ | `InitializeSdk` | `bool` | `true` | Auto-init SDK. Set `false` when using `SentrySdk.Init` |
234
+ | `AddLogEntryFilter(...)` | method | — | Register a custom `ILogEntryFilter` for pre-processing (the underlying `Filters` array is internal) |
235
+ | `TagFilters` | `IList<StringOrRegex>` | — | Inherited from core `SentryOptions`; drops tags whose key matches by substring or regex |
236
+
237
+ ### Important Behavior Notes
238
+
239
+ - **Breadcrumb cascade**: A `LogError` event includes ALL breadcrumbs accumulated since
240
+ the last event — so the full Info/Warning/Error history is attached.
241
+ - **Self-filtering**: Log entries whose category name is `"Sentry"` or starts with
242
+ `"Sentry."` are excluded to prevent infinite loops.
243
+ - **Single init**: Set `InitializeSdk = false` if calling `SentrySdk.Init()` elsewhere
244
+ in your startup.
245
+ - **Empty DSN** disables the SDK entirely.
246
+
247
+ ---
248
+
249
+ ## Integration: Serilog
250
+
251
+ ### Install
252
+
253
+ ```shell
254
+ dotnet add package Sentry.Serilog
255
+ ```
256
+
257
+ ### What it does
258
+
259
+ Same three capabilities as MEL: breadcrumbs, Sentry error events, and native structured
260
+ logs.
261
+
262
+ ### Basic Setup (Serilog initializes Sentry)
263
+
264
+ ```csharp
265
+ Log.Logger = new LoggerConfiguration()
266
+ .MinimumLevel.Debug()
267
+ .WriteTo.Sentry(o =>
268
+ {
269
+ o.Dsn = "https://...@sentry.io/...";
270
+ o.MinimumBreadcrumbLevel = LogEventLevel.Debug; // default: Information
271
+ o.MinimumEventLevel = LogEventLevel.Warning; // default: Error
272
+ })
273
+ .WriteTo.Console()
274
+ .CreateLogger();
275
+ ```
276
+
277
+ ### Setup (Sentry initialized separately)
278
+
279
+ ```csharp
280
+ SentrySdk.Init(o => o.Dsn = "...");
281
+
282
+ Log.Logger = new LoggerConfiguration()
283
+ .WriteTo.Sentry(o =>
284
+ {
285
+ o.InitializeSdk = false; // ← avoid double-init
286
+ o.MinimumBreadcrumbLevel = LogEventLevel.Information;
287
+ o.MinimumEventLevel = LogEventLevel.Error;
288
+ })
289
+ .CreateLogger();
290
+ ```
291
+
292
+ ### ASP.NET Core with Serilog
293
+
294
+ ```csharp
295
+ builder.Host.UseSerilog((ctx, cfg) =>
296
+ {
297
+ cfg.ReadFrom.Configuration(ctx.Configuration)
298
+ .WriteTo.Sentry(o =>
299
+ {
300
+ o.Dsn = ctx.Configuration["Sentry:Dsn"];
301
+ o.MinimumBreadcrumbLevel = LogEventLevel.Debug;
302
+ o.MinimumEventLevel = LogEventLevel.Error;
303
+ });
304
+ });
305
+ ```
306
+
307
+ ### Usage
308
+
309
+ ```csharp
310
+ var log = Log.ForContext<OrderService>();
311
+
312
+ log.Information("Processing order {OrderId} for {CustomerId}", orderId, customerId); // → breadcrumb
313
+ log.Error(ex, "Payment failed for order {OrderId}", orderId); // → Sentry event
314
+ ```
315
+
316
+ ### Configuration Options
317
+
318
+ | Option | Default | Description |
319
+ | ------------------------ | ------------- | --------------------------------------- |
320
+ | `MinimumBreadcrumbLevel` | `Information` | Minimum `LogEventLevel` for breadcrumbs |
321
+ | `MinimumEventLevel` | `Error` | Minimum level for Sentry error events |
322
+ | `InitializeSdk` | `true` | Whether this sink initializes the SDK |
323
+
324
+ ---
325
+
326
+ ## Integration: NLog
327
+
328
+ ### Install
329
+
330
+ ```shell
331
+ dotnet add package Sentry.NLog
332
+ ```
333
+
334
+ ### Code-Based Configuration
335
+
336
+ ```csharp
337
+ LogManager.Configuration = new LoggingConfiguration();
338
+
339
+ LogManager.Configuration.AddSentry(options =>
340
+ {
341
+ options.Dsn = "https://...@sentry.io/...";
342
+ options.Layout = "${message}";
343
+ options.BreadcrumbLayout = "${logger}: ${message}";
344
+ options.MinimumBreadcrumbLevel = LogLevel.Debug; // default: Info
345
+ options.MinimumEventLevel = LogLevel.Error; // default: Error
346
+ options.AddTag("logger", "${logger}");
347
+ options.IgnoreEventsWithNoException = false;
348
+ options.IncludeEventPropertiesAsTags = true;
349
+ });
350
+
351
+ LogManager.ReconfigExistingLoggers();
352
+ ```
353
+
354
+ ### XML Configuration (nlog.config)
355
+
356
+ ```xml
357
+ <?xml version="1.0" encoding="utf-8" ?>
358
+ <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
359
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
360
+ <extensions>
361
+ <add assembly="Sentry.NLog"/>
362
+ </extensions>
363
+
364
+ <targets>
365
+ <target xsi:type="Sentry"
366
+ name="sentry"
367
+ dsn="https://...@sentry.io/..."
368
+ minimumBreadcrumbLevel="Debug"
369
+ minimumEventLevel="Error"
370
+ layout="${message}"
371
+ breadcrumbLayout="${logger}: ${message}"
372
+ includeEventPropertiesAsTags="true"
373
+ ignoreEventsWithNoException="false">
374
+ <tag name="logger" layout="${logger}"/>
375
+ </target>
376
+ </targets>
377
+
378
+ <rules>
379
+ <!-- Set minlevel LOWER than breadcrumbLevel so SentryTarget sees all entries -->
380
+ <logger name="*" minlevel="Debug" writeTo="sentry"/>
381
+ </rules>
382
+ </nlog>
383
+ ```
384
+
385
+ ### Usage
386
+
387
+ ```csharp
388
+ private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
389
+
390
+ public void ProcessOrder(int orderId)
391
+ {
392
+ Logger.Info("Processing order {orderId}", orderId); // → breadcrumb
393
+
394
+ try { /* ... */ }
395
+ catch (Exception ex)
396
+ {
397
+ Logger.Error(ex, "Failed to process order {orderId}", orderId); // → Sentry event
398
+ }
399
+ }
400
+ ```
401
+
402
+ ### Configuration Options
403
+
404
+ | Option | Default | Description |
405
+ | ------------------------------- | ------- | ----------------------------------------------- |
406
+ | `MinimumBreadcrumbLevel` | `Info` | Threshold for breadcrumb storage |
407
+ | `MinimumEventLevel` | `Error` | Threshold for Sentry error events |
408
+ | `InitializeSdk` | `true` | Auto-init SDK when DSN provided |
409
+ | `IgnoreEventsWithNoException` | `false` | Skip entries with no attached exception |
410
+ | `IncludeEventPropertiesAsTags` | `false` | Forward NLog properties as Sentry tags |
411
+ | `IncludeEventDataOnBreadcrumbs` | `false` | Attach event property data to breadcrumbs |
412
+ | `BreadcrumbLayout` | — | NLog layout string for breadcrumb text |
413
+ | `Layout` | — | NLog layout string for event message |
414
+ | `Tags` | — | Additional static tags attached to all messages |
415
+
416
+ ### ⚠️ Critical NLog Detail
417
+
418
+ The `SentryTarget` must receive **all** log entries to correctly classify them as
419
+ breadcrumbs vs events.
420
+ Configure NLog’s `minlevel` **lower** than `MinimumBreadcrumbLevel`:
421
+
422
+ ```xml
423
+ <!-- If MinimumBreadcrumbLevel = Info, set minlevel = Debug or Trace -->
424
+ <logger name="*" minlevel="Debug" writeTo="sentry"/>
425
+ ```
426
+
427
+ ---
428
+
429
+ ## Integration: log4net
430
+
431
+ ### Install
432
+
433
+ ```shell
434
+ dotnet add package Sentry.Log4Net
435
+ ```
436
+
437
+ ### XML Configuration (`app.config` / `web.config`)
438
+
439
+ ```xml
440
+ <configuration>
441
+ <configSections>
442
+ <section name="log4net"
443
+ type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
444
+ </configSections>
445
+
446
+ <log4net>
447
+ <appender name="SentryAppender" type="Sentry.Log4Net.SentryAppender, Sentry.Log4Net">
448
+ <Dsn value="https://...@sentry.io/..."/>
449
+ <SendIdentity value="true"/> <!-- send log4net Identity as Sentry user.id -->
450
+ <threshold value="INFO"/> <!-- minimum level for this appender -->
451
+ </appender>
452
+
453
+ <root>
454
+ <level value="DEBUG"/>
455
+ <appender-ref ref="SentryAppender"/>
456
+ </root>
457
+ </log4net>
458
+ </configuration>
459
+ ```
460
+
461
+ ### Programmatic Setup (for full SDK control)
462
+
463
+ The XML appender supports only a subset of Sentry options.
464
+ For full control, init the SDK separately and omit the `Dsn` element to skip auto-init:
465
+
466
+ ```csharp
467
+ // Startup code
468
+ SentrySdk.Init(options =>
469
+ {
470
+ options.Dsn = "https://...@sentry.io/...";
471
+ options.Release = "my-app@1.0.0";
472
+ options.TracesSampleRate = 0.1;
473
+ });
474
+ ```
475
+
476
+ ```xml
477
+ <!-- In app.config — no <Dsn> element means SDK won't be re-initialized -->
478
+ <appender name="SentryAppender" type="Sentry.Log4Net.SentryAppender, Sentry.Log4Net">
479
+ <SendIdentity value="true"/>
480
+ <threshold value="INFO"/>
481
+ </appender>
482
+ ```
483
+
484
+ ### Usage
485
+
486
+ ```csharp
487
+ private static readonly ILog Logger = LogManager.GetLogger(typeof(MyClass));
488
+
489
+ Logger.Info("Processing started"); // → breadcrumb
490
+ Logger.Warn("Low disk space warning"); // → breadcrumb
491
+ Logger.Error("DB connection failed"); // → Sentry event
492
+ Logger.Fatal("Application crash", ex); // → Sentry event
493
+ ```
494
+
495
+ ### Key Appender Options
496
+
497
+ | Option | Description |
498
+ | -------------- | --------------------------------------- |
499
+ | `Dsn` | Auto-initializes SDK when provided |
500
+ | `SendIdentity` | Reports log4net `Identity` as `user.id` |
501
+ | `threshold` | Minimum log4net level for this appender |
502
+
503
+ ---
504
+
505
+ ## Log-to-Trace Correlation
506
+
507
+ Every log entry from any integration automatically carries the active trace and span
508
+ IDs:
509
+
510
+ | Field | Description |
511
+ | --------- | -------------------------------------------- |
512
+ | `TraceId` | Links the log to an active distributed trace |
513
+ | `SpanId` | Links the log to the currently active span |
514
+
515
+ In the Sentry UI you can navigate from an error or trace directly to the logs that
516
+ occurred during that trace, and vice versa.
517
+ No extra configuration required — correlation is automatic when `TracesSampleRate > 0`.
518
+
519
+ ---
520
+
521
+ ## Log Level Mapping
522
+
523
+ | Sentry Level | MEL (`ILogger`) | Serilog | NLog | log4net |
524
+ | ------------ | --------------- | ------------- | ------- | ------- |
525
+ | `Trace` | `Trace` | `Verbose` | `Trace` | `Trace` |
526
+ | `Debug` | `Debug` | `Debug` | `Debug` | `Debug` |
527
+ | `Info` | `Information` | `Information` | `Info` | `Info` |
528
+ | `Warning` | `Warning` | `Warning` | `Warn` | `Warn` |
529
+ | `Error` | `Error` | `Error` | `Error` | `Error` |
530
+ | `Fatal` | `Critical` | `Fatal` | `Fatal` | `Fatal` |
531
+
532
+ ---
533
+
534
+ ## SDK Version Matrix
535
+
536
+ | Feature | Min SDK Version |
537
+ | ---------------------------------------------------------------------------------------------- | --------------- |
538
+ | Native `SentrySdk.Logger` + `EnableLogs` (stable) | **6.0.0** |
539
+ | Native structured logging (experimental, via `options.Experimental`) | **5.14.0** |
540
+ | Native logs forwarded via supported integrations (MEL, AspNetCore, Maui, GoogleCloud, Serilog) | **6.0.0** |
541
+
542
+ ---
543
+
544
+ ## Troubleshooting
545
+
546
+ | Issue | Solution |
547
+ | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
548
+ | Native logs not appearing in Sentry | Verify `EnableLogs = true` in `SentrySdk.Init()` — without it, all `SentrySdk.Logger.*` calls are silently discarded |
549
+ | MEL/Serilog/NLog logs not triggering Sentry events | Check `MinimumEventLevel` — only logs at or above this threshold are sent as events; lower it if needed |
550
+ | NLog: only Error/Fatal seen, no breadcrumbs | NLog `<logger minlevel>` must be set **lower** than `MinimumBreadcrumbLevel` so the SentryTarget receives all entries |
551
+ | SDK initialized twice (double events) | Set `InitializeSdk = false` in the logging integration when you also call `SentrySdk.Init()` in startup |
552
+ | Logs not linked to traces | Ensure `TracesSampleRate > 0` and the log is emitted inside an active span |
553
+ | Sensitive data appearing in logs | Add filtering in `SetBeforeSendLog`; better yet, avoid logging sensitive values at the call site |
554
+ | `SetBeforeSendLog` not firing | Confirm `EnableLogs = true` — without it, no logs are processed and the hook never runs |
555
+ | log4net: SDK not receiving Identity as user.id | Set `<SendIdentity value="true"/>` in the appender config |
556
+ | High log volume / rate limits | Use `SetBeforeSendLog` to drop `Trace` and `Debug` levels in production |